Genetic algorithms are used for evolving various things – from bot behaviour in games to digital art. They can be used for solving nearly any problem/field that allows you to construct a well-defined genome and a fitness function.
Defining a genome for a website is doable, and probably quite simple, too. Many websites consist of discrete “building blocks” – the header, navigation box, search box, links, footer etc. These blocks can be used as individual genes or they can be further subdivided. Stylesheets (CSS) also have a well-defined structure, so you could evolve them, too.
So it is possible to evolve the layout of a website, but what about content? Generating content in this way wouldn’t work, so you’d need a database of articles/links/whatever, where each item would have some distinctive properties – category, subcategory, length and so on. Individual genes would have a couple of fields defining their content; maybe like this :
type = article;
style_class = mediumbox; //or maybe a complete definition
category = programming;
subcategory = delphi;
minimum_length = 2000 bytes;
maximum_length = 10000 bytes;
Genomes could crossbreed by interchanging genes, or mutate by changing the values of individual fields in a gene. Other ways are also possible.
The fitness function is used to determine the quality of a genome. In this context it could be derived from web statistics, like the number of visitiors a particular page has received, how long have those visits been, number of clicks on links, bandwidth etc. You could also explicitly ask the visitors to rate each page.
The biggest problem here, as I see it, would be capturing ang maintaining the interest of visitors. This could be solved (at least partially) by creating lots of different websites with valuable content and making the evolution slower, so that people don’t become annoyed by constant changes in site layout.
Anyway, that’s all 🙂 Thanks for reading.Related posts :