Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
helgesander02 committed May 13, 2024
1 parent 32af435 commit fdadcc9
Show file tree
Hide file tree
Showing 21 changed files with 1,375 additions and 12 deletions.
29 changes: 23 additions & 6 deletions output.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,25 @@
#!/bin/bash
#Online Stream-Aware Routing for TSN-Based Industrial Control Systems: Figure 4

go run main.go --topology_name typical_complex --tsn 6 --avb 14 # Number of input streams: 10
go run main.go --topology_name typical_complex --tsn 12 --avb 28 # Number of input streams: 20
go run main.go --topology_name typical_complex --tsn 18 --avb 42 # Number of input streams: 30
go run main.go --topology_name typical_complex --tsn 24 --avb 56 # Number of input streams: 40
go run main.go --topology_name typical_complex --tsn 30 --avb 70 # Number of input streams: 50
go run main.go --topology_name typical_complex --tsn 36 --avb 84 # Number of input streams: 60
for i in $(seq 1 3); do
go run main.go --topology_name typical_complex --tsn 6 --avb 14 # Number of input streams: 10
go run main.go --topology_name typical_complex --tsn 12 --avb 28 # Number of input streams: 20
go run main.go --topology_name typical_complex --tsn 18 --avb 42 # Number of input streams: 30
go run main.go --topology_name typical_complex --tsn 24 --avb 56 # Number of input streams: 40
go run main.go --topology_name typical_complex --tsn 30 --avb 70 # Number of input streams: 50
go run main.go --topology_name typical_complex --tsn 36 --avb 84 # Number of input streams: 60

go run main.go --topology_name layered_ring --tsn 6 --avb 14 # Number of input streams: 10
go run main.go --topology_name layered_ring --tsn 12 --avb 28 # Number of input streams: 20
go run main.go --topology_name layered_ring --tsn 18 --avb 42 # Number of input streams: 30
go run main.go --topology_name layered_ring --tsn 24 --avb 56 # Number of input streams: 40
go run main.go --topology_name layered_ring --tsn 30 --avb 70 # Number of input streams: 50
go run main.go --topology_name layered_ring --tsn 36 --avb 84 # Number of input streams: 60

