|
||||||||||
| 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 WithEnvParamsgetEnvParams 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 | |||||||||