@@ -3,7 +3,6 @@ mod graph;
3
3
mod dijkstra;
4
4
mod utils;
5
5
mod stats;
6
- mod graph_state;
7
6
mod algorithms;
8
7
mod eval_paths;
9
8
mod debug_path;
@@ -15,7 +14,6 @@ mod meta;
15
14
mod sim;
16
15
mod cmd;
17
16
mod progress;
18
- mod tests;
19
17
20
18
extern crate rand;
21
19
@@ -28,7 +26,6 @@ use std::env;
28
26
use crate :: cmd:: cmd_loop;
29
27
use crate :: cmd:: ext_loop;
30
28
use crate :: graph:: Graph ;
31
- use crate :: tests:: * ;
32
29
use crate :: sim:: GlobalState ;
33
30
34
31
@@ -43,181 +40,8 @@ const HELP_TEXT: &'static str = concat!(
43
40
"--bind <address> Bind command socket to address. (Default: 127.0.0.1:8011)\n "
44
41
) ;
45
42
46
- struct TZ {
47
- k : usize ,
48
- graph : Graph ,
49
- //a: Vec<Vec<u32>>
50
- }
51
-
52
- /*
53
- impl TZ {
54
- fn new(k: usize) -> Self {
55
- Self {
56
- k: k,
57
- graph: Graph::new()
58
- //a: Vec::with_capacity(k)
59
- }
60
- }
61
-
62
- // return elements a - b
63
- fn intersect(a : &Vec<u32>, b: &Vec<u32>) -> Vec<u32> {
64
- let mut ret = Vec::new();
65
- for i in 0..a.len() {
66
- if let Err(_) = b.binary_search(&a[i]) {
67
- ret.push(a[i]);
68
- }
69
- }
70
- ret
71
- }
72
-
73
- fn dist(&self, source: u32, target: u32) -> f32 {
74
- let mut dijkstra = Dijkstra::new();
75
- dijkstra.find_shortest_distance(&self.graph, source, target)
76
- }
77
-
78
- fn nearest(&self, a: &Vec<u32>, v: u32) -> u32 {
79
- let mut v_dist = 10000.0;
80
- let mut v_min = 0;
81
- for e in a {
82
- let d = self.dist(*e, v);
83
- if d < v_dist {
84
- v_min = v;
85
- v_dist = d;
86
- }
87
- }
88
- //if v_dist > 0.0 {
89
- v_min
90
- //} else {
91
- // 0 //hm...
92
- //}
93
- }
94
-
95
- fn nearer(&self, a: &Vec<u32>, v: u32, d_max: f32) -> Vec<u32> {
96
- let mut ret = Vec::new();
97
- for e in a {
98
- let d = self.dist(*e, v);
99
- if d < d_max {
100
- ret.push(*e);
101
- }
102
- }
103
- ret
104
- }
105
-
106
- fn init(&mut self) {
107
- let mut a = Vec::new();
108
- let k = self.k;
109
-
110
- // let mut graph = Graph::new();
111
- self.graph.add_lattice4(3, 3);
112
- let vs : Vec<u32> = (0..self.graph.node_count() as u32).collect();
113
-
114
- use rand::seq::SliceRandom;
115
-
116
- // create A_i
117
- a.push(vs.clone());
118
- for i in 1..k {
119
- let len = a[i-1].len() as f32;
120
- let n = len.powf(1.0 - 1.0 / k as f32) as usize;
121
- // TODO: preserve order
122
- let mut next : Vec<u32> = a[i-1].as_slice().choose_multiple(&mut rand::thread_rng(), n).cloned().collect();
123
- next.sort_unstable();
124
- a.push(next);
125
- }
126
-
127
- for i in 0..a.len() {
128
- println!("i: {}, n: {}, {:?}", i, a[i].len(), a[i]);
129
- }
130
-
131
- for v in vs {
132
- let mut bv : Vec<u32> = Vec::new();
133
- for i in 0..(k-1) {
134
- // find nearest in next set
135
- let n = self.nearest(&a[i+1], v);
136
- let diff = Self::intersect(&a[i], &a[i+1]);
137
-
138
- for i in 0..a[i].len() {
139
- if let Err(_) = a[i+1].binary_search(&a[i]) {
140
- if self.dist(v, n)
141
- diff.push(a[i]);
142
- }
143
- }
144
-
145
- println!("diff.len(): {}, n: {}", diff.len(), n);
146
- let mut w = self.nearer(&diff, v, self.dist(v, n));
147
- bv.append(&mut w);
148
- }
149
- break;
150
- }
151
- }
152
- }
153
- */
154
-
155
- /*
156
- fn get_p(tz: &TZ, i: usize, v: u32) {
157
- }
158
-
159
- fn zwick_dist(u: mut u32, v: mut u32) {
160
- let mut i = 0;
161
- let mut w = u;
162
-
163
- while get_b(v) {
164
- (u, v) = (v, u);
165
- w = get_p(i, u);
166
- }
167
-
168
- return delta(w, u) + delta(w, v);
169
- }
170
-
171
- fn zwick_prepro() {
172
- let mut graph = Graph::new();
173
- graph.add_lattice4(3, 3);
174
- let k = 3;
175
- let n = graph.nodes.len();
176
- let sets = Vector<Vector<u32>>::with_capacity(k);
177
- sets[0] = (0..n).collect();
178
-
179
- let dijkstra = Dijkstra::new();
180
- //let min = dijkstra.find_shortest_distance(&graph, source as ID, target as ID);
181
-
182
- // get element from set
183
- //fn smallest_dist(Vector<u32> &set, u32 v) -> u32
184
-
185
- //let mut dists = Vector<u32>::new();
186
-
187
- let prob = (n as f32).exp(-1.0 / k as f32);
188
-
189
- //let v = (0..n).collect();
190
- for v in 1..k {
191
- for i in 0..k {
192
- let delta = smallest_dist(sets[i], v);
193
- }
194
- }
195
-
196
- let bs = Vector<u32>::new();
197
- for i in 0..(k-1) {
198
- let v = sets[0][i]; // == V
199
- let smallest = smallest_dist(sets[i+1], v);
200
- for w in intersect(sets[i], sets[i+1]) {
201
- let d = distance(w, v);
202
- if d < smallest {
203
- bs.add(w);
204
- }
205
- }
206
- }
207
- }*/
208
43
209
44
fn main ( ) {
210
- /*
211
- let mut tz = TZ::new(4);
212
- tz.init();
213
- return;
214
- */
215
- /*
216
- println!("Node: {}, Link: {}, Packet: {}, Value: {}, Vec<usize>: {}",
217
- size_of::<node::Node>(), size_of::<link::Link>(), size_of::<sim::Packet>(),
218
- size_of::<serde_json::Value>(), size_of::<Vec<usize>>()
219
- );*/
220
-
221
45
let mut cmd_address = CMD_SOCKET_ADDRESS . to_string ( ) ;
222
46
let args: Vec < String > = env:: args ( ) . skip ( 1 ) . collect ( ) ;
223
47
let mut run_script = String :: new ( ) ;
@@ -246,23 +70,6 @@ fn main() {
246
70
"--run" => {
247
71
run_script = format ! ( "run {}" , args. join( " " ) ) ;
248
72
} ,
249
- // some hard coded scenarios - need to be removed
250
- "run1" => {
251
- run_test1 ( ) ;
252
- std:: process:: exit ( 0 ) ;
253
- } ,
254
- "run2" => {
255
- run_test2 ( ) ;
256
- std:: process:: exit ( 0 ) ;
257
- } ,
258
- "run3" => {
259
- run_test3 ( ) ;
260
- std:: process:: exit ( 0 ) ;
261
- } ,
262
- "run4" => {
263
- run_test4 ( ) ;
264
- std:: process:: exit ( 0 ) ;
265
- } ,
266
73
_ => {
267
74
println ! ( "Unknown argument: {}" , cmd) ;
268
75
std:: process:: exit ( 1 ) ;
0 commit comments