Fault Tolerance provided by Capillary Routing

 

Rounded Rectangle: Home   Rounded Rectangle: Examples   Rounded Rectangle: Code   Rounded Rectangle: Download   Rounded Rectangle: Speedup   Rounded Rectangle: Upgrades   Rounded Rectangle: Links

 

Description of the AMPL code

 

Rounded Rectangle: model  Rounded Rectangle: diagram  Rounded Rectangle: config  Rounded Rectangle: cleancore  Rounded Rectangle: randomwalk  Rounded Rectangle: solve  Rounded Rectangle: slideshow  Rounded Rectangle: ACAE

 

Cleaning from the core set the non bottleneck links

 

..\a21download\cleancore.txt

Script

Comments

printf "Cleaning the core sets";

let benchmark_start := _ampl_time;

starting the benchmarking

for{t in FRAMES}

{

starting the loop for all frames

  let maxload := min(1,max{(i,j) in Core[t]} Link[t,i,j]);

using the maxload value instead of 1, in case if the load of bottleneck links did not reach exactly the level of 1 (due to precision errors)

  let Core_clean[t] := {(i,j) in Core[t]: Link[t,i,j]>=maxload-eps};

}

cleaned core contains only the links sustaining the maximal load values

printf " ... ";

let FRAMES_quit := {t in FRAMES: Core[t] diff Core_clean[t] within {}};

frames for which cleaning could not remove any non-bottleneck links are marked for quit, since for these frames the bottlenecks are definitely discovered

for{t in FRAMES}

{

  let Core[t] := Core_clean[t];

}

resetting the Core set with the new cleaned set

let benchmark_stop := _ampl_time;

printf "done in %f seconds\n",benchmark_stop - benchmark_start;

printing benchmarking results of the core cleaning process

 

 

*    *    *