go run main.go --topology_name ring --tsn 6 --avb 14 # Number of input streams: 10
go run main.go --topology_name ring --tsn 12 --avb 28 # Number of input streams: 20
go run main.go --topology_name ring --tsn 18 --avb 42 # Number of input streams: 30
go run main.go --topology_name ring --tsn 24 --avb 56 # Number of input streams: 40
go run main.go --topology_name ring --tsn 30 --avb 70 # Number of input streams: 50
go run main.go --topology_name ring --tsn 36 --avb 84 # Number of input streams: 60
done
4 changes: 2 additions & 2 deletions plan/algo/online_stream_aware_ant_colony_optimization.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ func probability(osaco *OSACO) (*routes.Trees_set, *routes.Trees_set, [2][]int,
for kth := range ktree.Trees {
probability := (osaco.VB.TSN_VB[nth][kth] * osaco.PRM.TSN_PRM[nth][kth]) / Denominator
for j := 0; j < int(probability*100); j++ {
// if kth == 5 => arr[0,0,0,0,0,0,...,1,1,1,...,2,2,2,2,..,3,3,3,...,4,4,4,4,...] len(arr) ~ 100
arr = append(arr, kth)
}
}
Expand Down Expand Up @@ -202,6 +203,7 @@ func probability(osaco *OSACO) (*routes.Trees_set, *routes.Trees_set, [2][]int,
for kth := range ktree.Trees {
probability := (osaco.VB.AVB_VB[nth][kth] * osaco.PRM.AVB_PRM[nth][kth]) / Denominator
for j := 0; j < int(probability*100); j++ {
// if kth == 5 => arr[0,0,0,0,0,0,...,1,1,1,...,2,2,2,2,..,3,3,3,...,4,4,4,4,...] len(arr) ~ 100
arr = append(arr, kth)
}
}
Expand Down Expand Up @@ -229,9 +231,7 @@ func epoch(network *network.Network, osaco *OSACO) *routes.Trees_set {

_, cost, osaco_timer_2 := schedule.OBJ(network, osaco.KTrees, II, osaco.BGTrees)
//obj, cost := Obj(network, X, II, II_prime) // BG ... pass
osaco.Timer.TimerExportData()
osaco.Timer.TimerMerge(osaco_timer_2)
osaco.Timer.TimerExportData()

for nth, ktree := range osaco.KTrees.TSNTrees {
for kth := range ktree.Trees {
Expand Down
4 changes: 0 additions & 4 deletions plan/initiateFunc.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,13 @@ func (plan *OMACO) Initiate_Plan() {
plan.OSACO.Objs_osaco[i] = plan.OSACO.OSACO_Run(plan.Network, plan.SMT.Trees, i)
}

plan.SMT.Timer.TimerExportData()
obj_smt, _, smt_timer_2 := schedule.OBJ(plan.Network, plan.OSACO.KTrees, plan.SMT.Trees.Input_Tree_set(), plan.SMT.Trees.BG_Tree_set())
plan.SMT.Objs_smt = obj_smt
plan.SMT.Timer.TimerMerge(smt_timer_2)
plan.SMT.Timer.TimerExportData()

plan.MDTC.Timer.TimerExportData()
obj_mdt, _, mdtc_timer_2 := schedule.OBJ(plan.Network, plan.OSACO.KTrees, plan.MDTC.Trees.Input_Tree_set(), plan.MDTC.Trees.BG_Tree_set())
plan.MDTC.Objs_mdtc = obj_mdt
plan.MDTC.Timer.TimerMerge(mdtc_timer_2)
plan.MDTC.Timer.TimerExportData()
}

//func (plan *plan2) Initiate_Plan() {
Expand Down
75 changes: 75 additions & 0 deletions result/layered_ring_testcase100_tsn12_avb28.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 0.000000 O2: 7.080000 O3: pass O4: 167.330000
Computering time: 17.67µs
The average objective result for the MDTC:
O1: 0.000000 O2: 6.170000 O3: pass O4: 156.020000
Computering time: 897ns
The average objective result for OSACO:
1000ms: O1: 0.000000 O2: 5.700000 O3: pass O4: 166.870000
800ms: O1: 0.000000 O2: 5.700000 O3: pass O4: 167.000000
600ms: O1: 0.000000 O2: 5.720000 O3: pass O4: 167.210000
400ms: O1: 0.000000 O2: 5.740000 O3: pass O4: 167.420000
200ms: O1: 0.000000 O2: 5.750000 O3: pass O4: 168.190000
Computering time: 126.192µs

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 0.030000 O2: 6.370000 O3: pass O4: 165.040000
Computering time: 15.024µs
The average objective result for the MDTC:
O1: 0.030000 O2: 5.560000 O3: pass O4: 154.070000
Computering time: 870ns
The average objective result for OSACO:
1000ms: O1: 0.030000 O2: 5.090000 O3: pass O4: 164.670000
800ms: O1: 0.030000 O2: 5.100000 O3: pass O4: 164.850000
600ms: O1: 0.030000 O2: 5.120000 O3: pass O4: 165.040000
400ms: O1: 0.030000 O2: 5.140000 O3: pass O4: 165.120000
200ms: O1: 0.030000 O2: 5.150000 O3: pass O4: 166.020000
Computering time: 117.518µs

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 0.000000 O2: 6.920000 O3: pass O4: 164.830000
Computering time: 12.237µs
The average objective result for the MDTC:
O1: 0.000000 O2: 5.870000 O3: pass O4: 153.700000
Computering time: 854ns
The average objective result for OSACO:
1000ms: O1: 0.000000 O2: 5.180000 O3: pass O4: 164.250000
800ms: O1: 0.000000 O2: 5.190000 O3: pass O4: 164.420000
600ms: O1: 0.000000 O2: 5.200000 O3: pass O4: 164.660000
400ms: O1: 0.000000 O2: 5.210000 O3: pass O4: 165.120000
200ms: O1: 0.000000 O2: 5.270000 O3: pass O4: 165.580000
Computering time: 118µs

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 0.040000 O2: 6.660000 O3: pass O4: 166.770000
Computering time: 12.719µs
The average objective result for the MDTC:
O1: 0.020000 O2: 5.790000 O3: pass O4: 155.810000
Computering time: 845ns
The average objective result for OSACO:
1000ms: O1: 0.020000 O2: 5.310000 O3: pass O4: 166.840000
800ms: O1: 0.020000 O2: 5.320000 O3: pass O4: 167.020000
600ms: O1: 0.020000 O2: 5.340000 O3: pass O4: 166.950000
400ms: O1: 0.020000 O2: 5.340000 O3: pass O4: 167.350000
200ms: O1: 0.020000 O2: 5.370000 O3: pass O4: 167.850000
Computering time: 115.148µs

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 0.070000 O2: 6.630000 O3: pass O4: 167.880000
Computering time: 10.015518ms
The average objective result for the MDTC:
O1: 0.070000 O2: 5.690000 O3: pass O4: 156.430000
Computering time: 10.000906ms
The average objective result for OSACO:
1000ms: O1: 0.070000 O2: 5.200000 O3: pass O4: 167.760000
800ms: O1: 0.070000 O2: 5.210000 O3: pass O4: 167.790000
600ms: O1: 0.070000 O2: 5.230000 O3: pass O4: 167.830000
400ms: O1: 0.070000 O2: 5.270000 O3: pass O4: 168.080000
200ms: O1: 0.070000 O2: 5.270000 O3: pass O4: 168.970000
Computering time: 10.118287ms

75 changes: 75 additions & 0 deletions result/layered_ring_testcase100_tsn18_avb42.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 3.660000 O2: 20.410000 O3: pass O4: 375.340000
Computering time: 10.036901ms
The average objective result for the MDTC:
O1: 3.090000 O2: 19.040000 O3: pass O4: 349.230000
Computering time: 10.001236ms
The average objective result for OSACO:
1000ms: O1: 2.920000 O2: 18.580000 O3: pass O4: 384.080000
800ms: O1: 2.950000 O2: 18.590000 O3: pass O4: 383.940000
600ms: O1: 2.970000 O2: 18.640000 O3: pass O4: 383.810000
400ms: O1: 2.970000 O2: 18.720000 O3: pass O4: 384.690000
200ms: O1: 3.010000 O2: 18.810000 O3: pass O4: 385.160000
Computering time: 10.187421ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 3.400000 O2: 20.400000 O3: pass O4: 375.410000
Computering time: 10.032477ms
The average objective result for the MDTC:
O1: 2.630000 O2: 18.780000 O3: pass O4: 350.660000
Computering time: 10.00116ms
The average objective result for OSACO:
1000ms: O1: 2.390000 O2: 18.450000 O3: pass O4: 383.510000
800ms: O1: 2.400000 O2: 18.500000 O3: pass O4: 383.690000
600ms: O1: 2.410000 O2: 18.640000 O3: pass O4: 384.270000
400ms: O1: 2.450000 O2: 18.780000 O3: pass O4: 384.820000
200ms: O1: 2.530000 O2: 18.930000 O3: pass O4: 384.700000
Computering time: 10.178601ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 3.140000 O2: 20.020000 O3: pass O4: 368.880000
Computering time: 10.026851ms
The average objective result for the MDTC:
O1: 2.440000 O2: 18.770000 O3: pass O4: 344.790000
Computering time: 20.478533ms
The average objective result for OSACO:
1000ms: O1: 2.040000 O2: 18.390000 O3: pass O4: 376.210000
800ms: O1: 2.050000 O2: 18.410000 O3: pass O4: 376.800000
600ms: O1: 2.060000 O2: 18.460000 O3: pass O4: 377.240000
400ms: O1: 2.100000 O2: 18.540000 O3: pass O4: 377.260000
200ms: O1: 2.170000 O2: 18.670000 O3: pass O4: 377.390000
Computering time: 10.179844ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 3.690000 O2: 20.060000 O3: pass O4: 370.520000
Computering time: 10.028475ms
The average objective result for the MDTC:
O1: 2.970000 O2: 18.700000 O3: pass O4: 346.940000
Computering time: 10.001171ms
The average objective result for OSACO:
1000ms: O1: 2.960000 O2: 18.070000 O3: pass O4: 378.810000
800ms: O1: 2.970000 O2: 18.120000 O3: pass O4: 379.000000
600ms: O1: 3.000000 O2: 18.200000 O3: pass O4: 379.460000
400ms: O1: 3.010000 O2: 18.350000 O3: pass O4: 379.130000
200ms: O1: 3.100000 O2: 18.510000 O3: pass O4: 379.690000
Computering time: 10.174098ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 3.330000 O2: 20.130000 O3: pass O4: 367.580000
Computering time: 10.034856ms
The average objective result for the MDTC:
O1: 2.670000 O2: 18.880000 O3: pass O4: 344.730000
Computering time: 20.001168ms
The average objective result for OSACO:
1000ms: O1: 2.600000 O2: 18.480000 O3: pass O4: 374.810000
800ms: O1: 2.610000 O2: 18.480000 O3: pass O4: 375.340000
600ms: O1: 2.620000 O2: 18.550000 O3: pass O4: 374.810000
400ms: O1: 2.630000 O2: 18.640000 O3: pass O4: 375.170000
200ms: O1: 2.680000 O2: 18.800000 O3: pass O4: 377.040000
Computering time: 10.180024ms

75 changes: 75 additions & 0 deletions result/layered_ring_testcase100_tsn24_avb56.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 9.590000 O2: 33.860000 O3: pass O4: 656.450000
Computering time: 200.043694ms
The average objective result for the MDTC:
O1: 8.590000 O2: 32.590000 O3: pass O4: 614.250000
Computering time: 120.001436ms
The average objective result for OSACO:
1000ms: O1: 7.860000 O2: 32.960000 O3: pass O4: 673.700000
800ms: O1: 7.880000 O2: 33.050000 O3: pass O4: 673.690000
600ms: O1: 7.920000 O2: 33.040000 O3: pass O4: 674.410000
400ms: O1: 8.000000 O2: 33.120000 O3: pass O4: 675.450000
200ms: O1: 8.240000 O2: 33.100000 O3: pass O4: 676.210000
Computering time: 160.208948ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 9.760000 O2: 33.970000 O3: pass O4: 656.890000
Computering time: 220.049046ms
The average objective result for the MDTC:
O1: 8.910000 O2: 32.390000 O3: pass O4: 613.040000
Computering time: 120.001435ms
The average objective result for OSACO:
1000ms: O1: 7.770000 O2: 32.990000 O3: pass O4: 675.510000
800ms: O1: 7.810000 O2: 33.020000 O3: pass O4: 676.040000
600ms: O1: 7.870000 O2: 33.030000 O3: pass O4: 676.580000
400ms: O1: 7.930000 O2: 33.150000 O3: pass O4: 677.450000
200ms: O1: 8.090000 O2: 33.240000 O3: pass O4: 677.880000
Computering time: 150.205849ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 10.130000 O2: 33.830000 O3: pass O4: 659.840000
Computering time: 240.041462ms
The average objective result for the MDTC:
O1: 9.040000 O2: 32.470000 O3: pass O4: 619.100000
Computering time: 90.001338ms
The average objective result for OSACO:
1000ms: O1: 8.250000 O2: 32.970000 O3: pass O4: 677.430000
800ms: O1: 8.270000 O2: 33.030000 O3: pass O4: 677.370000
600ms: O1: 8.350000 O2: 32.980000 O3: pass O4: 678.370000
400ms: O1: 8.420000 O2: 33.020000 O3: pass O4: 678.880000
200ms: O1: 8.620000 O2: 33.150000 O3: pass O4: 680.040000
Computering time: 150.211656ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 9.790000 O2: 33.730000 O3: pass O4: 663.270000
Computering time: 220.038041ms
The average objective result for the MDTC:
O1: 9.150000 O2: 32.760000 O3: pass O4: 621.650000
Computering time: 80.001362ms
The average objective result for OSACO:
1000ms: O1: 8.020000 O2: 32.830000 O3: pass O4: 682.540000
800ms: O1: 8.040000 O2: 32.900000 O3: pass O4: 682.400000
600ms: O1: 8.080000 O2: 32.990000 O3: pass O4: 682.480000
400ms: O1: 8.160000 O2: 33.110000 O3: pass O4: 682.730000
200ms: O1: 8.330000 O2: 33.200000 O3: pass O4: 684.300000
Computering time: 150.201423ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 10.200000 O2: 34.080000 O3: pass O4: 662.780000
Computering time: 280.043632ms
The average objective result for the MDTC:
O1: 8.810000 O2: 32.640000 O3: pass O4: 619.520000
Computering time: 100.001459ms
The average objective result for OSACO:
1000ms: O1: 8.430000 O2: 33.270000 O3: pass O4: 680.890000
800ms: O1: 8.430000 O2: 33.320000 O3: pass O4: 680.650000
600ms: O1: 8.490000 O2: 33.380000 O3: pass O4: 680.600000
400ms: O1: 8.540000 O2: 33.430000 O3: pass O4: 681.870000
200ms: O1: 8.740000 O2: 33.570000 O3: pass O4: 681.370000
Computering time: 180.201602ms

75 changes: 75 additions & 0 deletions result/layered_ring_testcase100_tsn30_avb70.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 13.850000 O2: 47.760000 O3: pass O4: 1027.290000
Computering time: 420.050983ms
The average objective result for the MDTC:
O1: 13.630000 O2: 46.410000 O3: pass O4: 959.360000
Computering time: 390.001254ms
The average objective result for OSACO:
1000ms: O1: 12.330000 O2: 47.200000 O3: pass O4: 1057.540000
800ms: O1: 12.360000 O2: 47.230000 O3: pass O4: 1057.310000
600ms: O1: 12.430000 O2: 47.290000 O3: pass O4: 1056.910000
400ms: O1: 12.580000 O2: 47.280000 O3: pass O4: 1057.350000
200ms: O1: 12.710000 O2: 47.330000 O3: pass O4: 1057.080000
Computering time: 350.208246ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 14.100000 O2: 48.090000 O3: pass O4: 1036.170000
Computering time: 550.043986ms
The average objective result for the MDTC:
O1: 13.600000 O2: 46.380000 O3: pass O4: 970.020000
Computering time: 410.001087ms
The average objective result for OSACO:
1000ms: O1: 12.370000 O2: 47.430000 O3: pass O4: 1068.950000
800ms: O1: 12.420000 O2: 47.460000 O3: pass O4: 1069.790000
600ms: O1: 12.530000 O2: 47.530000 O3: pass O4: 1070.250000
400ms: O1: 12.660000 O2: 47.570000 O3: pass O4: 1070.440000
200ms: O1: 12.910000 O2: 47.600000 O3: pass O4: 1069.810000
Computering time: 370.194583ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 13.760000 O2: 47.660000 O3: pass O4: 1017.450000
Computering time: 410.048523ms
The average objective result for the MDTC:
O1: 13.350000 O2: 46.410000 O3: pass O4: 949.200000
Computering time: 320.001295ms
The average objective result for OSACO:
1000ms: O1: 11.960000 O2: 47.280000 O3: pass O4: 1044.640000
800ms: O1: 12.010000 O2: 47.310000 O3: pass O4: 1046.220000
600ms: O1: 12.080000 O2: 47.350000 O3: pass O4: 1046.740000
400ms: O1: 12.180000 O2: 47.310000 O3: pass O4: 1046.850000
200ms: O1: 12.420000 O2: 47.330000 O3: pass O4: 1044.530000
Computering time: 280.225524ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 13.910000 O2: 47.730000 O3: pass O4: 1039.900000
Computering time: 490.043499ms
The average objective result for the MDTC:
O1: 13.320000 O2: 46.460000 O3: pass O4: 968.940000
Computering time: 260.00131ms
The average objective result for OSACO:
1000ms: O1: 12.260000 O2: 47.210000 O3: pass O4: 1068.120000
800ms: O1: 12.310000 O2: 47.180000 O3: pass O4: 1067.740000
600ms: O1: 12.340000 O2: 47.240000 O3: pass O4: 1069.090000
400ms: O1: 12.440000 O2: 47.290000 O3: pass O4: 1069.470000
200ms: O1: 12.610000 O2: 47.290000 O3: pass O4: 1071.050000
Computering time: 320.205016ms

--- The experimental results are as follows ---
The average objective result for the Steiner Tree:
O1: 14.010000 O2: 47.830000 O3: pass O4: 1016.510000
Computering time: 530.043539ms
The average objective result for the MDTC:
O1: 13.620000 O2: 46.360000 O3: pass O4: 948.670000
Computering time: 350.001299ms
The average objective result for OSACO:
1000ms: O1: 12.440000 O2: 47.250000 O3: pass O4: 1043.960000
800ms: O1: 12.480000 O2: 47.290000 O3: pass O4: 1045.340000
600ms: O1: 12.560000 O2: 47.350000 O3: pass O4: 1044.790000
400ms: O1: 12.630000 O2: 47.430000 O3: pass O4: 1045.560000
200ms: O1: 12.860000 O2: 47.610000 O3: pass O4: 1043.540000
Computering time: 390.189804ms

Loading

0 comments on commit fdadcc9

Please sign in to comment.