|
From: Andreas R. <aru...@ac...> - 2002-02-18 17:16:09
|
On Mon, 18 Feb 2002 10:22:43 +1300 "Mariusz Nowostawski" <ma...@ma...> wrote: > *) what is the basic elementary building block of the individual > genome? (single gene, single chromosome or a whole genome?) > > I think the user should be free to specify it on a arbitrary > level. E.g. > - the genome is one chromosome which is a list of binary genes > - the genome is two chromosomes one of which is a list of genes with > integer numbers and the second is a list of genes with an alphabet > consisting of symbols [A, B, C, D]. > - the genome is one chromosome which is a tree-like structure > etc. Case 2 is the 'most general' one. The others are just special cases. My prososal for the structure of an individual: - One individual contains one chromosome set (the genome). - The chromosome set contains an arbitrary number of chromosomes. - Each chromosome has a particular type, e.g. binary string, single int number, an alphabet of symbols, a matrix, a tree structure ... > We can have operators operating on: gene, chromosome, genome, and > group of individuals. Do we inline the operators into the genetic > structure description? Or do we "link" them externally? Operators should be linked externally. In general we have three levels of operators. - first : operators working on chromosomes (i.e. recombination, mutation) each of these operators is valid for one particular chromosome type, for instance an operator which does a mutation of a bit string. The same is valid for recombination. We can mate two chromosomes containing integer numbers, but an integer number recombined with a tree structure does not make any sense. - second level : operators working on individuals. They require access to the whole set of chromosomes and alter individual attributes. An example would be the evaluation and the assignment of a valid fitness or score. - third level : operators working on collections of individuals. They could provide functionality like adding a collection to a population or migrating individuals between populations. > This is the tricky bit. It is almost like OO programming paradigm: the > "types" are limited to genes/ chromosomes/ genomes/ individuals/ > populations, the objects are limited to actual genes/ genomes etc and > the operators are all like methods. We could have a way of specifying > in which order all the operators should be applied - but I am sure it > would require the complete theory of this "programming paradigm. > I am sure it would make a quite interesting research project - but for > now I think we should concentrate only on the first - structural > aspects. See above. Only third level operators can be linked together to form an algorithm. It is up to the user to ensure that the link structure makes sense. Such a model would provide the highest flexibility possible, for the cost of simplicity. Andreas -- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Andreas Rummler + + Technical University of Ilmenau, Germany + + Department Of Microelectronic Circuits And Systems (__) + + (oo) + + MAIL: mailto:aru...@ac... \/-------\ + + MAIL: mailto:and...@in... || | \ + + WEB : http://www.inf-technik.tu-ilmenau.de/~rummler ||----|| * + + PGP : http://www.inf-technik.tu-ilmenau.de/~rummler/public.pgp ~~ ~~ + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs and the universe trying to produce bigger and better idiots. So far, the universe is winning." Richard Cook |