Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Re: Re: JAPH-ing Genetically

by Anonymous Monk
on May 23, 2001 at 17:25 UTC ( [id://82545]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: JAPH-ing Genetically
in thread JAPH-ing Genetically

You could evaluate $@ for instance if it contains "syntax error" that means DWIM gives up it is a very low fitness, if it contains "operator expected" it is better and if it contains "not defined" better yet. You get the picture?

Replies are listed 'Best First'.
andy pondering Re: Re: Re: Re: JAPH-ing Genetically
by andye (Curate) on May 23, 2001 at 17:46 UTC
    Problem is, an individual that generates a syntax error might only be one character different to an individual that prints the required string. Or it might be total rubbish.

    The first should (for this method to work) be fitter than the second, but I don't know a way to quantify that.

    Also, p(syntax error) is very high for constructing a valid Perl string randomly. The chances are that all members of a population would generate syntax errors - at which point they'd all have the same fitness.

    A better approach would be to create a baby language safe (or safer) from syntax errors and eval that. Like maybe just arithmetic operators and numbers.

    Although - it's just occured to me - you'd be on fairly safe ground with a subset of a highly structured language like Logo. And you could evaluate fitness by checking how similar the figure drawn was to your target figure.

    Andy.

      p is not a syntax error (test it) . Or do you mean a string which is a valid program and contains the chars "syntax error"? Then you have misunderstood. I meant "syntax error" in $@ after eval
        I meant 'the probability of a syntax error'. Andy.

      In Re (Obfu generator for): Ode for getprotobyname, I randomly generate tr/// patterns, and check if the "just another perl hacker" message can be generated as a result of that transliteration. Perhaps you could try generating such patterns genetically, with the goal function being the number of different characters you cannot generate.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://82545]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (8)
As of 2024-04-26 08:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found