Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.ai    |    Awaiting the gospel from Sarah Connor    |    1,954 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 905 of 1,954    |
|    Randy to All    |
|    Re: GA Music fitness: a practical guide    |
|    02 Feb 06 23:53:46    |
      XPost: comp.ai.genetic       From: joe@burgershack.com              girasko_aei_didaskomenos wrote:       > I am working on a simple GA in order to create a simple melody and I       > now facing the problem of the fitness assignment. I have been searching       > the groups but noboody seems to give a clear answer. Supposing that the       > problem is well defined and you know what is a "good melody" and what       > is a "bad melody" how will the fitness assignment take place? For       > instance, let's take the chromosomes:       >       > 1 2 3 2 2 5 6 7 2       > 2 2 2 3 3 2 1 4 6       > 2 1 4 2 6 3 5 4 7 (the numbers represent notes)       >       > If good melodies are the "5 6 7" and "3 3" what fitness will I have to       > give to the corresponding chromosomes in order to make them survive       > through evolution? If I give them just a true-false fitness,       >       > 1 2 3 2 2 5 6 7 2 true       > 2 2 2 3 3 2 1 4 6 true       > 2 1 4 2 6 3 5 4 7 false       >       > then the motif "3 3" will appear more often because it has smaller       > length.Is there an equation that gives the rate of surviving according       > to the length? Goldberg's investigation is only for binary       > representation where many things are completely different.       >       > Thanks!              I've done a little GA/Music work, but I'm no expert on either.              Do NOT use a binary fitness value. There's no gradient to follow, no       way to improve the best individual in the population after one       generation. You'll either want to assign a fitness value to each       individual, or you could somehow rank each individual's fitness within       each generation. But somehow, you need to decide which individual's       melody is "best" in each generation, or the best individual in the       population will stop improving after only a few iterations (since       there's no evolutionary pressure -- no place to go but sideways).              Binary representation for the fitness value is pretty much essential,       but it doesn't limit you to only two values 1 or 0. By representing the       value with more bits, you can increase the range of values in the same       way a microprocessor does -- a 32 bit binary number can hold values       ranging from -2 billion to +2 billion. You'll want at minimum about 8       bits for the value (between 0 and 255), or your algorithm isn't going to       have much variation to search over within the gradient of your problem's       fitness landscape.              There's a lot of literature on using GAs to manipulate music. Probably       the most "successful" tool is GenJam:              http://www.it.rit.edu/~jab/ASA97/LayPaper.html               Randy              --       Randy Crawford http://www.ruf.rice.edu/~rand rand AT rice DOT edu              [ comp.ai is moderated. To submit, just post and be patient, or if ]       [ that fails mail your article to |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca