[{"data":1,"prerenderedAt":169},["ShallowReactive",2],{"\u002Fogpf":3},{"id":4,"title":5,"body":6,"createdAt":158,"description":150,"draft":159,"extension":160,"image":161,"mastodonThread":161,"meta":162,"navigation":163,"path":29,"seo":164,"stem":5,"tags":165,"updatedAt":167,"__hash__":168},"content\u002FOGPF.md","OGPF",{"type":7,"value":8,"toc":149},"minimark",[9,14,24,39,55,59,108,112,115,119,122,139,143],[10,11,13],"h2",{"id":12},"ocaml-genetic-programming-framework","OCaml Genetic Programming Framework",[15,16,17,18,23],"p",{},"One of the greatest strengths of ",[19,20,22],"a",{"href":21},"\u002Focaml","OCaml"," is in data structure manipulation, which is essentially what makes up a genetic programming framework. Thus OCaml is an excellent choice for such an endeavor.",[15,25,26,27,30,31,33,34,38],{},"The goal of ",[19,28,5],{"href":29},"\u002Fogpf"," is to create a modular framework for building genetic programming systems in ",[19,32,22],{"href":21},". It is additionally an experiment in modular framework design, making heavy use of ",[19,35,37],{"href":36},"\u002Ffunctors","Functors",". OGPF seeks to be a clean, elegant, and efficient solution to the question \"How do I do genetic programming in OCaml?\"",[15,40,41,42,44,45,54],{},"If you are interested in using ",[19,43,5],{"href":29}," please ",[46,47,48,49,53],"span",{},"mailto:",[19,50,52],{"href":51},"mailto:awwaiid@thelackthereof.org","awwaiid@thelackthereof.org"," email me"," and I'll help you get started. The more people who use the system and contribute components the easier everything will get.",[10,56,58],{"id":57},"see-also","See Also",[60,61,62,71,78,84,102],"ul",{},[63,64,65],"li",{},[19,66,70],{"href":67,"rel":68},"http:\u002F\u002Fthelackthereof.org\u002Fprojects\u002Focaml\u002Fogpf\u002F",[69],"nofollow","The OGPF project directory",[63,72,73],{},[19,74,77],{"href":75,"rel":76},"http:\u002F\u002Fthelackthereof.org\u002Fprojects\u002Focaml\u002Fogpf\u002Fsnapshots\u002F",[69],"Snapshots of the code",[63,79,80],{},[19,81,83],{"href":82},"\u002Fogpf-background","OGPF Background",[63,85,86,87,96,97,101],{},"do ",[88,89,90,91,95],"nowiki",{}," \"darcs get ",[19,92,93],{"href":93,"rel":94},"http:\u002F\u002Fthelackthereof.org\u002Fprojects\u002Focaml\u002Fogpf",[69],"\" "," to join development (see ",[19,98,100],{"href":99},"\u002Fdarcs","Darcs",")",[63,103,104],{},[19,105,106],{"href":106,"rel":107},"http:\u002F\u002Fwww.lri.fr\u002F~marc\u002FEO\u002Feo\u002Ftutorial\u002Fhtml\u002FeoBottomUp.html",[69],[10,109,111],{"id":110},"status","Status",[15,113,114],{},"The framework itself is now functional, but to be useful to others I must still implement some common components. For example, I am now implementing Koza-lisp style genotype (just simple functions and terminals) in a couple different ways; I need to implement a Koza-style population management scheme, and using these reproduce some Koza-style problems (straight from the Genetic Programming books, probably). There are still some modularity issues.",[10,116,118],{"id":117},"plans","Plans",[15,120,121],{},"Other things that this thing needs (long-term stuff):",[60,123,124,127,130,133,136],{},[63,125,126],{},"UI for managing runs",[63,128,129],{},"Statistical analysis of runs",[63,131,132],{},"Graphs of said statistics",[63,134,135],{},"History \u002F Genealogy in runs (also for analysis)",[63,137,138],{},"Preemption of runs",[10,140,142],{"id":141},"documentation","Documentation",[15,144,145],{},[19,146,148],{"href":147},"\u002Fogpf-layout","OGPF Layout",{"title":150,"searchDepth":151,"depth":151,"links":152},"",2,[153,154,155,156,157],{"id":12,"depth":151,"text":13},{"id":57,"depth":151,"text":58},{"id":110,"depth":151,"text":111},{"id":117,"depth":151,"text":118},{"id":141,"depth":151,"text":142},"2004-12-11T03:08-05:00",false,"md",null,{},true,{"title":5,"description":150},[166],"project","2005-04-23T22:19-04:00","2ySFd-jj0wCt8R4RZseAJmP3M27mYCniDpfRA3Iqc0w",1778988312523]