# The set of nodes in the network set N := 1 2 3 4 5 6; # The set of modular sizes for structures and couplers set W := 4 8 16 20 40 80; # The set of OD pairs and # the number wavelengths required for each o-d pair param: D: r := 1 3 16 1 6 5 2 4 10 2 5 4 2 6 9 3 4 17 3 6 11 4 6 16 5 6 3 ; # The set of available structures set S := 1 2 3 4 5; # The set of available couplers set C := 1 2 3 4 5; # The set of routing paths set P := 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; # The set of pairs of routing paths that intersect set H := (1,3) (9,13) (7,12) (6,14) (6,7) (4,7) (3,12) (3,6) (1,4) (9,15) (7,13) (7,8) (6,8) (4,8) (3,13) (3,7) (1,8) (11,13) (7,14) (7,9) (6,10) (5,6) (3,14) (3,8) (2,3) (11,15) (7,15) (7,10) (6,11) (5,7) (3,15) (3,10) (3,4) (12,14) (9,11) (7,11) (6,12) (5,10) (4,6) (3,11) (3,5) (13,15); # Sets of routing paths serving each OD pair set J[1,3] := 1 2; set J[1,6] := 3; set J[2,4] := 4 5; set J[2,5] := 6; set J[2,6] := 7; set J[3,4] := 8 9 10; set J[3,6] := 11; set J[4,6] := 12 13; set J[5,6] := 14 15; # Sets of routing paths using each structure set K[1] := 1 3 4 6 7 8; set K[2] := 3 6 7 12 14; set K[3] := 3 6 7 9 11 13 15; set K[4] := 2 3; set K[5] := 3 5 6 7 10; # Sets of routing paths using each coupler set L[1] := 3 6 7; set L[2] := ; # empty set L[3] := 3 6 7; set L[4] := 3; set L[5] := ; # empty # The structure costs param a: 4 8 16 20 40 80 := 1 14 25 42 56 112 210 2 45 81 135 180 360 675 3 30 54 90 120 240 450 4 21 38 63 84 168 315 5 15 27 45 60 120 225 ; # The coupler costs param f: 4 8 16 20 40 80 := 1 4 7 12 16 32 60 2 7 12 20 27 55 104 3 8 14 23 31 63 119 4 10 17 29 39 79 149 5 7 12 20 27 55 104 ;