Computer: Algorithm
Self-Describing GA   (+6, -1)  [vote for, against]
Make GA evolved code comprehensible

(rewritten to accomodate annotations through 2000.04.30)

Create a GA that you feed GA evolved code to. Fitness function is a human in the loop trying to understand the generated explanation.
-- dean, Apr 28 2000

Genetic Algorithm Resources http://directory.go...Genetic_Algorithms/
Lots of GA links. [jimfl, Apr 28 2000, last modified Oct 04 2004]

<grin> Here's the first human trying to understand this...what's a GA?
-- StarChaser, May 05 2000


You know, "He who is pure of heart may find the Grail in the Castle of GAAAAAAA!!!!!"
-- jweston, May 06 2000


That would be the castle AUUUUUUUUGH.

GA stands for Genetic Algorithm, which is a optimization technique for evolving programs to solve a certain problem by creating a population of random programs, then combining the programs which perform the best in hopes that you will eventually breed a correct, or close to optimal program. See Link.
-- jimfl, May 06 2000


That having been said, how can you test whether or not the HITL* has understood the explanation correctly?

To quote Dean from another context "I generally find that if someone is agreeing with me, they have misunderstood what I said."

Perhaps a small group of humans need to achieve quorum on the explanation as a fitness function. Still, there is room for large error, though the result should still be interesting.

* HITL: Human in the Loop
-- jimfl, May 06 2000


Ah, so desu ka. A concise description, thanks.

As to how whether the HITL understood, that's relatively easy. Show it to a number of people and see if they all come up with at least a similar description of it. <I do telephone tech support and we still have people who think that IE is 'the internet'.>
-- StarChaser, May 06 2000


do itashe mashite.
-- jimfl, May 06 2000


((HITL is here used as neuter, to cover men, women or groups. This has been a visit from your local chapter of the PC police.))

Sounds like a good idea, but I can think of a few troubles, just having come from a disatrous attempt at human-moderated GA.

One trouble is that human-moderated GA (i.e. any with some sort of HITL) tends to slow down the process just a tad (ironic understatement) -- and excepting a *few* cases, GA usually needs hundreds if not thousands of generations to produce a suitable solution.

Second: The HITL would tend to breed out 'ugly' mutations before their functionally advantageous aspects have had a chance to disperse. This is akin to saying that, while we are fully able to adapt the grain and livestock we have through selective breeding (no comment toward gengineering), we haven't a bat's chance in a shitstorm of creating them from scratch.

Another: the HITL wouldn't know if the description were *correct*, just if it were understandable. Most programmers have had the pleasure of finding that incorrect comments are worse than no comments at all, so for a true 'fitness' (as opposed to 'appearance') function, the HITL would need to determine what the code does, and then judge how closely the generated description reads.

But, having determined what the code does, the HITL may as well write the description itself!

Not to say that these problems couldn't be overcome, but the last one in particular seems difficult at best to get around.
-- Tegestu, Sep 13 2001



random, halfbakery