Advertisement
froleyks

code

Nov 5th, 2018
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 80.85 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Rextester
  8. {
  9.     public class Program
  10.     {
  11.         public class Edge
  12.         {
  13.             public int src;
  14.             public int dest;
  15.             public double capacity;
  16.             public double flow;
  17.  
  18.             public Edge(int src, int dest, double capacity ,double flow)
  19.             {
  20.                 this.src = src;
  21.                 this.dest = dest;
  22.                 this.capacity = capacity;
  23.                 this.flow = flow;
  24.             }
  25.         }
  26.  
  27.         public class Vertex
  28.         {
  29.             public int ID;
  30.             public double feedTotal;
  31.             public double consumptionTotal;
  32.             public double feedRemaining;
  33.             public double consumptionRemaining;
  34.             public double leitwertRamaining;
  35.             public double reserveCapacity;
  36.             public double specificCostsResCapa;
  37.  
  38.  
  39.  
  40.  
  41.             public Vertex(int ID, double feedTotal, double consumptionTotal, double feedRemaining, double consumptionRemaining, double reserveCapacity, double specificCostsResCapa)
  42.             {
  43.                 this.ID = ID;
  44.                 this.feedTotal = feedTotal;
  45.                 this.consumptionTotal = consumptionTotal;
  46.                 this.feedRemaining = feedRemaining;
  47.                 this.consumptionRemaining = consumptionRemaining;
  48.                 this.reserveCapacity = reserveCapacity;
  49.                 this.specificCostsResCapa = specificCostsResCapa;
  50.  
  51.  
  52.             }
  53.         }
  54.  
  55.             public class Feed_Cons
  56.             {
  57.                 public int src;
  58.                 public int dest;
  59.                 public double resistance;
  60.                 public double flow;
  61.  
  62.                 public Feed_Cons(int src, int dest, double resistance, double flow)
  63.                 {
  64.                     this.src = src;
  65.                     this.dest = dest;
  66.                     this.resistance = resistance;
  67.                     this.flow = flow;
  68.                 }
  69.             }
  70.             public class PathGroup
  71.         {
  72.             public int pathGroupSrc;
  73.             public int pathGroupdest;
  74.             public int edgeSrc;
  75.             public int edgeDest;
  76.             public double flowShare;
  77.             public double flow;
  78.  
  79.  
  80.             public PathGroup(int pathGroupSrc, int pathGroupdest, int edgeSrc, int edgeDest, double flowShare, double flow)
  81.             {
  82.                 this.pathGroupSrc = pathGroupSrc;
  83.                 this.pathGroupdest = pathGroupdest;
  84.                 this.edgeSrc = edgeSrc;
  85.                 this.edgeDest = edgeDest;
  86.                 this.flowShare = flowShare;
  87.                 this.flow = flow;
  88.             }
  89.         }
  90.  
  91.         public static void Main(string[] args)
  92.         {
  93.  
  94.             int v_total = 12;
  95.             int e_total = 36;
  96.  
  97.                 // Widerstände von Feed zu Consumption aus EXCEL-Berechnung
  98.  
  99.                 Feed_Cons[,] feed_cons = new Feed_Cons[v_total, v_total];
  100.  
  101.  
  102.             feed_cons[0, 0] = new Feed_Cons(0, 0, 999999999, 0);
  103.             feed_cons[1, 0] = new Feed_Cons(1, 0, 2.80516239510504, 0);
  104.             feed_cons[2, 0] = new Feed_Cons(2, 0, 1.96737329499112, 0);
  105.             feed_cons[3, 0] = new Feed_Cons(3, 0, 1.62531946285445, 0);
  106.             feed_cons[4, 0] = new Feed_Cons(4, 0, 2.58845160330614, 0);
  107.             feed_cons[5, 0] = new Feed_Cons(5, 0, 2.19635405561009, 0);
  108.             feed_cons[6, 0] = new Feed_Cons(6, 0, 1.33761911943027, 0);
  109.             feed_cons[7, 0] = new Feed_Cons(7, 0, 0.968801058156133, 0);
  110.             feed_cons[8, 0] = new Feed_Cons(8, 0, 2.50486680065372, 0);
  111.             feed_cons[9, 0] = new Feed_Cons(9, 0, 3.07252290335162, 0);
  112.             feed_cons[10, 0] = new Feed_Cons(10, 0, 2.16810214046393, 0);
  113.             feed_cons[11, 0] = new Feed_Cons(11, 0, 0.760249062556896, 0);
  114.             feed_cons[0, 1] = new Feed_Cons(0, 1, 2.80516239510504, 0);
  115.             feed_cons[1, 1] = new Feed_Cons(1, 1, 999999999, 0);
  116.             feed_cons[2, 1] = new Feed_Cons(2, 1, 2.3128494794322, 0);
  117.             feed_cons[3, 1] = new Feed_Cons(3, 1, 3.93722587294865, 0);
  118.             feed_cons[4, 1] = new Feed_Cons(4, 1, 4.95867592195045, 0);
  119.             feed_cons[5, 1] = new Feed_Cons(5, 1, 1.18766321931718, 0);
  120.             feed_cons[6, 1] = new Feed_Cons(6, 1, 1.46754327567477, 0);
  121.             feed_cons[7, 1] = new Feed_Cons(7, 1, 2.56757548021025, 0);
  122.             feed_cons[8, 1] = new Feed_Cons(8, 1, 1.35234704598097, 0);
  123.             feed_cons[9, 1] = new Feed_Cons(9, 1, 2.09325805515712, 0);
  124.             feed_cons[10, 1] = new Feed_Cons(10, 1, 2.18659242445384, 0);
  125.             feed_cons[11, 1] = new Feed_Cons(11, 1, 2.04491333254814, 0);
  126.             feed_cons[0, 2] = new Feed_Cons(0, 2, 1.96737329499112, 0);
  127.             feed_cons[1, 2] = new Feed_Cons(1, 2, 2.3128494794322, 0);
  128.             feed_cons[2, 2] = new Feed_Cons(2, 2, 999999999, 0);
  129.             feed_cons[3, 2] = new Feed_Cons(3, 2, 1.62437639351644, 0);
  130.             feed_cons[4, 2] = new Feed_Cons(4, 2, 2.64582644251825, 0);
  131.             feed_cons[5, 2] = new Feed_Cons(5, 2, 1.86192695138924, 0);
  132.             feed_cons[6, 2] = new Feed_Cons(6, 2, 0.629754175560854, 0);
  133.             feed_cons[7, 2] = new Feed_Cons(7, 2, 1.72978638009633, 0);
  134.             feed_cons[8, 2] = new Feed_Cons(8, 2, 2.71564339380501, 0);
  135.             feed_cons[9, 2] = new Feed_Cons(9, 2, 2.36465795948221, 0);
  136.             feed_cons[10, 2] = new Feed_Cons(10, 2, 1.46023719659452, 0);
  137.             feed_cons[11, 2] = new Feed_Cons(11, 2, 1.20712423243422, 0);
  138.             feed_cons[0, 3] = new Feed_Cons(0, 3, 1.62531946285445, 0);
  139.             feed_cons[1, 3] = new Feed_Cons(1, 3, 3.93722587294865, 0);
  140.             feed_cons[2, 3] = new Feed_Cons(2, 3, 1.62437639351644, 0);
  141.             feed_cons[3, 3] = new Feed_Cons(3, 3, 999999999, 0);
  142.             feed_cons[4, 3] = new Feed_Cons(4, 3, 1.0214500490018, 0);
  143.             feed_cons[5, 3] = new Feed_Cons(5, 3, 1.69636923958814, 0);
  144.             feed_cons[6, 3] = new Feed_Cons(6, 3, 1.02960773100649, 0);
  145.             feed_cons[7, 3] = new Feed_Cons(7, 3, 1.5576607976382, 0);
  146.             feed_cons[8, 3] = new Feed_Cons(8, 3, 2.55008568200391, 0);
  147.             feed_cons[9, 3] = new Feed_Cons(9, 3, 2.76451151492784, 0);
  148.             feed_cons[10, 3] = new Feed_Cons(10, 3, 1.86009075204016, 0);
  149.             feed_cons[11, 3] = new Feed_Cons(11, 3, 1.60697778787986, 0);
  150.             feed_cons[0, 4] = new Feed_Cons(0, 4, 2.58845160330614, 0);
  151.             feed_cons[1, 4] = new Feed_Cons(1, 4, 4.95867592195045, 0);
  152.             feed_cons[2, 4] = new Feed_Cons(2, 4, 2.64582644251825, 0);
  153.             feed_cons[3, 4] = new Feed_Cons(3, 4, 1.0214500490018, 0);
  154.             feed_cons[4, 4] = new Feed_Cons(4, 4, 999999999, 0);
  155.             feed_cons[5, 4] = new Feed_Cons(5, 4, 2.71781928858994, 0);
  156.             feed_cons[6, 4] = new Feed_Cons(6, 4, 1.32244874144521, 0);
  157.             feed_cons[7, 4] = new Feed_Cons(7, 4, 1.61965054515, 0);
  158.             feed_cons[8, 4] = new Feed_Cons(8, 4, 3.57153573100571, 0);
  159.             feed_cons[9, 4] = new Feed_Cons(9, 4, 3.78596156392964, 0);
  160.             feed_cons[10, 4] = new Feed_Cons(10, 4, 2.88154080104196, 0);
  161.             feed_cons[11, 4] = new Feed_Cons(11, 4, 1.62531946285445, 0);
  162.             feed_cons[0, 5] = new Feed_Cons(0, 5, 2.19635405561009, 0);
  163.             feed_cons[1, 5] = new Feed_Cons(1, 5, 1.18766321931718, 0);
  164.             feed_cons[2, 5] = new Feed_Cons(2, 5, 1.86192695138924, 0);
  165.             feed_cons[3, 5] = new Feed_Cons(3, 5, 1.69636923958814, 0);
  166.             feed_cons[4, 5] = new Feed_Cons(4, 5, 2.71781928858994, 0);
  167.             feed_cons[5, 5] = new Feed_Cons(5, 5, 999999999, 0);
  168.             feed_cons[6, 5] = new Feed_Cons(6, 5, 1.61843715464112, 0);
  169.             feed_cons[7, 5] = new Feed_Cons(7, 5, 1.9587671407153, 0);
  170.             feed_cons[8, 5] = new Feed_Cons(8, 5, 0.853716442415769, 0);
  171.             feed_cons[9, 5] = new Feed_Cons(9, 5, 0.867682590510027, 0);
  172.             feed_cons[10, 5] = new Feed_Cons(10, 5, 0.998929205136661, 0);
  173.             feed_cons[11, 5] = new Feed_Cons(11, 5, 1.4361049930532, 0);
  174.             feed_cons[0, 6] = new Feed_Cons(0, 6, 1.33761911943027, 0);
  175.             feed_cons[1, 6] = new Feed_Cons(1, 6, 1.46754327567477, 0);
  176.             feed_cons[2, 6] = new Feed_Cons(2, 6, 0.629754175560854, 0);
  177.             feed_cons[3, 6] = new Feed_Cons(3, 6, 1.02960773100649, 0);
  178.             feed_cons[4, 6] = new Feed_Cons(4, 6, 1.32244874144521, 0);
  179.             feed_cons[5, 6] = new Feed_Cons(5, 6, 1.61843715464112, 0);
  180.             feed_cons[6, 6] = new Feed_Cons(6, 6, 999999999, 0);
  181.             feed_cons[7, 6] = new Feed_Cons(7, 6, 1.10003220453547, 0);
  182.             feed_cons[8, 6] = new Feed_Cons(8, 6, 1.16724768122345, 0);
  183.             feed_cons[9, 6] = new Feed_Cons(9, 6, 1.73490378392135, 0);
  184.             feed_cons[10, 6] = new Feed_Cons(10, 6, 0.83048302103367, 0);
  185.             feed_cons[11, 6] = new Feed_Cons(11, 6, 0.57737005687337, 0);
  186.             feed_cons[0, 7] = new Feed_Cons(0, 7, 0.968801058156133, 0);
  187.             feed_cons[1, 7] = new Feed_Cons(1, 7, 2.56757548021025, 0);
  188.             feed_cons[2, 7] = new Feed_Cons(2, 7, 1.72978638009633, 0);
  189.             feed_cons[3, 7] = new Feed_Cons(3, 7, 1.5576607976382, 0);
  190.             feed_cons[4, 7] = new Feed_Cons(4, 7, 1.61965054515, 0);
  191.             feed_cons[5, 7] = new Feed_Cons(5, 7, 1.9587671407153, 0);
  192.             feed_cons[6, 7] = new Feed_Cons(6, 7, 1.10003220453547, 0);
  193.             feed_cons[7, 7] = new Feed_Cons(7, 7, 999999999, 0);
  194.             feed_cons[8, 7] = new Feed_Cons(8, 7, 2.26727988575893, 0);
  195.             feed_cons[9, 7] = new Feed_Cons(9, 7, 2.83493598845683, 0);
  196.             feed_cons[10, 7] = new Feed_Cons(10, 7, 1.93051522556914, 0);
  197.             feed_cons[11, 7] = new Feed_Cons(11, 7, 1.72905012071303, 0);
  198.             feed_cons[0, 8] = new Feed_Cons(0, 8, 2.50486680065372, 0);
  199.             feed_cons[1, 8] = new Feed_Cons(1, 8, 1.35234704598097, 0);
  200.             feed_cons[2, 8] = new Feed_Cons(2, 8, 2.71564339380501, 0);
  201.             feed_cons[3, 8] = new Feed_Cons(3, 8, 2.55008568200391, 0);
  202.             feed_cons[4, 8] = new Feed_Cons(4, 8, 3.57153573100571, 0);
  203.             feed_cons[5, 8] = new Feed_Cons(5, 8, 0.853716442415769, 0);
  204.             feed_cons[6, 8] = new Feed_Cons(6, 8, 1.16724768122345, 0);
  205.             feed_cons[7, 8] = new Feed_Cons(7, 8, 2.26727988575893, 0);
  206.             feed_cons[8, 8] = new Feed_Cons(8, 8, 999999999, 0);
  207.             feed_cons[9, 8] = new Feed_Cons(9, 8, 0.740911009176148, 0);
  208.             feed_cons[10, 8] = new Feed_Cons(10, 8, 0.871422648185129, 0);
  209.             feed_cons[11, 8] = new Feed_Cons(11, 8, 1.74461773809682, 0);
  210.             feed_cons[0, 9] = new Feed_Cons(0, 9, 3.07252290335162, 0);
  211.             feed_cons[1, 9] = new Feed_Cons(1, 9, 2.09325805515712, 0);
  212.             feed_cons[2, 9] = new Feed_Cons(2, 9, 2.36465795948221, 0);
  213.             feed_cons[3, 9] = new Feed_Cons(3, 9, 2.76451151492784, 0);
  214.             feed_cons[4, 9] = new Feed_Cons(4, 9, 3.78596156392965, 0);
  215.             feed_cons[5, 9] = new Feed_Cons(5, 9, 0.867682590510027, 0);
  216.             feed_cons[6, 9] = new Feed_Cons(6, 9, 1.73490378392135, 0);
  217.             feed_cons[7, 9] = new Feed_Cons(7, 9, 2.83493598845683, 0);
  218.             feed_cons[8, 9] = new Feed_Cons(8, 9, 0.740911009176148, 0);
  219.             feed_cons[9, 9] = new Feed_Cons(9, 9, 999999999, 0);
  220.             feed_cons[10, 9] = new Feed_Cons(10, 9, 0.904420762887685, 0);
  221.             feed_cons[11, 9] = new Feed_Cons(11, 9, 2.31227384079472, 0);
  222.             feed_cons[0, 10] = new Feed_Cons(0, 10, 2.16810214046394, 0);
  223.             feed_cons[1, 10] = new Feed_Cons(1, 10, 2.18659242445384, 0);
  224.             feed_cons[2, 10] = new Feed_Cons(2, 10, 1.46023719659452, 0);
  225.             feed_cons[3, 10] = new Feed_Cons(3, 10, 1.86009075204016, 0);
  226.             feed_cons[4, 10] = new Feed_Cons(4, 10, 2.88154080104196, 0);
  227.             feed_cons[5, 10] = new Feed_Cons(5, 10, 0.998929205136661, 0);
  228.             feed_cons[6, 10] = new Feed_Cons(6, 10, 0.83048302103367, 0);
  229.             feed_cons[7, 10] = new Feed_Cons(7, 10, 1.93051522556914, 0);
  230.             feed_cons[8, 10] = new Feed_Cons(8, 10, 0.871422648185129, 0);
  231.             feed_cons[9, 10] = new Feed_Cons(9, 10, 0.904420762887685, 0);
  232.             feed_cons[10, 10] = new Feed_Cons(10, 10, 999999999, 0);
  233.             feed_cons[11, 10] = new Feed_Cons(11, 10, 1.40785307790704, 0);
  234.             feed_cons[0, 11] = new Feed_Cons(0, 11, 0.760249062556896, 0);
  235.             feed_cons[1, 11] = new Feed_Cons(1, 11, 2.04491333254814, 0);
  236.             feed_cons[2, 11] = new Feed_Cons(2, 11, 1.20712423243422, 0);
  237.             feed_cons[3, 11] = new Feed_Cons(3, 11, 1.60697778787986, 0);
  238.             feed_cons[4, 11] = new Feed_Cons(4, 11, 1.62531946285445, 0);
  239.             feed_cons[5, 11] = new Feed_Cons(5, 11, 1.4361049930532, 0);
  240.             feed_cons[6, 11] = new Feed_Cons(6, 11, 0.57737005687337, 0);
  241.             feed_cons[7, 11] = new Feed_Cons(7, 11, 1.72905012071303, 0);
  242.             feed_cons[8, 11] = new Feed_Cons(8, 11, 1.74461773809682, 0);
  243.             feed_cons[9, 11] = new Feed_Cons(9, 11, 2.31227384079472, 0);
  244.             feed_cons[10, 11] = new Feed_Cons(10, 11, 1.40785307790704, 0);
  245.             feed_cons[11, 11] = new Feed_Cons(11, 11, 999999999, 0);
  246.  
  247.  
  248.             Edge[,] edge = new Edge[v_total, v_total];
  249.  
  250.             edge[0, 0] = new Edge(0, 0, 130000, 0);
  251.             edge[1, 0] = new Edge(1, 0, 130000, 0);
  252.             edge[2, 0] = new Edge(2, 0, 130000, 0);
  253.             edge[3, 0] = new Edge(3, 0, 130000, 0);
  254.             edge[4, 0] = new Edge(4, 0, 130000, 0);
  255.             edge[5, 0] = new Edge(5, 0, 130000, 0);
  256.             edge[6, 0] = new Edge(6, 0, 130000, 0);
  257.             edge[7, 0] = new Edge(7, 0, 130000, 0);
  258.             edge[8, 0] = new Edge(8, 0, 130000, 0);
  259.             edge[9, 0] = new Edge(9, 0, 130000, 0);
  260.             edge[10, 0] = new Edge(10, 0, 130000, 0);
  261.             edge[11, 0] = new Edge(11, 0, 130000, 0);
  262.             edge[0, 1] = new Edge(0, 1, 130000, 0);
  263.             edge[1, 1] = new Edge(1, 1, 130000, 0);
  264.             edge[2, 1] = new Edge(2, 1, 130000, 0);
  265.             edge[3, 1] = new Edge(3, 1, 130000, 0);
  266.             edge[4, 1] = new Edge(4, 1, 130000, 0);
  267.             edge[5, 1] = new Edge(5, 1, 130000, 0);
  268.             edge[6, 1] = new Edge(6, 1, 130000, 0);
  269.             edge[7, 1] = new Edge(7, 1, 130000, 0);
  270.             edge[8, 1] = new Edge(8, 1, 130000, 0);
  271.             edge[9, 1] = new Edge(9, 1, 130000, 0);
  272.             edge[10, 1] = new Edge(10, 1, 130000, 0);
  273.             edge[11, 1] = new Edge(11, 1, 130000, 0);
  274.             edge[0, 2] = new Edge(0, 2, 130000, 0);
  275.             edge[1, 2] = new Edge(1, 2, 130000, 0);
  276.             edge[2, 2] = new Edge(2, 2, 130000, 0);
  277.             edge[3, 2] = new Edge(3, 2, 130000, 0);
  278.             edge[4, 2] = new Edge(4, 2, 130000, 0);
  279.             edge[5, 2] = new Edge(5, 2, 130000, 0);
  280.             edge[6, 2] = new Edge(6, 2, 130000, 0);
  281.             edge[7, 2] = new Edge(7, 2, 130000, 0);
  282.             edge[8, 2] = new Edge(8, 2, 130000, 0);
  283.             edge[9, 2] = new Edge(9, 2, 130000, 0);
  284.             edge[10, 2] = new Edge(10, 2, 130000, 0);
  285.             edge[11, 2] = new Edge(11, 2, 130000, 0);
  286.             edge[0, 3] = new Edge(0, 3, 130000, 0);
  287.             edge[1, 3] = new Edge(1, 3, 130000, 0);
  288.             edge[2, 3] = new Edge(2, 3, 130000, 0);
  289.             edge[3, 3] = new Edge(3, 3, 130000, 0);
  290.             edge[4, 3] = new Edge(4, 3, 130000, 0);
  291.             edge[5, 3] = new Edge(5, 3, 130000, 0);
  292.             edge[6, 3] = new Edge(6, 3, 130000, 0);
  293.             edge[7, 3] = new Edge(7, 3, 130000, 0);
  294.             edge[8, 3] = new Edge(8, 3, 130000, 0);
  295.             edge[9, 3] = new Edge(9, 3, 130000, 0);
  296.             edge[10, 3] = new Edge(10, 3, 130000, 0);
  297.             edge[11, 3] = new Edge(11, 3, 130000, 0);
  298.             edge[0, 4] = new Edge(0, 4, 130000, 0);
  299.             edge[1, 4] = new Edge(1, 4, 130000, 0);
  300.             edge[2, 4] = new Edge(2, 4, 130000, 0);
  301.             edge[3, 4] = new Edge(3, 4, 130000, 0);
  302.             edge[4, 4] = new Edge(4, 4, 130000, 0);
  303.             edge[5, 4] = new Edge(5, 4, 130000, 0);
  304.             edge[6, 4] = new Edge(6, 4, 130000, 0);
  305.             edge[7, 4] = new Edge(7, 4, 130000, 0);
  306.             edge[8, 4] = new Edge(8, 4, 130000, 0);
  307.             edge[9, 4] = new Edge(9, 4, 130000, 0);
  308.             edge[10, 4] = new Edge(10, 4, 130000, 0);
  309.             edge[11, 4] = new Edge(11, 4, 130000, 0);
  310.             edge[0, 5] = new Edge(0, 5, 130000, 0);
  311.             edge[1, 5] = new Edge(1, 5, 130000, 0);
  312.             edge[2, 5] = new Edge(2, 5, 130000, 0);
  313.             edge[3, 5] = new Edge(3, 5, 130000, 0);
  314.             edge[4, 5] = new Edge(4, 5, 130000, 0);
  315.             edge[5, 5] = new Edge(5, 5, 130000, 0);
  316.             edge[6, 5] = new Edge(6, 5, 130000, 0);
  317.             edge[7, 5] = new Edge(7, 5, 130000, 0);
  318.             edge[8, 5] = new Edge(8, 5, 130000, 0);
  319.             edge[9, 5] = new Edge(9, 5, 130000, 0);
  320.             edge[10, 5] = new Edge(10, 5, 130000, 0);
  321.             edge[11, 5] = new Edge(11, 5, 130000, 0);
  322.             edge[0, 6] = new Edge(0, 6, 130000, 0);
  323.             edge[1, 6] = new Edge(1, 6, 130000, 0);
  324.             edge[2, 6] = new Edge(2, 6, 130000, 0);
  325.             edge[3, 6] = new Edge(3, 6, 130000, 0);
  326.             edge[4, 6] = new Edge(4, 6, 130000, 0);
  327.             edge[5, 6] = new Edge(5, 6, 130000, 0);
  328.             edge[6, 6] = new Edge(6, 6, 130000, 0);
  329.             edge[7, 6] = new Edge(7, 6, 130000, 0);
  330.             edge[8, 6] = new Edge(8, 6, 130000, 0);
  331.             edge[9, 6] = new Edge(9, 6, 130000, 0);
  332.             edge[10, 6] = new Edge(10, 6, 130000, 0);
  333.             edge[11, 6] = new Edge(11, 6, 130000, 0);
  334.             edge[0, 7] = new Edge(0, 7, 130000, 0);
  335.             edge[1, 7] = new Edge(1, 7, 130000, 0);
  336.             edge[2, 7] = new Edge(2, 7, 130000, 0);
  337.             edge[3, 7] = new Edge(3, 7, 130000, 0);
  338.             edge[4, 7] = new Edge(4, 7, 130000, 0);
  339.             edge[5, 7] = new Edge(5, 7, 130000, 0);
  340.             edge[6, 7] = new Edge(6, 7, 130000, 0);
  341.             edge[7, 7] = new Edge(7, 7, 130000, 0);
  342.             edge[8, 7] = new Edge(8, 7, 130000, 0);
  343.             edge[9, 7] = new Edge(9, 7, 130000, 0);
  344.             edge[10, 7] = new Edge(10, 7, 130000, 0);
  345.             edge[11, 7] = new Edge(11, 7, 130000, 0);
  346.             edge[0, 8] = new Edge(0, 8, 130000, 0);
  347.             edge[1, 8] = new Edge(1, 8, 130000, 0);
  348.             edge[2, 8] = new Edge(2, 8, 130000, 0);
  349.             edge[3, 8] = new Edge(3, 8, 130000, 0);
  350.             edge[4, 8] = new Edge(4, 8, 130000, 0);
  351.             edge[5, 8] = new Edge(5, 8, 130000, 0);
  352.             edge[6, 8] = new Edge(6, 8, 130000, 0);
  353.             edge[7, 8] = new Edge(7, 8, 130000, 0);
  354.             edge[8, 8] = new Edge(8, 8, 130000, 0);
  355.             edge[9, 8] = new Edge(9, 8, 130000, 0);
  356.             edge[10, 8] = new Edge(10, 8, 130000, 0);
  357.             edge[11, 8] = new Edge(11, 8, 130000, 0);
  358.             edge[0, 9] = new Edge(0, 9, 130000, 0);
  359.             edge[1, 9] = new Edge(1, 9, 130000, 0);
  360.             edge[2, 9] = new Edge(2, 9, 130000, 0);
  361.             edge[3, 9] = new Edge(3, 9, 130000, 0);
  362.             edge[4, 9] = new Edge(4, 9, 130000, 0);
  363.             edge[5, 9] = new Edge(5, 9, 130000, 0);
  364.             edge[6, 9] = new Edge(6, 9, 130000, 0);
  365.             edge[7, 9] = new Edge(7, 9, 130000, 0);
  366.             edge[8, 9] = new Edge(8, 9, 130000, 0);
  367.             edge[9, 9] = new Edge(9, 9, 130000, 0);
  368.             edge[10, 9] = new Edge(10, 9, 130000, 0);
  369.             edge[11, 9] = new Edge(11, 9, 130000, 0);
  370.             edge[0, 10] = new Edge(0, 10, 130000, 0);
  371.             edge[1, 10] = new Edge(1, 10, 130000, 0);
  372.             edge[2, 10] = new Edge(2, 10, 130000, 0);
  373.             edge[3, 10] = new Edge(3, 10, 130000, 0);
  374.             edge[4, 10] = new Edge(4, 10, 130000, 0);
  375.             edge[5, 10] = new Edge(5, 10, 130000, 0);
  376.             edge[6, 10] = new Edge(6, 10, 130000, 0);
  377.             edge[7, 10] = new Edge(7, 10, 130000, 0);
  378.             edge[8, 10] = new Edge(8, 10, 130000, 0);
  379.             edge[9, 10] = new Edge(9, 10, 130000, 0);
  380.             edge[10, 10] = new Edge(10, 10, 130000, 0);
  381.             edge[11, 10] = new Edge(11, 10, 130000, 0);
  382.             edge[0, 11] = new Edge(0, 11, 130000, 0);
  383.             edge[1, 11] = new Edge(1, 11, 130000, 0);
  384.             edge[2, 11] = new Edge(2, 11, 130000, 0);
  385.             edge[3, 11] = new Edge(3, 11, 130000, 0);
  386.             edge[4, 11] = new Edge(4, 11, 130000, 0);
  387.             edge[5, 11] = new Edge(5, 11, 130000, 0);
  388.             edge[6, 11] = new Edge(6, 11, 130000, 0);
  389.             edge[7, 11] = new Edge(7, 11, 130000, 0);
  390.             edge[8, 11] = new Edge(8, 11, 130000, 0);
  391.             edge[9, 11] = new Edge(9, 11, 130000, 0);
  392.             edge[10, 11] = new Edge(10, 11, 130000, 0);
  393.             edge[11, 11] = new Edge(11, 11, 130000, 0);
  394.  
  395.  
  396.             // xxxxxxxxxxxxxxxxxx Liste aller Vertics erstellen  xxxxxxxxxxxxxxxx
  397.             Vertex[] vertex = new Vertex[v_total];
  398.  
  399.             // xxxxxxxxxxxx Vertics mit EXCEL-Werten belegen xxxxxxxxxxxxxxxx
  400.             // ID, feedTotal, consumptionTotal, feedRemaining, consumptionRemaining)
  401.  
  402.             // c nur ein Szenario "Dunkelflaute"
  403.  
  404.             vertex[0] = new Vertex(0, 0, 48000, 0, 48000, 0, 99999999);
  405.             vertex[1] = new Vertex(1, 156000, 0, 156000, 0, 100000, 0.2);
  406.             vertex[2] = new Vertex(2, 0, 0, 0, 0, 50000, 0.15);
  407.             vertex[3] = new Vertex(3, 0, 0, 0, 0, 50000, 0.15);
  408.             vertex[4] = new Vertex(4, 156000, 0, 156000, 0, 100000, 0.2);
  409.             vertex[5] = new Vertex(5, 0, 0, 0, 0, 50000, 0.15);
  410.             vertex[6] = new Vertex(6, 0, 0, 0, 0, 0, 99999999);
  411.             vertex[7] = new Vertex(7, 0, 40000, 0, 40000, 0, 99999999);
  412.             vertex[8] = new Vertex(8, 0, 64000, 0, 64000, 0, 99999999);
  413.             vertex[9] = new Vertex(9, 0, 32000, 0, 32000, 0, 99999999);
  414.             vertex[10] = new Vertex(10, 0, 72000, 0, 72000, 0, 99999999);
  415.             vertex[11] = new Vertex(11, 0, 56000, 0, 56000, 0, 99999999);
  416.  
  417.  
  418.             // Zwei getrennte Listen für Einspeiser und Konsumenten erstellen und Daten aus den obigen Vertics ziehen
  419.             List<Vertex> v_Feed = new List<Vertex>();
  420.             List<Vertex> v_Consumption = new List<Vertex>();
  421.  
  422.             foreach (Vertex vertexElement in vertex)
  423.             {
  424.                 if (vertexElement.consumptionTotal > 0)
  425.                 {
  426.                     v_Consumption.Add(vertexElement);
  427.                 }
  428.                 if (vertexElement.feedTotal > 0)
  429.                 {
  430.                     v_Feed.Add(vertexElement);
  431.                 }
  432.             }
  433.  
  434.             // xxxxxxxx Berechnung solange noch ein Einspeiser in der Einspeiserliste enthalten ist  xxxxx
  435.             while (v_Feed.Count > 0) {
  436.  
  437.  
  438.                 // Leitwerte zwischen den Verbrauchern und den verbleibenden Einspeisern aufaddieren
  439.                 int c = 0;
  440.                 foreach (Vertex vertexElement in v_Consumption)
  441.                 {
  442.                     v_Consumption[c].leitwertRamaining = 0;
  443.                     c++;
  444.                 }
  445.  
  446.                 c = 0; int f;
  447.                 foreach (Vertex v_ConsumptionElement in v_Consumption)
  448.                 {
  449.                     f = 0;
  450.                     foreach (Vertex v_FeedElement in v_Feed)
  451.                     {
  452.                         v_Consumption[c].leitwertRamaining += 1 / feed_cons[v_FeedElement.ID, v_FeedElement.ID].resistance;
  453.                         f++;
  454.                     }
  455.                     c++;
  456.                 }
  457.  
  458.                 // Ermittlung des Flusses zwischen den Verbrauchern und den verbleibenden Einspeisern
  459.                 c = 0;
  460.  
  461.                 foreach (Vertex v_ConsumptionElement in v_Consumption)
  462.                 {
  463.  
  464.                     f = 0; // Feed-Item
  465.                     foreach (Vertex v_FeedElement in v_Feed)
  466.                     {
  467.                         if (Double.IsNaN(v_ConsumptionElement.consumptionRemaining))
  468.                         { Console.WriteLine("v_ConsumptionElement.consumptionRemaining weist ungültigen Wert auf");
  469.                         } else
  470.                         {
  471.  
  472.                         feed_cons[v_FeedElement.ID, v_ConsumptionElement.ID].flow = v_ConsumptionElement.consumptionRemaining * (1 / feed_cons[v_FeedElement.ID, v_ConsumptionElement.ID].resistance) / v_ConsumptionElement.leitwertRamaining;
  473.                         f++;
  474.                         }
  475.                     }
  476.                     c++; // Consumption-Item
  477.                 }
  478.  
  479.                 // Ermittlung des Einspeisers, der maximal überlastet ist
  480.  
  481.                 double[] v_flow = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
  482.  
  483.                 foreach (Vertex v_ConsumptionElement in v_Consumption)
  484.                 {
  485.                     foreach (Vertex v_FeedElement in v_Feed)
  486.                     {
  487.                         if (Double.IsNaN(feed_cons[v_FeedElement.ID, v_ConsumptionElement.ID].flow))
  488.                         {
  489.                             Console.WriteLine("feed_cons[v_FeedElement.ID, v_ConsumptionElement.ID].flow weist ungültigen Wert auf");
  490.                         }
  491.                         else {
  492.                         v_flow[v_FeedElement.ID] += feed_cons[v_FeedElement.ID, v_ConsumptionElement.ID].flow;
  493.                         }
  494.  
  495.                     }
  496.                 }
  497.  
  498.                 int v = 0;
  499.                 double maxOverload = 0;
  500.                 int ID_maxOverload = 0;
  501.                 int listItem_maxOverload = 9999999;
  502.  
  503.                 foreach (Vertex vertexElement in v_Feed)
  504.                 {
  505.                     if (v_flow[vertexElement.ID] / vertexElement.feedTotal > maxOverload)
  506.                     {
  507.                         if (v_flow[vertexElement.ID] / vertexElement.feedTotal > 1) {
  508.  
  509.                         ID_maxOverload = vertexElement.ID;
  510.                         listItem_maxOverload = v;
  511.                         maxOverload = v_flow[vertexElement.ID] / vertexElement.feedTotal;
  512.                         }else
  513.                         {
  514.                             Console.WriteLine("Kein Einspeiser überlastet");
  515.                         }
  516.                     }
  517.                     v++;
  518.                 }
  519.  
  520.  
  521.  
  522.                 // Die Flüsse vom max. überlasteten Einspeiser werden prozentual auf die verfügbare Einspeisemenge reduziert;
  523.                 foreach (Vertex vertexElement in v_Consumption)
  524.                 {
  525.                     if (v_Feed.Count > 1) {
  526.                         feed_cons[ID_maxOverload, vertexElement.ID].flow = feed_cons[ID_maxOverload, vertexElement.ID].flow * 1 / (maxOverload);
  527.                     }
  528.                     else
  529.                     {
  530.                         feed_cons[ID_maxOverload, vertexElement.ID].flow = vertexElement.consumptionRemaining;
  531.                     }
  532.                 }
  533.  
  534.                 c = 0;
  535.                 foreach (Vertex vertexElement in v_Consumption)
  536.                 {
  537.                     v_Consumption[c].consumptionRemaining -= feed_cons[ID_maxOverload, vertexElement.ID].flow;
  538.  
  539.                     c++;
  540.                 }
  541.  
  542.                 // Der Einspeiser wird aus der weiteren Berechnung herausgenommen.
  543.  
  544.                 if (listItem_maxOverload < v_total)
  545.                 {
  546.                     v_Feed.RemoveAt(listItem_maxOverload); // delete v_feed[ID_maxOverload]
  547.                 }
  548.             } // end while, solange noch Feeds in v_feed-Liste sind
  549.  
  550.             for (int s = 0; s < v_total; s++)
  551.             {
  552.                 for (int d = 0; d < v_total; d++)
  553.                 {
  554.                     if (!(feed_cons[s, d].flow == 0))
  555.                     { Console.WriteLine("feed cons flow von " + s + " nach " + d + "   " + feed_cons[s, d].flow); }
  556.                 }
  557.             }
  558.  
  559.             // Kanten je Pfadgruppe einlesen
  560.  
  561.             List<PathGroup> pathGroupList = new List<PathGroup>();
  562.             PathGroup pathGroup;
  563.             //public PathGroup(pathGroupSrc, pathGroupdest, edgeSrc, edgeDest, flowShare, flow)
  564.  
  565.             pathGroup = new PathGroup(6, 11, 6, 11, 1, 0); pathGroupList.Add(pathGroup);
  566.             pathGroup = new PathGroup(11, 6, 11, 6, 1, 0); pathGroupList.Add(pathGroup);
  567.             pathGroup = new PathGroup(8, 9, 8, 9, 1, 0); pathGroupList.Add(pathGroup);
  568.             pathGroup = new PathGroup(9, 8, 9, 8, 1, 0); pathGroupList.Add(pathGroup);
  569.             pathGroup = new PathGroup(11, 0, 11, 0, 1, 0); pathGroupList.Add(pathGroup);
  570.             pathGroup = new PathGroup(0, 11, 0, 11, 1, 0); pathGroupList.Add(pathGroup);
  571.             pathGroup = new PathGroup(6, 10, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  572.             pathGroup = new PathGroup(10, 6, 10, 6, 1, 0); pathGroupList.Add(pathGroup);
  573.             pathGroup = new PathGroup(5, 8, 5, 8, 1, 0); pathGroupList.Add(pathGroup);
  574.             pathGroup = new PathGroup(8, 5, 8, 5, 1, 0); pathGroupList.Add(pathGroup);
  575.             pathGroup = new PathGroup(9, 10, 9, 10, 1, 0); pathGroupList.Add(pathGroup);
  576.             pathGroup = new PathGroup(10, 9, 10, 9, 1, 0); pathGroupList.Add(pathGroup);
  577.             pathGroup = new PathGroup(7, 0, 7, 0, 1, 0); pathGroupList.Add(pathGroup);
  578.             pathGroup = new PathGroup(0, 7, 0, 7, 1, 0); pathGroupList.Add(pathGroup);
  579.             pathGroup = new PathGroup(5, 10, 5, 10, 1, 0); pathGroupList.Add(pathGroup);
  580.             pathGroup = new PathGroup(10, 5, 10, 5, 1, 0); pathGroupList.Add(pathGroup);
  581.             pathGroup = new PathGroup(3, 4, 3, 4, 1, 0); pathGroupList.Add(pathGroup);
  582.             pathGroup = new PathGroup(4, 3, 4, 3, 1, 0); pathGroupList.Add(pathGroup);
  583.             pathGroup = new PathGroup(1, 5, 1, 5, 1, 0); pathGroupList.Add(pathGroup);
  584.             pathGroup = new PathGroup(5, 1, 5, 1, 1, 0); pathGroupList.Add(pathGroup);
  585.             pathGroup = new PathGroup(1, 8, 1, 8, 1, 0); pathGroupList.Add(pathGroup);
  586.             pathGroup = new PathGroup(8, 1, 8, 1, 1, 0); pathGroupList.Add(pathGroup);
  587.             pathGroup = new PathGroup(5, 6, 5, 6, 1, 0); pathGroupList.Add(pathGroup);
  588.             pathGroup = new PathGroup(6, 5, 6, 5, 1, 0); pathGroupList.Add(pathGroup);
  589.             pathGroup = new PathGroup(4, 7, 4, 7, 1, 0); pathGroupList.Add(pathGroup);
  590.             pathGroup = new PathGroup(7, 4, 7, 4, 1, 0); pathGroupList.Add(pathGroup);
  591.             pathGroup = new PathGroup(2, 3, 2, 3, 1, 0); pathGroupList.Add(pathGroup);
  592.             pathGroup = new PathGroup(3, 2, 3, 2, 1, 0); pathGroupList.Add(pathGroup);
  593.             pathGroup = new PathGroup(2, 5, 2, 5, 1, 0); pathGroupList.Add(pathGroup);
  594.             pathGroup = new PathGroup(5, 2, 5, 2, 1, 0); pathGroupList.Add(pathGroup);
  595.             pathGroup = new PathGroup(1, 2, 1, 2, 1, 0); pathGroupList.Add(pathGroup);
  596.             pathGroup = new PathGroup(2, 1, 2, 1, 1, 0); pathGroupList.Add(pathGroup);
  597.             pathGroup = new PathGroup(2, 6, 2, 5, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  598.             pathGroup = new PathGroup(2, 6, 5, 6, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  599.             pathGroup = new PathGroup(2, 6, 2, 6, 0.62927865105439, 0); pathGroupList.Add(pathGroup);
  600.             pathGroup = new PathGroup(2, 6, 2, 3, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  601.             pathGroup = new PathGroup(2, 6, 3, 6, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  602.             pathGroup = new PathGroup(3, 6, 3, 6, 0.607788214974469, 0); pathGroupList.Add(pathGroup);
  603.             pathGroup = new PathGroup(3, 6, 3, 2, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  604.             pathGroup = new PathGroup(3, 6, 2, 6, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  605.             pathGroup = new PathGroup(6, 2, 5, 2, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  606.             pathGroup = new PathGroup(6, 2, 6, 5, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  607.             pathGroup = new PathGroup(6, 2, 6, 2, 0.62927865105439, 0); pathGroupList.Add(pathGroup);
  608.             pathGroup = new PathGroup(6, 2, 3, 2, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  609.             pathGroup = new PathGroup(6, 2, 6, 3, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  610.             pathGroup = new PathGroup(6, 3, 6, 3, 0.607788214974469, 0); pathGroupList.Add(pathGroup);
  611.             pathGroup = new PathGroup(6, 3, 2, 3, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  612.             pathGroup = new PathGroup(6, 3, 6, 2, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  613.             pathGroup = new PathGroup(6, 7, 6, 7, 0.523056459865598, 0); pathGroupList.Add(pathGroup);
  614.             pathGroup = new PathGroup(6, 7, 6, 11, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  615.             pathGroup = new PathGroup(6, 7, 11, 0, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  616.             pathGroup = new PathGroup(6, 7, 0, 7, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  617.             pathGroup = new PathGroup(7, 6, 7, 6, 0.523056459865598, 0); pathGroupList.Add(pathGroup);
  618.             pathGroup = new PathGroup(7, 6, 11, 6, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  619.             pathGroup = new PathGroup(7, 6, 0, 11, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  620.             pathGroup = new PathGroup(7, 6, 7, 0, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  621.             pathGroup = new PathGroup(0, 3, 0, 7, 0.458672932246141, 0); pathGroupList.Add(pathGroup);
  622.             pathGroup = new PathGroup(0, 3, 7, 4, 0.387406846915549, 0); pathGroupList.Add(pathGroup);
  623.             pathGroup = new PathGroup(0, 3, 0, 11, 0.444253113503299, 0); pathGroupList.Add(pathGroup);
  624.             pathGroup = new PathGroup(0, 3, 4, 3, 0.387406846915549, 0); pathGroupList.Add(pathGroup);
  625.             pathGroup = new PathGroup(0, 3, 11, 6, 0.444253113503299, 0); pathGroupList.Add(pathGroup);
  626.             pathGroup = new PathGroup(0, 3, 6, 3, 0.51551919883389, 0); pathGroupList.Add(pathGroup);
  627.             pathGroup = new PathGroup(0, 3, 6, 7, -0.0712660853305917, 0); pathGroupList.Add(pathGroup);
  628.             pathGroup = new PathGroup(3, 5, 3, 2, 0.501864116510448, 0); pathGroupList.Add(pathGroup);
  629.             pathGroup = new PathGroup(3, 5, 2, 5, 0.473247898000575, 0); pathGroupList.Add(pathGroup);
  630.             pathGroup = new PathGroup(3, 5, 3, 6, 0.498135883489552, 0); pathGroupList.Add(pathGroup);
  631.             pathGroup = new PathGroup(3, 5, 6, 5, 0.526752101999425, 0); pathGroupList.Add(pathGroup);
  632.             pathGroup = new PathGroup(3, 5, 2, 6, 0.028616218509873, 0); pathGroupList.Add(pathGroup);
  633.             pathGroup = new PathGroup(5, 9, 5, 8, 0.544128717741451, 0); pathGroupList.Add(pathGroup);
  634.             pathGroup = new PathGroup(5, 9, 8, 9, 0.544128717741451, 0); pathGroupList.Add(pathGroup);
  635.             pathGroup = new PathGroup(5, 9, 5, 10, 0.455871282258549, 0); pathGroupList.Add(pathGroup);
  636.             pathGroup = new PathGroup(5, 9, 10, 9, 0.455871282258549, 0); pathGroupList.Add(pathGroup);
  637.             pathGroup = new PathGroup(4, 11, 6, 11, 0.606610883448134, 0); pathGroupList.Add(pathGroup);
  638.             pathGroup = new PathGroup(4, 11, 4, 3, 0.449722057607261, 0); pathGroupList.Add(pathGroup);
  639.             pathGroup = new PathGroup(4, 11, 3, 6, 0.449722057607261, 0); pathGroupList.Add(pathGroup);
  640.             pathGroup = new PathGroup(4, 11, 7, 0, 0.393389116551867, 0); pathGroupList.Add(pathGroup);
  641.             pathGroup = new PathGroup(4, 11, 0, 11, 0.393389116551867, 0); pathGroupList.Add(pathGroup);
  642.             pathGroup = new PathGroup(4, 11, 4, 7, 0.550277942392739, 0); pathGroupList.Add(pathGroup);
  643.             pathGroup = new PathGroup(4, 11, 6, 7, -0.156888825840872, 0); pathGroupList.Add(pathGroup);
  644.             pathGroup = new PathGroup(1, 6, 5, 1, -0.594636573183012, 0); pathGroupList.Add(pathGroup);
  645.             pathGroup = new PathGroup(1, 6, 6, 5, -0.470401514610137, 0); pathGroupList.Add(pathGroup);
  646.             pathGroup = new PathGroup(1, 6, 2, 1, -0.405363426816988, 0); pathGroupList.Add(pathGroup);
  647.             pathGroup = new PathGroup(1, 6, 6, 2, -0.529598485389863, 0); pathGroupList.Add(pathGroup);
  648.             pathGroup = new PathGroup(1, 6, 5, 2, 0.124235058572874, 0); pathGroupList.Add(pathGroup);
  649.             pathGroup = new PathGroup(3, 7, 3, 6, 0.410222843807112, 0); pathGroupList.Add(pathGroup);
  650.             pathGroup = new PathGroup(3, 7, 6, 7, 0.410222843807112, 0); pathGroupList.Add(pathGroup);
  651.             pathGroup = new PathGroup(3, 7, 3, 4, 0.589777156192888, 0); pathGroupList.Add(pathGroup);
  652.             pathGroup = new PathGroup(3, 7, 4, 7, 0.589777156192888, 0); pathGroupList.Add(pathGroup);
  653.             pathGroup = new PathGroup(4, 6, 4, 3, 0.64476425497865, 0); pathGroupList.Add(pathGroup);
  654.             pathGroup = new PathGroup(4, 6, 3, 2, 0.252884139365833, 0); pathGroupList.Add(pathGroup);
  655.             pathGroup = new PathGroup(4, 6, 2, 6, 0.391880115612817, 0); pathGroupList.Add(pathGroup);
  656.             pathGroup = new PathGroup(4, 6, 3, 6, 0.391880115612817, 0); pathGroupList.Add(pathGroup);
  657.             pathGroup = new PathGroup(4, 6, 4, 7, 0.35523574502135, 0); pathGroupList.Add(pathGroup);
  658.             pathGroup = new PathGroup(4, 6, 7, 6, 0.35523574502135, 0); pathGroupList.Add(pathGroup);
  659.             pathGroup = new PathGroup(6, 1, 1, 5, -0.594636573183012, 0); pathGroupList.Add(pathGroup);
  660.             pathGroup = new PathGroup(6, 1, 5, 6, -0.470401514610137, 0); pathGroupList.Add(pathGroup);
  661.             pathGroup = new PathGroup(6, 1, 1, 2, -0.405363426816988, 0); pathGroupList.Add(pathGroup);
  662.             pathGroup = new PathGroup(6, 1, 2, 6, -0.529598485389863, 0); pathGroupList.Add(pathGroup);
  663.             pathGroup = new PathGroup(6, 1, 2, 5, 0.124235058572874, 0); pathGroupList.Add(pathGroup);
  664.             pathGroup = new PathGroup(6, 4, 3, 4, 0.64476425497865, 0); pathGroupList.Add(pathGroup);
  665.             pathGroup = new PathGroup(6, 4, 2, 3, 0.252884139365833, 0); pathGroupList.Add(pathGroup);
  666.             pathGroup = new PathGroup(6, 4, 6, 2, 0.391880115612817, 0); pathGroupList.Add(pathGroup);
  667.             pathGroup = new PathGroup(6, 4, 6, 3, 0.391880115612817, 0); pathGroupList.Add(pathGroup);
  668.             pathGroup = new PathGroup(6, 4, 7, 4, 0.35523574502135, 0); pathGroupList.Add(pathGroup);
  669.             pathGroup = new PathGroup(6, 4, 6, 7, 0.35523574502135, 0); pathGroupList.Add(pathGroup);
  670.             pathGroup = new PathGroup(6, 8, 8, 5, -0.739002897313725, 0); pathGroupList.Add(pathGroup);
  671.             pathGroup = new PathGroup(6, 8, 5, 6, -0.516945838054908, 0); pathGroupList.Add(pathGroup);
  672.             pathGroup = new PathGroup(6, 8, 8, 9, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  673.             pathGroup = new PathGroup(6, 8, 9, 10, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  674.             pathGroup = new PathGroup(6, 8, 10, 6, -0.740322263036168, 0); pathGroupList.Add(pathGroup);
  675.             pathGroup = new PathGroup(6, 8, 5, 10, -0.222057059258816, 0); pathGroupList.Add(pathGroup);
  676.             pathGroup = new PathGroup(7, 3, 6, 3, 0.410222843807112, 0); pathGroupList.Add(pathGroup);
  677.             pathGroup = new PathGroup(7, 3, 7, 6, 0.410222843807112, 0); pathGroupList.Add(pathGroup);
  678.             pathGroup = new PathGroup(7, 3, 4, 3, 0.589777156192888, 0); pathGroupList.Add(pathGroup);
  679.             pathGroup = new PathGroup(7, 3, 7, 4, 0.589777156192888, 0); pathGroupList.Add(pathGroup);
  680.             pathGroup = new PathGroup(8, 6, 5, 8, -0.739002897313725, 0); pathGroupList.Add(pathGroup);
  681.             pathGroup = new PathGroup(8, 6, 6, 5, -0.516945838054908, 0); pathGroupList.Add(pathGroup);
  682.             pathGroup = new PathGroup(8, 6, 9, 8, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  683.             pathGroup = new PathGroup(8, 6, 10, 9, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  684.             pathGroup = new PathGroup(8, 6, 6, 10, -0.740322263036168, 0); pathGroupList.Add(pathGroup);
  685.             pathGroup = new PathGroup(8, 6, 10, 5, -0.222057059258816, 0); pathGroupList.Add(pathGroup);
  686.             pathGroup = new PathGroup(8, 10, 8, 5, 0.470366607524965, 0); pathGroupList.Add(pathGroup);
  687.             pathGroup = new PathGroup(8, 10, 5, 10, 0.470366607524965, 0); pathGroupList.Add(pathGroup);
  688.             pathGroup = new PathGroup(8, 10, 8, 9, 0.529633392475035, 0); pathGroupList.Add(pathGroup);
  689.             pathGroup = new PathGroup(8, 10, 9, 10, 0.529633392475035, 0); pathGroupList.Add(pathGroup);
  690.             pathGroup = new PathGroup(10, 8, 5, 8, 0.470366607524965, 0); pathGroupList.Add(pathGroup);
  691.             pathGroup = new PathGroup(10, 8, 10, 5, 0.470366607524965, 0); pathGroupList.Add(pathGroup);
  692.             pathGroup = new PathGroup(10, 8, 9, 8, 0.529633392475035, 0); pathGroupList.Add(pathGroup);
  693.             pathGroup = new PathGroup(10, 8, 10, 9, 0.529633392475035, 0); pathGroupList.Add(pathGroup);
  694.             pathGroup = new PathGroup(0, 1, 1, 5, -0.594636573183012, 0); pathGroupList.Add(pathGroup);
  695.             pathGroup = new PathGroup(0, 1, 5, 6, -0.470401514610137, 0); pathGroupList.Add(pathGroup);
  696.             pathGroup = new PathGroup(0, 1, 1, 2, -0.405363426816988, 0); pathGroupList.Add(pathGroup);
  697.             pathGroup = new PathGroup(0, 1, 2, 6, -0.529598485389863, 0); pathGroupList.Add(pathGroup);
  698.             pathGroup = new PathGroup(0, 1, 2, 5, 0.124235058572874, 0); pathGroupList.Add(pathGroup);
  699.             pathGroup = new PathGroup(0, 2, 5, 2, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  700.             pathGroup = new PathGroup(0, 2, 6, 5, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  701.             pathGroup = new PathGroup(0, 2, 6, 2, 0.62927865105439, 0); pathGroupList.Add(pathGroup);
  702.             pathGroup = new PathGroup(0, 2, 3, 2, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  703.             pathGroup = new PathGroup(0, 2, 6, 3, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  704.             pathGroup = new PathGroup(0, 5, 6, 5, 0.530595169368965, 0); pathGroupList.Add(pathGroup);
  705.             pathGroup = new PathGroup(0, 5, 10, 5, 0.469404830631035, 0); pathGroupList.Add(pathGroup);
  706.             pathGroup = new PathGroup(0, 5, 6, 10, 0.469404830631035, 0); pathGroupList.Add(pathGroup);
  707.             pathGroup = new PathGroup(0, 8, 8, 5, -0.739002897313725, 0); pathGroupList.Add(pathGroup);
  708.             pathGroup = new PathGroup(0, 8, 5, 6, -0.516945838054908, 0); pathGroupList.Add(pathGroup);
  709.             pathGroup = new PathGroup(0, 8, 8, 9, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  710.             pathGroup = new PathGroup(0, 8, 9, 10, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  711.             pathGroup = new PathGroup(0, 8, 10, 6, -0.740322263036168, 0); pathGroupList.Add(pathGroup);
  712.             pathGroup = new PathGroup(0, 8, 5, 10, -0.222057059258816, 0); pathGroupList.Add(pathGroup);
  713.             pathGroup = new PathGroup(1, 7, 5, 1, -0.594636573183012, 0); pathGroupList.Add(pathGroup);
  714.             pathGroup = new PathGroup(1, 7, 6, 5, -0.470401514610137, 0); pathGroupList.Add(pathGroup);
  715.             pathGroup = new PathGroup(1, 7, 2, 1, -0.405363426816988, 0); pathGroupList.Add(pathGroup);
  716.             pathGroup = new PathGroup(1, 7, 6, 2, -0.529598485389863, 0); pathGroupList.Add(pathGroup);
  717.             pathGroup = new PathGroup(1, 7, 5, 2, 0.124235058572874, 0); pathGroupList.Add(pathGroup);
  718.             pathGroup = new PathGroup(1, 7, 6, 7, 0.523056459865598, 0); pathGroupList.Add(pathGroup);
  719.             pathGroup = new PathGroup(1, 7, 6, 11, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  720.             pathGroup = new PathGroup(1, 7, 11, 0, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  721.             pathGroup = new PathGroup(1, 7, 0, 7, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  722.             pathGroup = new PathGroup(1, 11, 5, 1, -0.594636573183012, 0); pathGroupList.Add(pathGroup);
  723.             pathGroup = new PathGroup(1, 11, 6, 5, -0.470401514610137, 0); pathGroupList.Add(pathGroup);
  724.             pathGroup = new PathGroup(1, 11, 2, 1, -0.405363426816988, 0); pathGroupList.Add(pathGroup);
  725.             pathGroup = new PathGroup(1, 11, 6, 2, -0.529598485389863, 0); pathGroupList.Add(pathGroup);
  726.             pathGroup = new PathGroup(1, 11, 5, 2, 0.124235058572874, 0); pathGroupList.Add(pathGroup);
  727.             pathGroup = new PathGroup(2, 7, 2, 5, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  728.             pathGroup = new PathGroup(2, 7, 5, 6, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  729.             pathGroup = new PathGroup(2, 7, 2, 6, 0.62927865105439, 0); pathGroupList.Add(pathGroup);
  730.             pathGroup = new PathGroup(2, 7, 2, 3, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  731.             pathGroup = new PathGroup(2, 7, 3, 6, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  732.             pathGroup = new PathGroup(2, 7, 6, 7, 0.523056459865598, 0); pathGroupList.Add(pathGroup);
  733.             pathGroup = new PathGroup(2, 7, 6, 11, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  734.             pathGroup = new PathGroup(2, 7, 11, 0, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  735.             pathGroup = new PathGroup(2, 7, 0, 7, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  736.             pathGroup = new PathGroup(2, 9, 2, 5, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  737.             pathGroup = new PathGroup(2, 9, 5, 6, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  738.             pathGroup = new PathGroup(2, 9, 2, 6, 0.62927865105439, 0); pathGroupList.Add(pathGroup);
  739.             pathGroup = new PathGroup(2, 9, 2, 3, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  740.             pathGroup = new PathGroup(2, 9, 3, 6, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  741.             pathGroup = new PathGroup(2, 10, 2, 5, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  742.             pathGroup = new PathGroup(2, 10, 5, 6, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  743.             pathGroup = new PathGroup(2, 10, 2, 6, 0.62927865105439, 0); pathGroupList.Add(pathGroup);
  744.             pathGroup = new PathGroup(2, 10, 2, 3, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  745.             pathGroup = new PathGroup(2, 10, 3, 6, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  746.             pathGroup = new PathGroup(2, 11, 2, 5, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  747.             pathGroup = new PathGroup(2, 11, 5, 6, 0.180944911617061, 0); pathGroupList.Add(pathGroup);
  748.             pathGroup = new PathGroup(2, 11, 2, 6, 0.62927865105439, 0); pathGroupList.Add(pathGroup);
  749.             pathGroup = new PathGroup(2, 11, 2, 3, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  750.             pathGroup = new PathGroup(2, 11, 3, 6, 0.189776437328549, 0); pathGroupList.Add(pathGroup);
  751.             pathGroup = new PathGroup(3, 8, 3, 2, 0.501864116510448, 0); pathGroupList.Add(pathGroup);
  752.             pathGroup = new PathGroup(3, 8, 2, 5, 0.473247898000575, 0); pathGroupList.Add(pathGroup);
  753.             pathGroup = new PathGroup(3, 8, 3, 6, 0.498135883489552, 0); pathGroupList.Add(pathGroup);
  754.             pathGroup = new PathGroup(3, 8, 6, 5, 0.526752101999425, 0); pathGroupList.Add(pathGroup);
  755.             pathGroup = new PathGroup(3, 8, 2, 6, 0.028616218509873, 0); pathGroupList.Add(pathGroup);
  756.             pathGroup = new PathGroup(3, 9, 3, 6, 0.607788214974469, 0); pathGroupList.Add(pathGroup);
  757.             pathGroup = new PathGroup(3, 9, 3, 2, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  758.             pathGroup = new PathGroup(3, 9, 2, 6, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  759.             pathGroup = new PathGroup(3, 10, 3, 6, 0.607788214974469, 0); pathGroupList.Add(pathGroup);
  760.             pathGroup = new PathGroup(3, 10, 3, 2, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  761.             pathGroup = new PathGroup(3, 10, 2, 6, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  762.             pathGroup = new PathGroup(3, 11, 3, 6, 0.607788214974469, 0); pathGroupList.Add(pathGroup);
  763.             pathGroup = new PathGroup(3, 11, 3, 2, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  764.             pathGroup = new PathGroup(3, 11, 2, 6, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  765.             pathGroup = new PathGroup(4, 5, 3, 2, 0.501864116510448, 0); pathGroupList.Add(pathGroup);
  766.             pathGroup = new PathGroup(4, 5, 2, 5, 0.473247898000575, 0); pathGroupList.Add(pathGroup);
  767.             pathGroup = new PathGroup(4, 5, 3, 6, 0.498135883489552, 0); pathGroupList.Add(pathGroup);
  768.             pathGroup = new PathGroup(4, 5, 6, 5, 0.526752101999425, 0); pathGroupList.Add(pathGroup);
  769.             pathGroup = new PathGroup(4, 5, 2, 6, 0.028616218509873, 0); pathGroupList.Add(pathGroup);
  770.             pathGroup = new PathGroup(4, 8, 3, 2, 0.501864116510448, 0); pathGroupList.Add(pathGroup);
  771.             pathGroup = new PathGroup(4, 8, 2, 5, 0.473247898000575, 0); pathGroupList.Add(pathGroup);
  772.             pathGroup = new PathGroup(4, 8, 3, 6, 0.498135883489552, 0); pathGroupList.Add(pathGroup);
  773.             pathGroup = new PathGroup(4, 8, 6, 5, 0.526752101999425, 0); pathGroupList.Add(pathGroup);
  774.             pathGroup = new PathGroup(4, 8, 2, 6, 0.028616218509873, 0); pathGroupList.Add(pathGroup);
  775.             pathGroup = new PathGroup(4, 9, 3, 6, 0.607788214974469, 0); pathGroupList.Add(pathGroup);
  776.             pathGroup = new PathGroup(4, 9, 3, 2, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  777.             pathGroup = new PathGroup(4, 9, 2, 6, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  778.             pathGroup = new PathGroup(4, 10, 3, 6, 0.607788214974469, 0); pathGroupList.Add(pathGroup);
  779.             pathGroup = new PathGroup(4, 10, 3, 2, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  780.             pathGroup = new PathGroup(4, 10, 2, 6, 0.392211785025531, 0); pathGroupList.Add(pathGroup);
  781.             pathGroup = new PathGroup(5, 7, 5, 6, 0.530595169368965, 0); pathGroupList.Add(pathGroup);
  782.             pathGroup = new PathGroup(5, 7, 5, 10, 0.469404830631035, 0); pathGroupList.Add(pathGroup);
  783.             pathGroup = new PathGroup(5, 7, 10, 6, 0.469404830631035, 0); pathGroupList.Add(pathGroup);
  784.             pathGroup = new PathGroup(5, 7, 6, 7, 0.523056459865598, 0); pathGroupList.Add(pathGroup);
  785.             pathGroup = new PathGroup(5, 7, 6, 11, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  786.             pathGroup = new PathGroup(5, 7, 11, 0, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  787.             pathGroup = new PathGroup(5, 7, 0, 7, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  788.             pathGroup = new PathGroup(5, 11, 5, 6, 0.530595169368965, 0); pathGroupList.Add(pathGroup);
  789.             pathGroup = new PathGroup(5, 11, 5, 10, 0.469404830631035, 0); pathGroupList.Add(pathGroup);
  790.             pathGroup = new PathGroup(5, 11, 10, 6, 0.469404830631035, 0); pathGroupList.Add(pathGroup);
  791.             pathGroup = new PathGroup(7, 8, 7, 6, 0.523056459865598, 0); pathGroupList.Add(pathGroup);
  792.             pathGroup = new PathGroup(7, 8, 11, 6, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  793.             pathGroup = new PathGroup(7, 8, 0, 11, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  794.             pathGroup = new PathGroup(7, 8, 7, 0, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  795.             pathGroup = new PathGroup(7, 8, 8, 5, -0.739002897313725, 0); pathGroupList.Add(pathGroup);
  796.             pathGroup = new PathGroup(7, 8, 5, 6, -0.516945838054908, 0); pathGroupList.Add(pathGroup);
  797.             pathGroup = new PathGroup(7, 8, 8, 9, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  798.             pathGroup = new PathGroup(7, 8, 9, 10, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  799.             pathGroup = new PathGroup(7, 8, 10, 6, -0.740322263036168, 0); pathGroupList.Add(pathGroup);
  800.             pathGroup = new PathGroup(7, 8, 5, 10, -0.222057059258816, 0); pathGroupList.Add(pathGroup);
  801.             pathGroup = new PathGroup(7, 9, 7, 6, 0.523056459865598, 0); pathGroupList.Add(pathGroup);
  802.             pathGroup = new PathGroup(7, 9, 11, 6, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  803.             pathGroup = new PathGroup(7, 9, 0, 11, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  804.             pathGroup = new PathGroup(7, 9, 7, 0, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  805.             pathGroup = new PathGroup(7, 10, 7, 6, 0.523056459865598, 0); pathGroupList.Add(pathGroup);
  806.             pathGroup = new PathGroup(7, 10, 11, 6, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  807.             pathGroup = new PathGroup(7, 10, 0, 11, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  808.             pathGroup = new PathGroup(7, 10, 7, 0, 0.476943540134402, 0); pathGroupList.Add(pathGroup);
  809.             pathGroup = new PathGroup(8, 11, 5, 8, -0.739002897313725, 0); pathGroupList.Add(pathGroup);
  810.             pathGroup = new PathGroup(8, 11, 6, 5, -0.516945838054908, 0); pathGroupList.Add(pathGroup);
  811.             pathGroup = new PathGroup(8, 11, 9, 8, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  812.             pathGroup = new PathGroup(8, 11, 10, 9, -0.518265203777351, 0); pathGroupList.Add(pathGroup);
  813.             pathGroup = new PathGroup(8, 11, 6, 10, -0.740322263036168, 0); pathGroupList.Add(pathGroup);
  814.             pathGroup = new PathGroup(8, 11, 10, 5, -0.222057059258816, 0); pathGroupList.Add(pathGroup);
  815.             pathGroup = new PathGroup(0, 1, 0, 11, 1, 0); pathGroupList.Add(pathGroup);
  816.             pathGroup = new PathGroup(0, 1, 11, 6, 1, 0); pathGroupList.Add(pathGroup);
  817.             pathGroup = new PathGroup(0, 2, 0, 11, 1, 0); pathGroupList.Add(pathGroup);
  818.             pathGroup = new PathGroup(0, 2, 11, 6, 1, 0); pathGroupList.Add(pathGroup);
  819.             pathGroup = new PathGroup(0, 4, 0, 7, 1, 0); pathGroupList.Add(pathGroup);
  820.             pathGroup = new PathGroup(0, 4, 7, 4, 1, 0); pathGroupList.Add(pathGroup);
  821.             pathGroup = new PathGroup(0, 5, 0, 11, 1, 0); pathGroupList.Add(pathGroup);
  822.             pathGroup = new PathGroup(0, 5, 11, 6, 1, 0); pathGroupList.Add(pathGroup);
  823.             pathGroup = new PathGroup(0, 6, 0, 11, 1, 0); pathGroupList.Add(pathGroup);
  824.             pathGroup = new PathGroup(0, 6, 11, 6, 1, 0); pathGroupList.Add(pathGroup);
  825.             pathGroup = new PathGroup(0, 8, 0, 11, 1, 0); pathGroupList.Add(pathGroup);
  826.             pathGroup = new PathGroup(0, 8, 11, 6, 1, 0); pathGroupList.Add(pathGroup);
  827.             pathGroup = new PathGroup(0, 9, 0, 11, 1, 0); pathGroupList.Add(pathGroup);
  828.             pathGroup = new PathGroup(0, 9, 11, 6, 1, 0); pathGroupList.Add(pathGroup);
  829.             pathGroup = new PathGroup(0, 9, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  830.             pathGroup = new PathGroup(0, 9, 10, 9, 1, 0); pathGroupList.Add(pathGroup);
  831.             pathGroup = new PathGroup(0, 10, 0, 11, 1, 0); pathGroupList.Add(pathGroup);
  832.             pathGroup = new PathGroup(0, 10, 11, 6, 1, 0); pathGroupList.Add(pathGroup);
  833.             pathGroup = new PathGroup(0, 10, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  834.             pathGroup = new PathGroup(1, 3, 1, 2, 1, 0); pathGroupList.Add(pathGroup);
  835.             pathGroup = new PathGroup(1, 3, 2, 3, 1, 0); pathGroupList.Add(pathGroup);
  836.             pathGroup = new PathGroup(1, 4, 1, 2, 1, 0); pathGroupList.Add(pathGroup);
  837.             pathGroup = new PathGroup(1, 4, 2, 3, 1, 0); pathGroupList.Add(pathGroup);
  838.             pathGroup = new PathGroup(1, 4, 3, 4, 1, 0); pathGroupList.Add(pathGroup);
  839.             pathGroup = new PathGroup(1, 9, 1, 8, 1, 0); pathGroupList.Add(pathGroup);
  840.             pathGroup = new PathGroup(1, 9, 8, 9, 1, 0); pathGroupList.Add(pathGroup);
  841.             pathGroup = new PathGroup(1, 10, 1, 5, 1, 0); pathGroupList.Add(pathGroup);
  842.             pathGroup = new PathGroup(1, 10, 5, 10, 1, 0); pathGroupList.Add(pathGroup);
  843.             pathGroup = new PathGroup(1, 11, 6, 11, 1, 0); pathGroupList.Add(pathGroup);
  844.             pathGroup = new PathGroup(2, 4, 2, 3, 1, 0); pathGroupList.Add(pathGroup);
  845.             pathGroup = new PathGroup(2, 4, 3, 4, 1, 0); pathGroupList.Add(pathGroup);
  846.             pathGroup = new PathGroup(2, 8, 2, 5, 1, 0); pathGroupList.Add(pathGroup);
  847.             pathGroup = new PathGroup(2, 8, 5, 8, 1, 0); pathGroupList.Add(pathGroup);
  848.             pathGroup = new PathGroup(2, 9, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  849.             pathGroup = new PathGroup(2, 9, 10, 9, 1, 0); pathGroupList.Add(pathGroup);
  850.             pathGroup = new PathGroup(2, 10, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  851.             pathGroup = new PathGroup(2, 11, 6, 11, 1, 0); pathGroupList.Add(pathGroup);
  852.             pathGroup = new PathGroup(3, 8, 5, 8, 1, 0); pathGroupList.Add(pathGroup);
  853.             pathGroup = new PathGroup(3, 9, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  854.             pathGroup = new PathGroup(3, 9, 10, 9, 1, 0); pathGroupList.Add(pathGroup);
  855.             pathGroup = new PathGroup(3, 10, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  856.             pathGroup = new PathGroup(3, 11, 6, 11, 1, 0); pathGroupList.Add(pathGroup);
  857.             pathGroup = new PathGroup(4, 5, 4, 3, 1, 0); pathGroupList.Add(pathGroup);
  858.             pathGroup = new PathGroup(4, 8, 4, 3, 1, 0); pathGroupList.Add(pathGroup);
  859.             pathGroup = new PathGroup(4, 8, 5, 8, 1, 0); pathGroupList.Add(pathGroup);
  860.             pathGroup = new PathGroup(4, 9, 4, 3, 1, 0); pathGroupList.Add(pathGroup);
  861.             pathGroup = new PathGroup(4, 9, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  862.             pathGroup = new PathGroup(4, 9, 10, 9, 1, 0); pathGroupList.Add(pathGroup);
  863.             pathGroup = new PathGroup(4, 10, 4, 3, 1, 0); pathGroupList.Add(pathGroup);
  864.             pathGroup = new PathGroup(4, 10, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  865.             pathGroup = new PathGroup(5, 11, 6, 11, 1, 0); pathGroupList.Add(pathGroup);
  866.             pathGroup = new PathGroup(6, 9, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  867.             pathGroup = new PathGroup(6, 9, 10, 9, 1, 0); pathGroupList.Add(pathGroup);
  868.             pathGroup = new PathGroup(7, 9, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  869.             pathGroup = new PathGroup(7, 9, 10, 9, 1, 0); pathGroupList.Add(pathGroup);
  870.             pathGroup = new PathGroup(7, 10, 6, 10, 1, 0); pathGroupList.Add(pathGroup);
  871.             pathGroup = new PathGroup(7, 11, 7, 0, 1, 0); pathGroupList.Add(pathGroup);
  872.             pathGroup = new PathGroup(7, 11, 0, 11, 1, 0); pathGroupList.Add(pathGroup);
  873.             pathGroup = new PathGroup(8, 11, 6, 11, 1, 0); pathGroupList.Add(pathGroup);
  874.             pathGroup = new PathGroup(9, 11, 9, 10, 1, 0); pathGroupList.Add(pathGroup);
  875.             pathGroup = new PathGroup(9, 11, 10, 6, 1, 0); pathGroupList.Add(pathGroup);
  876.             pathGroup = new PathGroup(9, 11, 6, 11, 1, 0); pathGroupList.Add(pathGroup);
  877.             pathGroup = new PathGroup(10, 11, 10, 6, 1, 0); pathGroupList.Add(pathGroup);
  878.             pathGroup = new PathGroup(10, 11, 6, 11, 1, 0); pathGroupList.Add(pathGroup);
  879.             pathGroup = new PathGroup(3, 0, 7, 0, 0.458672932246141, 0); pathGroupList.Add(pathGroup);
  880.             pathGroup = new PathGroup(3, 0, 4, 7, 0.387406846915549, 0); pathGroupList.Add(pathGroup);
  881.             pathGroup = new PathGroup(3, 0, 11, 0, 0.444253113503299, 0); pathGroupList.Add(pathGroup);
  882.             pathGroup = new PathGroup(3, 0, 3, 4, 0.387406846915549, 0); pathGroupList.Add(pathGroup);
  883.             pathGroup = new PathGroup(3, 0, 6, 11, 0.444253113503299, 0); pathGroupList.Add(pathGroup);
  884.             pathGroup = new PathGroup(3, 0, 3, 6, 0.51551919883389, 0); pathGroupList.Add(pathGroup);
  885.             pathGroup = new PathGroup(3, 0, 7, 6, -0.0712660853305917, 0); pathGroupList.Add(pathGroup);
  886.             pathGroup = new PathGroup(5, 3, 3, 2, 0.501864116510448, 0); pathGroupList.Add(pathGroup);
  887.             pathGroup = new PathGroup(5, 3, 2, 5, 0.473247898000575, 0); pathGroupList.Add(pathGroup);
  888.             pathGroup = new PathGroup(5, 3, 3, 6, 0.498135883489552, 0); pathGroupList.Add(pathGroup);
  889.             pathGroup = new PathGroup(5, 3, 6, 5, 0.526752101999425, 0); pathGroupList.Add(pathGroup);
  890.             pathGroup = new PathGroup(5, 3, 2, 6, 0.028616218509873, 0); pathGroupList.Add(pathGroup);
  891.             pathGroup = new PathGroup(9, 5, 8, 5, 0.544128717741451, 0); pathGroupList.Add(pathGroup);
  892.             pathGroup = new PathGroup(9, 5, 9, 8, 0.544128717741451, 0); pathGroupList.Add(pathGroup);
  893.             pathGroup = new PathGroup(9, 5, 10, 5, 0.455871282258549, 0); pathGroupList.Add(pathGroup);
  894.             pathGroup = new PathGroup(9, 5, 9, 10, 0.455871282258549, 0); pathGroupList.Add(pathGroup);
  895.             pathGroup = new PathGroup(11, 4, 11, 6, 0.606610883448134, 0); pathGroupList.Add(pathGroup);
  896.             pathGroup = new PathGroup(11, 4, 3, 4, 0.449722057607261, 0); pathGroupList.Add(pathGroup);
  897.             pathGroup = new PathGroup(11, 4, 6, 3, 0.449722057607261, 0); pathGroupList.Add(pathGroup);
  898.             pathGroup = new PathGroup(11, 4, 0, 7, 0.393389116551867, 0); pathGroupList.Add(pathGroup);
  899.             pathGroup = new PathGroup(11, 4, 11, 0, 0.393389116551867, 0); pathGroupList.Add(pathGroup);
  900.             pathGroup = new PathGroup(11, 4, 7, 4, 0.550277942392739, 0); pathGroupList.Add(pathGroup);
  901.             pathGroup = new PathGroup(11, 4, 7, 6, -0.156888825840872, 0); pathGroupList.Add(pathGroup);
  902.             pathGroup = new PathGroup(1, 0, 1, 5, 0.594636573183012, 0); pathGroupList.Add(pathGroup);
  903.             pathGroup = new PathGroup(1, 0, 5, 6, 0.470401514610137, 0); pathGroupList.Add(pathGroup);
  904.             pathGroup = new PathGroup(1, 0, 1, 2, 0.405363426816988, 0); pathGroupList.Add(pathGroup);
  905.             pathGroup = new PathGroup(1, 0, 2, 6, 0.529598485389863, 0); pathGroupList.Add(pathGroup);
  906.             pathGroup = new PathGroup(1, 0, 2, 5, -0.124235058572874, 0); pathGroupList.Add(pathGroup);
  907.             pathGroup = new PathGroup(2, 0, 5, 2, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  908.             pathGroup = new PathGroup(2, 0, 6, 5, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  909.             pathGroup = new PathGroup(2, 0, 6, 2, -0.62927865105439, 0); pathGroupList.Add(pathGroup);
  910.             pathGroup = new PathGroup(2, 0, 3, 2, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  911.             pathGroup = new PathGroup(2, 0, 6, 3, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  912.             pathGroup = new PathGroup(5, 0, 6, 5, -0.530595169368965, 0); pathGroupList.Add(pathGroup);
  913.             pathGroup = new PathGroup(5, 0, 10, 5, -0.469404830631035, 0); pathGroupList.Add(pathGroup);
  914.             pathGroup = new PathGroup(5, 0, 6, 10, -0.469404830631035, 0); pathGroupList.Add(pathGroup);
  915.             pathGroup = new PathGroup(8, 0, 8, 5, -0.739002897313725, 0); pathGroupList.Add(pathGroup);
  916.             pathGroup = new PathGroup(8, 0, 5, 6, -0.516945838054908, 0); pathGroupList.Add(pathGroup);
  917.             pathGroup = new PathGroup(8, 0, 8, 9, -0.518265203777352, 0); pathGroupList.Add(pathGroup);
  918.             pathGroup = new PathGroup(8, 0, 9, 10, -0.518265203777352, 0); pathGroupList.Add(pathGroup);
  919.             pathGroup = new PathGroup(8, 0, 10, 6, -0.740322263036168, 0); pathGroupList.Add(pathGroup);
  920.             pathGroup = new PathGroup(8, 0, 5, 10, -0.222057059258816, 0); pathGroupList.Add(pathGroup);
  921.             pathGroup = new PathGroup(7, 1, 5, 1, 0.594636573183012, 0); pathGroupList.Add(pathGroup);
  922.             pathGroup = new PathGroup(7, 1, 6, 5, 0.470401514610137, 0); pathGroupList.Add(pathGroup);
  923.             pathGroup = new PathGroup(7, 1, 2, 1, 0.405363426816988, 0); pathGroupList.Add(pathGroup);
  924.             pathGroup = new PathGroup(7, 1, 6, 2, 0.529598485389863, 0); pathGroupList.Add(pathGroup);
  925.             pathGroup = new PathGroup(7, 1, 5, 2, -0.124235058572874, 0); pathGroupList.Add(pathGroup);
  926.             pathGroup = new PathGroup(7, 1, 6, 7, -0.523056459865598, 0); pathGroupList.Add(pathGroup);
  927.             pathGroup = new PathGroup(7, 1, 6, 11, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  928.             pathGroup = new PathGroup(7, 1, 11, 0, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  929.             pathGroup = new PathGroup(7, 1, 0, 7, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  930.             pathGroup = new PathGroup(11, 1, 5, 1, -0.594636573183012, 0); pathGroupList.Add(pathGroup);
  931.             pathGroup = new PathGroup(11, 1, 6, 5, -0.470401514610137, 0); pathGroupList.Add(pathGroup);
  932.             pathGroup = new PathGroup(11, 1, 2, 1, -0.405363426816989, 0); pathGroupList.Add(pathGroup);
  933.             pathGroup = new PathGroup(11, 1, 6, 2, -0.529598485389863, 0); pathGroupList.Add(pathGroup);
  934.             pathGroup = new PathGroup(11, 1, 5, 2, -0.124235058572874, 0); pathGroupList.Add(pathGroup);
  935.             pathGroup = new PathGroup(7, 2, 2, 5, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  936.             pathGroup = new PathGroup(7, 2, 5, 6, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  937.             pathGroup = new PathGroup(7, 2, 2, 6, -0.62927865105439, 0); pathGroupList.Add(pathGroup);
  938.             pathGroup = new PathGroup(7, 2, 2, 3, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  939.             pathGroup = new PathGroup(7, 2, 3, 6, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  940.             pathGroup = new PathGroup(7, 2, 6, 7, -0.523056459865598, 0); pathGroupList.Add(pathGroup);
  941.             pathGroup = new PathGroup(7, 2, 6, 11, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  942.             pathGroup = new PathGroup(7, 2, 11, 0, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  943.             pathGroup = new PathGroup(7, 2, 0, 7, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  944.             pathGroup = new PathGroup(9, 2, 2, 5, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  945.             pathGroup = new PathGroup(9, 2, 5, 6, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  946.             pathGroup = new PathGroup(9, 2, 2, 6, -0.62927865105439, 0); pathGroupList.Add(pathGroup);
  947.             pathGroup = new PathGroup(9, 2, 2, 3, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  948.             pathGroup = new PathGroup(9, 2, 3, 6, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  949.             pathGroup = new PathGroup(10, 2, 2, 5, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  950.             pathGroup = new PathGroup(10, 2, 5, 6, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  951.             pathGroup = new PathGroup(10, 2, 2, 6, -0.62927865105439, 0); pathGroupList.Add(pathGroup);
  952.             pathGroup = new PathGroup(10, 2, 2, 3, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  953.             pathGroup = new PathGroup(10, 2, 3, 6, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  954.             pathGroup = new PathGroup(11, 2, 2, 5, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  955.             pathGroup = new PathGroup(11, 2, 5, 6, -0.180944911617061, 0); pathGroupList.Add(pathGroup);
  956.             pathGroup = new PathGroup(11, 2, 2, 6, -0.62927865105439, 0); pathGroupList.Add(pathGroup);
  957.             pathGroup = new PathGroup(11, 2, 2, 3, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  958.             pathGroup = new PathGroup(11, 2, 3, 6, -0.189776437328549, 0); pathGroupList.Add(pathGroup);
  959.             pathGroup = new PathGroup(8, 3, 3, 2, -0.501864116510448, 0); pathGroupList.Add(pathGroup);
  960.             pathGroup = new PathGroup(8, 3, 2, 5, -0.473247898000575, 0); pathGroupList.Add(pathGroup);
  961.             pathGroup = new PathGroup(8, 3, 3, 6, -0.498135883489552, 0); pathGroupList.Add(pathGroup);
  962.             pathGroup = new PathGroup(8, 3, 6, 5, -0.526752101999425, 0); pathGroupList.Add(pathGroup);
  963.             pathGroup = new PathGroup(8, 3, 2, 6, -0.028616218509873, 0); pathGroupList.Add(pathGroup);
  964.             pathGroup = new PathGroup(9, 3, 3, 6, -0.607788214974469, 0); pathGroupList.Add(pathGroup);
  965.             pathGroup = new PathGroup(9, 3, 3, 2, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  966.             pathGroup = new PathGroup(9, 3, 2, 6, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  967.             pathGroup = new PathGroup(10, 3, 3, 6, -0.607788214974469, 0); pathGroupList.Add(pathGroup);
  968.             pathGroup = new PathGroup(10, 3, 3, 2, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  969.             pathGroup = new PathGroup(10, 3, 2, 6, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  970.             pathGroup = new PathGroup(11, 3, 3, 6, -0.607788214974469, 0); pathGroupList.Add(pathGroup);
  971.             pathGroup = new PathGroup(11, 3, 3, 2, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  972.             pathGroup = new PathGroup(11, 3, 2, 6, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  973.             pathGroup = new PathGroup(5, 4, 3, 2, -0.501864116510448, 0); pathGroupList.Add(pathGroup);
  974.             pathGroup = new PathGroup(5, 4, 2, 5, -0.473247898000575, 0); pathGroupList.Add(pathGroup);
  975.             pathGroup = new PathGroup(5, 4, 3, 6, -0.498135883489552, 0); pathGroupList.Add(pathGroup);
  976.             pathGroup = new PathGroup(5, 4, 6, 5, -0.526752101999425, 0); pathGroupList.Add(pathGroup);
  977.             pathGroup = new PathGroup(5, 4, 2, 6, -0.028616218509873, 0); pathGroupList.Add(pathGroup);
  978.             pathGroup = new PathGroup(8, 4, 3, 2, -0.501864116510448, 0); pathGroupList.Add(pathGroup);
  979.             pathGroup = new PathGroup(8, 4, 2, 5, -0.473247898000575, 0); pathGroupList.Add(pathGroup);
  980.             pathGroup = new PathGroup(8, 4, 3, 6, -0.498135883489552, 0); pathGroupList.Add(pathGroup);
  981.             pathGroup = new PathGroup(8, 4, 6, 5, -0.526752101999425, 0); pathGroupList.Add(pathGroup);
  982.             pathGroup = new PathGroup(8, 4, 2, 6, -0.028616218509873, 0); pathGroupList.Add(pathGroup);
  983.             pathGroup = new PathGroup(9, 4, 3, 6, -0.607788214974469, 0); pathGroupList.Add(pathGroup);
  984.             pathGroup = new PathGroup(9, 4, 3, 2, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  985.             pathGroup = new PathGroup(9, 4, 2, 6, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  986.             pathGroup = new PathGroup(10, 4, 3, 6, -0.607788214974469, 0); pathGroupList.Add(pathGroup);
  987.             pathGroup = new PathGroup(10, 4, 3, 2, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  988.             pathGroup = new PathGroup(10, 4, 2, 6, -0.392211785025531, 0); pathGroupList.Add(pathGroup);
  989.             pathGroup = new PathGroup(7, 5, 5, 6, -0.530595169368965, 0); pathGroupList.Add(pathGroup);
  990.             pathGroup = new PathGroup(7, 5, 5, 10, -0.469404830631035, 0); pathGroupList.Add(pathGroup);
  991.             pathGroup = new PathGroup(7, 5, 10, 6, -0.469404830631035, 0); pathGroupList.Add(pathGroup);
  992.             pathGroup = new PathGroup(7, 5, 6, 7, -0.523056459865598, 0); pathGroupList.Add(pathGroup);
  993.             pathGroup = new PathGroup(7, 5, 6, 11, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  994.             pathGroup = new PathGroup(7, 5, 11, 0, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  995.             pathGroup = new PathGroup(7, 5, 0, 7, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  996.             pathGroup = new PathGroup(11, 5, 5, 6, -0.530595169368965, 0); pathGroupList.Add(pathGroup);
  997.             pathGroup = new PathGroup(11, 5, 5, 10, -0.469404830631035, 0); pathGroupList.Add(pathGroup);
  998.             pathGroup = new PathGroup(11, 5, 10, 6, -0.469404830631035, 0); pathGroupList.Add(pathGroup);
  999.             pathGroup = new PathGroup(8, 7, 7, 6, -0.523056459865598, 0); pathGroupList.Add(pathGroup);
  1000.             pathGroup = new PathGroup(8, 7, 11, 6, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  1001.             pathGroup = new PathGroup(8, 7, 0, 11, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  1002.             pathGroup = new PathGroup(8, 7, 7, 0, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  1003.             pathGroup = new PathGroup(8, 7, 8, 5, -0.739002897313725, 0); pathGroupList.Add(pathGroup);
  1004.             pathGroup = new PathGroup(8, 7, 5, 6, -0.516945838054908, 0); pathGroupList.Add(pathGroup);
  1005.             pathGroup = new PathGroup(8, 7, 8, 9, -0.518265203777352, 0); pathGroupList.Add(pathGroup);
  1006.             pathGroup = new PathGroup(8, 7, 9, 10, -0.518265203777352, 0); pathGroupList.Add(pathGroup);
  1007.             pathGroup = new PathGroup(8, 7, 10, 6, -0.740322263036168, 0); pathGroupList.Add(pathGroup);
  1008.             pathGroup = new PathGroup(8, 7, 5, 10, -0.222057059258816, 0); pathGroupList.Add(pathGroup);
  1009.             pathGroup = new PathGroup(9, 7, 7, 6, -0.523056459865598, 0); pathGroupList.Add(pathGroup);
  1010.             pathGroup = new PathGroup(9, 7, 11, 6, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  1011.             pathGroup = new PathGroup(9, 7, 0, 11, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  1012.             pathGroup = new PathGroup(9, 7, 7, 0, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  1013.             pathGroup = new PathGroup(10, 7, 7, 6, -0.523056459865598, 0); pathGroupList.Add(pathGroup);
  1014.             pathGroup = new PathGroup(10, 7, 11, 6, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  1015.             pathGroup = new PathGroup(10, 7, 0, 11, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  1016.             pathGroup = new PathGroup(10, 7, 7, 0, -0.476943540134402, 0); pathGroupList.Add(pathGroup);
  1017.             pathGroup = new PathGroup(11, 8, 5, 8, -0.739002897313725, 0); pathGroupList.Add(pathGroup);
  1018.             pathGroup = new PathGroup(11, 8, 6, 5, -0.516945838054908, 0); pathGroupList.Add(pathGroup);
  1019.             pathGroup = new PathGroup(11, 8, 9, 8, -0.518265203777352, 0); pathGroupList.Add(pathGroup);
  1020.             pathGroup = new PathGroup(11, 8, 10, 9, -0.518265203777352, 0); pathGroupList.Add(pathGroup);
  1021.             pathGroup = new PathGroup(11, 8, 6, 10, -0.740322263036168, 0); pathGroupList.Add(pathGroup);
  1022.             pathGroup = new PathGroup(11, 8, 10, 5, -0.222057059258816, 0); pathGroupList.Add(pathGroup);
  1023.             pathGroup = new PathGroup(1, 0, 0, 11, -1, 0); pathGroupList.Add(pathGroup);
  1024.             pathGroup = new PathGroup(1, 0, 11, 6, -1, 0); pathGroupList.Add(pathGroup);
  1025.             pathGroup = new PathGroup(2, 0, 0, 11, -1, 0); pathGroupList.Add(pathGroup);
  1026.             pathGroup = new PathGroup(2, 0, 11, 6, -1, 0); pathGroupList.Add(pathGroup);
  1027.             pathGroup = new PathGroup(4, 0, 0, 7, -1, 0); pathGroupList.Add(pathGroup);
  1028.             pathGroup = new PathGroup(4, 0, 7, 4, -1, 0); pathGroupList.Add(pathGroup);
  1029.             pathGroup = new PathGroup(5, 0, 0, 11, -1, 0); pathGroupList.Add(pathGroup);
  1030.             pathGroup = new PathGroup(5, 0, 11, 6, -1, 0); pathGroupList.Add(pathGroup);
  1031.             pathGroup = new PathGroup(6, 0, 0, 11, -1, 0); pathGroupList.Add(pathGroup);
  1032.             pathGroup = new PathGroup(6, 0, 11, 6, -1, 0); pathGroupList.Add(pathGroup);
  1033.             pathGroup = new PathGroup(8, 0, 0, 11, -1, 0); pathGroupList.Add(pathGroup);
  1034.             pathGroup = new PathGroup(8, 0, 11, 6, -1, 0); pathGroupList.Add(pathGroup);
  1035.             pathGroup = new PathGroup(9, 0, 0, 11, -1, 0); pathGroupList.Add(pathGroup);
  1036.             pathGroup = new PathGroup(9, 0, 11, 6, -1, 0); pathGroupList.Add(pathGroup);
  1037.             pathGroup = new PathGroup(9, 0, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1038.             pathGroup = new PathGroup(9, 0, 10, 9, -1, 0); pathGroupList.Add(pathGroup);
  1039.             pathGroup = new PathGroup(10, 0, 0, 11, -1, 0); pathGroupList.Add(pathGroup);
  1040.             pathGroup = new PathGroup(10, 0, 11, 6, -1, 0); pathGroupList.Add(pathGroup);
  1041.             pathGroup = new PathGroup(10, 0, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1042.             pathGroup = new PathGroup(3, 1, 1, 2, -1, 0); pathGroupList.Add(pathGroup);
  1043.             pathGroup = new PathGroup(3, 1, 2, 3, -1, 0); pathGroupList.Add(pathGroup);
  1044.             pathGroup = new PathGroup(4, 1, 1, 2, -1, 0); pathGroupList.Add(pathGroup);
  1045.             pathGroup = new PathGroup(4, 1, 2, 3, -1, 0); pathGroupList.Add(pathGroup);
  1046.             pathGroup = new PathGroup(4, 1, 3, 4, -1, 0); pathGroupList.Add(pathGroup);
  1047.             pathGroup = new PathGroup(9, 1, 1, 8, -1, 0); pathGroupList.Add(pathGroup);
  1048.             pathGroup = new PathGroup(9, 1, 8, 9, -1, 0); pathGroupList.Add(pathGroup);
  1049.             pathGroup = new PathGroup(10, 1, 1, 5, -1, 0); pathGroupList.Add(pathGroup);
  1050.             pathGroup = new PathGroup(10, 1, 5, 10, -1, 0); pathGroupList.Add(pathGroup);
  1051.             pathGroup = new PathGroup(11, 1, 6, 11, -1, 0); pathGroupList.Add(pathGroup);
  1052.             pathGroup = new PathGroup(4, 2, 2, 3, -1, 0); pathGroupList.Add(pathGroup);
  1053.             pathGroup = new PathGroup(4, 2, 3, 4, -1, 0); pathGroupList.Add(pathGroup);
  1054.             pathGroup = new PathGroup(8, 2, 2, 5, -1, 0); pathGroupList.Add(pathGroup);
  1055.             pathGroup = new PathGroup(8, 2, 5, 8, -1, 0); pathGroupList.Add(pathGroup);
  1056.             pathGroup = new PathGroup(9, 2, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1057.             pathGroup = new PathGroup(9, 2, 10, 9, -1, 0); pathGroupList.Add(pathGroup);
  1058.             pathGroup = new PathGroup(10, 2, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1059.             pathGroup = new PathGroup(11, 2, 6, 11, -1, 0); pathGroupList.Add(pathGroup);
  1060.             pathGroup = new PathGroup(8, 3, 5, 8, -1, 0); pathGroupList.Add(pathGroup);
  1061.             pathGroup = new PathGroup(9, 3, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1062.             pathGroup = new PathGroup(9, 3, 10, 9, -1, 0); pathGroupList.Add(pathGroup);
  1063.             pathGroup = new PathGroup(10, 3, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1064.             pathGroup = new PathGroup(11, 3, 6, 11, -1, 0); pathGroupList.Add(pathGroup);
  1065.             pathGroup = new PathGroup(5, 4, 4, 3, -1, 0); pathGroupList.Add(pathGroup);
  1066.             pathGroup = new PathGroup(8, 4, 4, 3, -1, 0); pathGroupList.Add(pathGroup);
  1067.             pathGroup = new PathGroup(8, 4, 5, 8, -1, 0); pathGroupList.Add(pathGroup);
  1068.             pathGroup = new PathGroup(9, 4, 4, 3, -1, 0); pathGroupList.Add(pathGroup);
  1069.             pathGroup = new PathGroup(9, 4, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1070.             pathGroup = new PathGroup(9, 4, 10, 9, -1, 0); pathGroupList.Add(pathGroup);
  1071.             pathGroup = new PathGroup(10, 4, 4, 3, -1, 0); pathGroupList.Add(pathGroup);
  1072.             pathGroup = new PathGroup(10, 4, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1073.             pathGroup = new PathGroup(11, 5, 6, 11, -1, 0); pathGroupList.Add(pathGroup);
  1074.             pathGroup = new PathGroup(9, 6, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1075.             pathGroup = new PathGroup(9, 6, 10, 9, -1, 0); pathGroupList.Add(pathGroup);
  1076.             pathGroup = new PathGroup(9, 7, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1077.             pathGroup = new PathGroup(9, 7, 10, 9, -1, 0); pathGroupList.Add(pathGroup);
  1078.             pathGroup = new PathGroup(10, 7, 6, 10, -1, 0); pathGroupList.Add(pathGroup);
  1079.             pathGroup = new PathGroup(11, 7, 7, 0, -1, 0); pathGroupList.Add(pathGroup);
  1080.             pathGroup = new PathGroup(11, 7, 0, 11, -1, 0); pathGroupList.Add(pathGroup);
  1081.             pathGroup = new PathGroup(11, 8, 6, 11, -1, 0); pathGroupList.Add(pathGroup);
  1082.             pathGroup = new PathGroup(11, 9, 9, 10, -1, 0); pathGroupList.Add(pathGroup);
  1083.             pathGroup = new PathGroup(11, 9, 10, 6, -1, 0); pathGroupList.Add(pathGroup);
  1084.             pathGroup = new PathGroup(11, 9, 6, 11, -1, 0); pathGroupList.Add(pathGroup);
  1085.             pathGroup = new PathGroup(11, 10, 10, 6, -1, 0); pathGroupList.Add(pathGroup);
  1086.             pathGroup = new PathGroup(11, 10, 6, 11, -1, 0); pathGroupList.Add(pathGroup);
  1087.  
  1088.  
  1089.  
  1090.             // Den Pfadgruppen den errechneten Fluss beimessen
  1091.  
  1092.             for (int i = 0; i < pathGroupList.Count; i++)
  1093.             {
  1094.  
  1095.                 for (int s = 0; s < v_total; s++)
  1096.                 {
  1097.                     for (int d = 0; d < v_total; d++)
  1098.                     {
  1099.  
  1100.                         if ((pathGroupList[i].pathGroupSrc == s) && (pathGroupList[i].pathGroupdest == d))
  1101.                         {
  1102.                             pathGroupList[i].flow = pathGroupList[i].flowShare * feed_cons[s, d].flow;
  1103.                         }
  1104.                     }
  1105.                 }
  1106.             }
  1107.  
  1108.  
  1109.             // Fluss je Kante ermitteln
  1110.  
  1111.             foreach (PathGroup pathGroupElement in pathGroupList)
  1112.             {
  1113.                 for (int s = 0; s < v_total; s++)
  1114.                 {
  1115.                     for (int d = 0; d < v_total; d++)
  1116.                     {
  1117.                         if (pathGroupElement.edgeSrc == s && pathGroupElement.edgeDest == d)
  1118.                         {
  1119.                             edge[s, d].flow += pathGroupElement.flow;
  1120.  
  1121.                         }
  1122.                     }
  1123.  
  1124.                 }
  1125.             }
  1126.  
  1127.             // Resultierende Flussrichtung je Kante ermitteln und Gegenrichtungsfluss abziehen
  1128.  
  1129.             for (int s = 0; s < v_total; s++)
  1130.             {
  1131.                 for(int d = 0; d < v_total; d++)
  1132.                 {
  1133.                     if (   Math.Abs(edge[s, d].flow)   >=   Math.Abs(edge[d, s].flow)    )
  1134.                     {
  1135.                         if (edge[s, d].flow > 0)
  1136.                         {
  1137.                              edge[s, d].flow -= edge[d, s].flow;
  1138.                              edge[d, s].flow = 0;
  1139.                         }
  1140.                         else
  1141.                         {
  1142.                             edge[d, s].flow -= edge[s, d].flow;
  1143.                             edge[s, d].flow = 0;
  1144.  
  1145.                         }
  1146.                    }
  1147.                     else
  1148.  
  1149.                     {
  1150.  
  1151.                         if (edge[d, s].flow > 0) {
  1152.                         edge[d, s].flow -= edge[s, d].flow;
  1153.                         edge[s, d].flow = 0;
  1154.                         }
  1155.                         else
  1156.                         {
  1157.                             edge[s, d].flow -= edge[d, s].flow;
  1158.                             edge[d, s].flow = 0;
  1159.  
  1160.                         }
  1161.                     }
  1162.  
  1163.                 }
  1164.             }
  1165.  
  1166.             //
  1167.  
  1168.             for (int s = 0; s < v_total; s++)
  1169.             {
  1170.                 for (int d = 0; d < v_total; d++)
  1171.                 {
  1172.                     if (Math.Abs(edge[s, d].flow) > 0)
  1173.                     {
  1174.                         Console.WriteLine("edge flow von      " + edge[s, d].src + " nach " + edge[s, d].dest + "   " + edge[s, d].flow);
  1175.                 }
  1176.                 }
  1177.             }
  1178.             Console.WriteLine("Ready. Press any key");
  1179.         }
  1180.     }
  1181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement