12.07.2015 Views

Davide Cherubini - PhD Thesis - UniCA Eprints

Davide Cherubini - PhD Thesis - UniCA Eprints

Davide Cherubini - PhD Thesis - UniCA Eprints

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.2 Deterministic Algorithms• If a cycle is detected, that is, if an ant is forced to return to an alreadyvisited node, the cycle’s nodes are popped from the ant’s stack and all thememory about them is destroyed.• When the destination node d is reached, the agent becomes a different agent(backward ant) transferring to it all the contents of its memory.• The backward ant takes, in the opposite direction, the same path as thatof its corresponding forward ant. At each traversed node along the path itpops its stack to know the next hop node.• At each node reached, the backward ant updates two data structures heldand updated by every node, that are a routing table, organized as in vectordistancealgorithms, and a list representing a “memory” of the network asseen by the reached node in probability terms.The update of the routing table happens using the trip time experienced by theforward ant, that gives a clear indication about the goodness of the followed routefrom a physical point of view (number of hops, transmission capacity of the usedlinks, processing speed of the crossed nodes) and from a traffic congestion pointof view.4.2 Deterministic AlgorithmsIn deterministic models good decisions bring about good outcomes. Given a particularinput, it will always produce the same correct output, and the underlyingmachine will always pass through the same sequence of states. Therefore, theoutcome is deterministic (e.g. risk-free).Deterministic algorithms are by far the most studied and familiar kind of algorithm,as well as one of the most practical, since they can be run on real machinesefficiently.One simple model for deterministic algorithms is the mathematical function;just as a function always produces the same output given a certain input. Thedifference is that algorithms describe precisely how the output is obtained fromthe input, whereas abstract functions may be defined implicitly.25

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!