|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectbcds.phison.ra.RoutingAlgBase<V,E>
bcds.phison.ra.DijkstraAll<V,E>
bcds.phison.ra.LIOA<V,E>
public class LIOA<V,E>
Implements the LIOA routing algorithm. It is based on the following paper:
Bagula A.B., Botha M., and Krzesinski A.E., "Online Traffic Engineering: The Least Interference Optimization Algorithm," in Proc. 2004 IEEE International Conference on Communications, 2004.
LIOA uses a parameter called "alpha" (0 ≤ alpha ≤ 1), that represents the trade-off between the "least intefering optimization" effort and a simple capacity constrained shortest path. The effect of the extreme alpha values on link cost is as follows:
alpha = 1
, it is the number of paths
traversing the links.
alpha = 0
, it is the inverse of the
residual capacity.
Notes:
Nested Class Summary |
---|
Nested classes/interfaces inherited from class bcds.phison.ra.DijkstraAll |
---|
DijkstraAll.PathExpansionInfo |
Constructor Summary | |
---|---|
LIOA()
Default constructor. |
|
LIOA(TED<V,E> ted,
Environ env)
Creates a new instance. |
Method Summary | |
---|---|
double |
getCost(E e)
Returns the cost of link e . |
java.lang.Object[] |
getEnvParams()
Returns the environment parameter used by LIOA. |
void |
setup(TED<V,E> ted,
Environ env)
Resets all internal data structures. |
Methods inherited from class bcds.phison.ra.DijkstraAll |
---|
dumpEvalEdgeState, evalEdge, filterGraph, generalizedDijkstra, getParent, getTotalCost, getVisitSequence, initialize, obtain, obtain, outgoingEdgesOf, run, runAll |
Methods inherited from class bcds.phison.ra.RoutingAlgBase |
---|
buildPathFromParentNodes, commitBackupPath, commitWorkingPath, dumpState, getBackupPath, getEnviron, getName, getTED, getWorkingPath, offersProtection, setBackupPath, setRequest, setWorkingPath, topologyHasChanged, uncommitBackupPath, uncommitWorkingPath |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface bcds.phison.ra.RoutingAlg |
---|
commitBackupPath, commitWorkingPath, dumpState, getBackupPath, getName, getWorkingPath, offersProtection, topologyHasChanged, uncommitBackupPath, uncommitWorkingPath |
Methods inherited from interface bcds.phison.WithEnvParams |
---|
getEnviron |
Constructor Detail |
---|
public LIOA()
setup(TED, Environ)
must be called.
public LIOA(TED<V,E> ted, Environ env)
ted
must not be null. If env
is not
null, the environment parameter
LIOA.alpha can be used to replace the default value
returned by getEnvParams
.
The cost map embedded in ted
is never used. Instead,
getCost(E)
is overriden to return the values as
prescribed by the LIOA algorithm.
Method Detail |
---|
public void setup(TED<V,E> ted, Environ env)
setup
in interface RoutingAlg<V,E>
setup
in class DijkstraAll<V,E>
public java.lang.Object[] getEnvParams()
alpha=0.45
.
getEnvParams
in interface WithEnvParams
getEnvParams
in class RoutingAlgBase<V,E>
public double getCost(E e)
e
. The cost function is:
cost(e) = (F(e) ^ alpha) / res_cap(e) ^ (1-alpha)where F(e) is the number of flows (connections) passing through link e and res_cap(e) is that link's residual capacity.
getCost
in interface RoutingAlg<V,E>
getCost
in class RoutingAlgBase<V,E>
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |