Do not redo steps that would not improve the solution
This commit is contained in:
parent
71aaabdec4
commit
b3cf776618
1 changed files with 10 additions and 6 deletions
16
src/main.rs
16
src/main.rs
|
@ -36,18 +36,25 @@ fn main() {
|
|||
MIN_WEIGHT_SCORE, MAX_WEIGHT_SCORE, DB_CHOICE_PROBABILITY);
|
||||
population::populate_using_db(&mut layout, &mut rng, &db, MIN_WEIGHT_SCORE, MAX_WEIGHT_SCORE, DB_CHOICE_PROBABILITY);
|
||||
eprintln!("Finished random init, price: {}, houses: {}", layout.price(), layout.houses().len());
|
||||
let mut last_improved_step = -1;
|
||||
loop {
|
||||
let mut improved = false;
|
||||
if last_improved_step == 1 {
|
||||
break;
|
||||
}
|
||||
eprintln!("Starting moving individual houses...");
|
||||
if optimization::improve_move_individual_houses(&mut layout, &mut rng) {
|
||||
dump_layout(&layout, &mut best_price, seed);
|
||||
improved = true;
|
||||
last_improved_step = 1;
|
||||
}
|
||||
eprintln!("Finished moving individual houses...");
|
||||
|
||||
if last_improved_step == 2 {
|
||||
break;
|
||||
}
|
||||
eprintln!("Starting pairwise house merge...");
|
||||
if optimization::improve_merge_pairwise(&mut layout) {
|
||||
dump_layout(&layout, &mut best_price, seed);
|
||||
improved = true;
|
||||
last_improved_step = 2;
|
||||
}
|
||||
eprintln!("Finished pairwise house merge");
|
||||
//eprintln!("Starting pairwise house move...");
|
||||
|
@ -56,9 +63,6 @@ fn main() {
|
|||
// improved = true;
|
||||
//}
|
||||
//eprintln!("Finished pairwise house move");
|
||||
if !improved {
|
||||
break;
|
||||
}
|
||||
}
|
||||
db.add_layout(&layout.houses(), true).expect("Failed to insert into DB");
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue