home bbs files messages ]

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 , and ]   
   [ ask your news administrator to fix the problems with your system. ]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca