Hi, I've been trying to design an optimal spreading program for this computer game: www.node-def.com, but I lack the mathematical skill to solve this trough calculation, so I hope you guys can help me on this.

The idea is that you program a node, wich will perform the programmed instructions according to priority and possibility. All I am intrested in, is how I can program a node to let it replicate itself as fast as possible.
The node can be instructed to replicate in all direction, withing 360 degree. Between a distance of 1-100.
To create a new node costs 2 seconds, to travel a distance of 1 takes 0.1 second, to transfer the programmed instructions takes 0.3 second per instruction, i.e. replication order.
The diameter of a node is 20 distance.
What I would like is a node that spreads forward as fast as possible and as close as possible.

I hope someone knows the solution for this.

Jordi

2. Originally Posted by Jordi
Hi, I've been trying to design an optimal spreading program for this computer game: www.node-def.com, but I lack the mathematical skill to solve this trough calculation, so I hope you guys can help me on this.

The idea is that you program a node, wich will perform the programmed instructions according to priority and possibility. All I am intrested in, is how I can program a node to let it replicate itself as fast as possible.
The node can be instructed to replicate in all direction, withing 360 degree. Between a distance of 1-100.
To create a new node costs 2 seconds, to travel a distance of 1 takes 0.1 second, to transfer the programmed instructions takes 0.3 second per instruction, i.e. replication order.
The diameter of a node is 20 distance.
What I would like is a node that spreads forward as fast as possible and as close as possible.
I hope someone knows the solution for this.
Jordi

It looks interesting. However, the linked URL does not explain the problem. To find out more it is required to join/sign up as a member.
At the moment, do not want to.

Just curious, could you please define:
programmed instructions
priority
possibility.

:::
function ReplicateNode( X0,Y0,Z0, Direction, Distance)
Is this considered 1 instruction?

Is replication doing a copy or is that considered "to create a new node"?
What instructions are actually available for use.

If the diameter of a node is 20 distance, it makes no sense to move less than 20. Why would you want nodes to overlap?

What is the purpose of
spreads forward as fast as possible and as close as possible.

Could you provide an example of what you are thinking or how you might approach the problem?

3. Hi, thanks for the intrest, here are some answers:

You begin by designing a node, by telling what it should do according to priority. This means that each programmed instruction is listed into the node and the node will follow the instructions from top to bottom.
If the first instruction has been completed and it cannot do the first instruction again, for instance: replicate forward, distance 1, it cannot again replicate in that direction because the place designed place is now unavailable because of the other node, so if it's unaible to do the first instruction the program of the node will go to the next instruction etc.
But as soon as one of the instructions at top become available again, due to the other node has been destroyed, then it will follow that instruction again.
You can also set certain condition for an instruction to be followed, for instance don't replicate forward if there is an enemy within distance of 100.
Checking whether an instruction is available or not takes no time, nor do the extra conditions take any extra time.

You can program a node to do the following things:

- connect
- infect
- replicate
- disconnect
- kill
- suicide

Each instruction is one of these above programs including conditions.
If you want to set different conditions for the same program you have to list that program twice, thus it will be take up room for 2 instructions.

EDIT: Nodes cannot overlap, and if there is no room to replicate a node in the designated place the program will go to the next instruction.

function ReplicateNode( X0,Y0,Z0, Direction, Distance)
This is indeed 1 instruction.

Each replication of a new node is exactly as the previous node and will starting to perform the listed instructions that it got transfered trough the earlier node. As I mentioned, the transfer of 1 instruction takes 0.3 sec.
Plus 0.1 seconds to travel a distance of 1.

To move forward 1 distance and replicate there means that the node will copy itself and place a new node just in front of him. This is the quickest way to copy because the establishing of the transfer link and the transers itself take minimum amount of time.

To move forward is because you want to deny your enemy territory and you want to advance your territory.
Close as possible is because it will be harder for the enemy to penetrate your structure and you will copy faster.

My initial idea is:

replicate forward; distance 1
replicate sideward; distance 10; angle 45
replicate sideward; distance 10; angle -45
replicate forward; distance 30

this give kind of V form with a bulge in middle of the v.

This is just a guess and I don't think it's near the optimal solution, also I didn't use any mathematical base for this.

I hope that mathematics will be able to give a definite, or atleast concrete asnwer of how to program the starting node best in order to spread as fast as possibe.