Code center > Bugs and fixes

Ugly Copy Error Logic

(1/2) > >>

Botsareus:
Maybe more of suggestion than a bug:

The way Copy Error and Point mutation used to work:

For all sysvars below 100 it would generate a new sysvar using gauss that is approximately within 30 commands of the old sysvar.

For all sysvars above 100 it would generate a new sysvar using gauss that is approximately within (3/10 * old sysvar) commands of the old sysvar.

This means with lower values it would try to select a value in the same group while for high values command groupings are ignored.
This does not play well with how sysvars are grouped. For example chloroplast sysvars groups are ignored because the whole group has a high sysvar range.

I simplified this with the following:

For all sysvar below 1000

1/2 chance the value will be within 21 commands.
and
1/2 chance the value will be within 282 commands.

To keep things interesting, for large numbers, all numbers above 1000, generate a new number using gauss that is approximately within (3/10 * old number) commands of the old number.


Also, I already implemented it in my local repository and really do not feel like reverting it.  :P

spike43884:

--- Quote from: Botsareus on April 11, 2016, 01:54:36 PM ---Maybe more of suggestion than a bug:

The way Copy Error and Point mutation used to work:

For all sysvars below 100 it would generate a new sysvar using gauss that is approximately within 30 commands of the old sysvar.

For all sysvars above 100 it would generate a new sysvar using gauss that is approximately within (3/10 * old sysvar) commands of the old sysvar.

This means with lower values it would try to select a value in the same group while for high values command groupings are ignored.
This does not play well with how sysvars are grouped. For example chloroplast sysvars groups are ignored because the whole group has a high sysvar range.

I simplified this with the following:

For all sysvar below 1000

1/2 chance the value will be within 21 commands.
and
1/2 chance the value will be within 282 commands.

To keep things interesting, for large numbers, all numbers above 1000, generate a new number using gauss that is approximately within (3/10 * old number) commands of the old number.


Also, I already implemented it in my local repository and really do not feel like reverting it.  :P

--- End quote ---

Or alternatively, to give us slightly less predictable patterns for a bit more fun.
Make it calculate twice or such, in either of the following systems.
O = Original Value
A = Value change 1
B = Value change 2

System 1:
Run 1:
A is within 40 of O
Run 2:
1/2 chance B is within 50 of A
1/2 chance B is within 100 of A

System 2:
A is within 100 of O
B is within 100 of O then A is subtracted from B
Final value is the average between A, B and O

Botsareus:
This is a classic kiss scenario. (keep it simple stupid) And based strictly on how commands are organized in our current DNA. The fact that it uses Gaussian curves already takes care of what you propose. Hey, on that note I am actually testing this thing now. Than I have to test the new PeterIM on my local server and package a drop. At some point after that I will revisit the zerobot algorithm and I am still evolving my zb further using my survival evolution algorithm.

spike43884:

--- Quote from: Botsareus on April 18, 2016, 02:05:18 PM ---This is a classic kiss scenario. (keep it simple stupid) And based strictly on how commands are organized in our current DNA. The fact that it uses Gaussian curves already takes care of what you propose. Hey, on that note I am actually testing this thing now. Than I have to test the new PeterIM on my local server and package a drop. At some point after that I will revisit the zerobot algorithm and I am still evolving my zb further using my survival evolution algorithm.

--- End quote ---
We use a Gaussian curve?  :O
OFFTOPIC: Is peterIM using the same, single port still?

Botsareus:
It is not using any port so far...

offtopic:
What is the big deal about using just one port anyway?

Navigation

[0] Message Index

[#] Next page

Go to full version