|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcodesimian.CS<CSGeneric>
codesimian.DefaultCS
codesimian.EvolveNumbers
public class EvolveNumbers
evolveNumbers(judge listOfInputs mutator automaticlyGeneratedList1 autoList2 autoList3...)
Given a CS to maximize the value of (1 output), and given a list of CSs to set the values of (inputs),
and given a mutator CS that combines 2 or more lists of numbers to create 1 new list of mostly unique numbers...
When executed, returns the value that the judge returns for the newest list of numbers.
...generate many lists of numbers to set the value of those CSs to, to maximize the value of the output.
Assumes the output's value is constant or similar, given the same values of the inputs,
but this is often false if the output depends on count() objects etc.
P(0) is the output. P(1) is a list of inputs. P(2) is the mutator. P(3 and higher) are filled with lists
of numbers and sorted by what P(0) returned when the numbers are copied to P(1).
The mutator creates a new list of numbers in its mutator.P(0).
Inputs to the mutator are in mutator.P(1), mutator.P(2), and optionally higher indexs.
It mutates 2 or more lists of numbers to create 1 new list of numbers outputted to mutator.P(0).
Mutator.maxP() must be at least 3, and it must create a list the same size as each of the input lists.
Each execution, creates 1 more list of numbers, tries it as input, executes P(0), and positions the list depending on what P(0) returned.
For efficiency, sometimes the lists at the end of this EvolveNumbers should be deleted, because they scored the lowest.
For simplicity, a setMaxP(int) function could be added to CS.java, or it could arbitrarily be limited to 100 sets of numbers.
CS.setD(double) is used to store the value returned by the output in the lists of numbers that caused that output.
ListAndNumber class is used for that.
Nested Class Summary | |
---|---|
static class |
EvolveNumbers.BellCurveNumberListMutator
this class takes 1 or more lists of numbers in P(1 and higher) and creates a partially-random hybrid in P(0). |
static class |
EvolveNumbers.ListAndNumber
this class should instead extend PrimitiveArray.DoubleArray when that class is created. |
Field Summary | |
---|---|
static java.util.Random |
rand
|
Fields inherited from class codesimian.CS |
---|
DESCRIPTION, END, EXECPROXY, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS |
Constructor Summary | |
---|---|
EvolveNumbers()
|
Method Summary | |
---|---|
java.lang.String |
description()
a short description of this CS, shorter than the javadoc, but long enough to tell what the params are for. |
double |
DForProxy()
Execute this CS and cast to double. |
int |
insertWhere(double value)
the values between P(3) and P(last index) should be sorted with higher value at lowest index. |
java.lang.String |
keyword()
For the CodeSimian language as a String. CodeSimian language keyword, like "+" "*" "max" ">" etc. Override this function if you want to specify a keyword other than how I derive them from the class name, like + for Add. Some CSs might never be intended to be used in the language by their keyword. The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()". |
int |
maxP()
Maximum quantity of Params |
int |
minP()
For DForProxy(). Minimum number of parameters in param[] needed to call DForProxy(). Defines which indexs of param[] DForProxy() can use. Functions with a different number of parameters must override this. OVERRIDE THIS FUNCTION IF EXEC USES A DIFFERENT NUMBER OF PARAMETERS. Default is 1. |
int[] |
selectIndexsToMutate(int quantity)
returns unique random indexs (more likely to be lower indexs) between 3 and countP()-1 |
int |
selectRandomIndex(double exponent)
higher exponent gets lower index. |
Methods inherited from class codesimian.DefaultCS |
---|
B, C, countP, decrementMyFuel, deleteP, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertP, insertS, insertZ, J, javaCode, LForProxy, LForProxy, myFuel, name, newInstance, objectToCS, objectToCSArray, objectToCSArray, P, prevD, prevL, PType, S, setB, setC, setCountP, setD, setD, setExec, setF, setFuel, setI, setJ, setL, setL, setL, setL1, setMyFuel, setName, setObject, setP, setPrevExec, setPType, setS, setZ, start, toString, V, Z |
Methods inherited from class codesimian.CS |
---|
addB, addC, addD, addF, addI, addJ, addL, addP, addP, addP, addP, addP, addS, addZ, BForProxy, CForProxy, clone, cost, D, deleteP, FForProxy, GETB, GETC, GETD, GETF, GETI, GETJ, GETL, GETS, GETZ, IForProxy, isIllusion, JForProxy, L, L, L, L, L, maxD, minD, overwrites, parent, parsePriority, PB, PC, PD, PF, PI, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, PS, PZ, reflect, reflect, reflect6, setB, SETB, setC, SETC, setCost, SETD, setDescription, setF, SETF, setHeap, setI, SETI, setJ, SETJ, SETL, setL, setL, setParent, setParsePriority, setProxyOf, setS, SETS, setTester, setZ, SETZ, SForProxy, tester, toJavaCode, VForProxy, voidReflect, ZForProxy |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static java.util.Random rand
Constructor Detail |
---|
public EvolveNumbers()
Method Detail |
---|
public double DForProxy()
CS
DForProxy
in class DefaultCS
public java.lang.String keyword()
DefaultCS
keyword
in class DefaultCS
CS.parent()
,
CS.newInstance()
,
CS.name()
public int insertWhere(double value)
public int[] selectIndexsToMutate(int quantity)
public int selectRandomIndex(double exponent)
public int minP()
DefaultCS
minP
in class DefaultCS
public int maxP()
CS
maxP
in class CS
public java.lang.String description()
CS
description
in class DefaultCS
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |