Add bucket queue and PriorityQueueByKey
This commit is contained in:
parent
ffe51bede9
commit
b8f83ec4eb
7 changed files with 245 additions and 21 deletions
|
|
@ -4,8 +4,9 @@ use factorio_blueprint_generator::factory::{FactoryGraph, generate_factory};
|
|||
use factorio_core::{prelude::*, visualize::Visualize};
|
||||
use factorio_graph::{
|
||||
priority_queue::{
|
||||
PriorityQueue,
|
||||
ByKey, PriorityQueue,
|
||||
binary_heap::{BinaryHeap, FastBinaryHeap},
|
||||
bucket_queue::BucketQueue,
|
||||
},
|
||||
wheighted_graph::shortest_path::QueueObject,
|
||||
};
|
||||
|
|
@ -19,7 +20,7 @@ use tracing_subscriber::{EnvFilter, fmt::format::FmtSpan};
|
|||
|
||||
#[derive(Parser)]
|
||||
struct Args {
|
||||
#[arg(default_value_t = 0)]
|
||||
#[arg(short, long, default_value_t = 0)]
|
||||
seed: u64,
|
||||
#[arg(short, long)]
|
||||
json: bool,
|
||||
|
|
@ -44,6 +45,7 @@ enum Tracing {
|
|||
enum PathfinderArg {
|
||||
CaFbh,
|
||||
CaBh,
|
||||
CaBq,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
|
|
@ -92,7 +94,7 @@ where
|
|||
let p = ConflictAvoidance {
|
||||
timeout: Some(std::time::Duration::from_millis(100)),
|
||||
priority_queue: std::marker::PhantomData::<
|
||||
FastBinaryHeap<QueueObject<(Position, Direction)>>,
|
||||
FastBinaryHeap<ByKey<QueueObject<(Position, Direction)>>>,
|
||||
>,
|
||||
};
|
||||
execute::<_, _>(args, l, p);
|
||||
|
|
@ -101,7 +103,16 @@ where
|
|||
let p = ConflictAvoidance {
|
||||
timeout: Some(std::time::Duration::from_millis(100)),
|
||||
priority_queue: std::marker::PhantomData::<
|
||||
BinaryHeap<QueueObject<(Position, Direction)>>,
|
||||
BinaryHeap<ByKey<QueueObject<(Position, Direction)>>>,
|
||||
>,
|
||||
};
|
||||
execute::<_, _>(args, l, p);
|
||||
}
|
||||
PathfinderArg::CaBq => {
|
||||
let p = ConflictAvoidance {
|
||||
timeout: Some(std::time::Duration::from_millis(100)),
|
||||
priority_queue: std::marker::PhantomData::<
|
||||
BucketQueue<QueueObject<(Position, Direction)>>,
|
||||
>,
|
||||
};
|
||||
execute::<_, _>(args, l, p);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue