-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathalgosDiscret.ml
108 lines (102 loc) · 4.67 KB
/
algosDiscret.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
open Def
open Print
open PrinttoC
open Tools
open Algos
(*Warning, energy should always start with speed 0.*)
let algo_discret id t size_t n energy =
match id with
| 0 -> (* Speed *)
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete = optim_discret 0 (t_temp) energy in
(energy_int t_discrete energy, matrix)
| 1 ->
let _ ,t_cont = algo_gopi t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete = optim_discret 0 (t_temp) energy in
(energy_int t_discrete energy, matrix)
| 2 ->
let _ ,t_cont = greedy_7 t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete = optim_discret 0 (t_temp) energy in
(energy_int t_discrete energy, matrix)
| 3 -> (* Excess *)
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete = optim_discret 1 (t_temp) energy in
(energy_int t_discrete energy, matrix)
| 4 -> (* Greedy *)
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
(energy_int t_temp energy, matrix)
| 5 ->
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete_v1 = optim_discret 0 (t_temp) energy in
let t_discrete_v2 = optim_discret_second_turn 0 t_discrete_v1 energy in
(energy_int t_discrete_v2 energy, matrix)
| 6 ->
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete_v1 = optim_discret 0 (t_temp) energy in
let t_discrete_v2 = optim_discret_second_turn 1 t_discrete_v1 energy in
(energy_int t_discrete_v2 energy, matrix)
| 7 ->
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete_v1 = optim_discret 1 (t_temp) energy in
let t_discrete_v2 = optim_discret_second_turn 0 t_discrete_v1 energy in
(energy_int t_discrete_v2 energy, matrix)
| 8 ->
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete_v1 = optim_discret 1 (t_temp) energy in
let t_discrete_v2 = optim_discret_second_turn 1 t_discrete_v1 energy in
(energy_int t_discrete_v2 energy, matrix)
| _ ->
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete = optim_discret 1 (t_temp) energy in
(energy_int t_discrete energy, matrix)
let algo_discret_time id t size_t n energy =
let a = Sys.time () in
match id with
| 0 -> (* Speed *)
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete = optim_discret 0 (t_temp) energy in
let b = Sys.time () in
(* Printf.printf "serveurs= %d, b-a=%f \n" n (b-.a);*)
(energy_int t_discrete energy, matrix, b -. a)
| 3 -> (* Excess *)
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete = optim_discret 1 (t_temp) energy in
let b = Sys.time () in
(energy_int t_discrete energy, matrix, b -. a)
| 4 -> (* Greedy *)
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let b = Sys.time () in
(energy_int t_temp energy, matrix, b -. a)
| _ ->
let _, t_cont = algo_intelligent t n in
let t_temp = tarbre_to_arbre_int t_cont energy in
let matrix = make_prec_matrix_server_tree_int t_temp size_t in
let t_discrete = optim_discret 1 (t_temp) energy in
let b = Sys.time () in
(energy_int t_discrete energy, matrix, b -. a)