[package]
edition = "2021"
name = "problemreductions"
version = "0.2.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A library for reducing NP-hard problems"
readme = "README.md"
keywords = [
"np-hard",
"optimization",
"reduction",
"sat",
"graph",
]
categories = [
"algorithms",
"science",
]
license = "MIT"
repository = "https://github.com/CodingThrust/problem-reductions"
[features]
default = ["ilp"]
ilp = ["good_lp"]
[lib]
name = "problemreductions"
path = "src/lib.rs"
[[example]]
name = "chained_reduction_factoring_to_spinglass"
path = "examples/chained_reduction_factoring_to_spinglass.rs"
[[example]]
name = "chained_reduction_ksat_to_mis"
path = "examples/chained_reduction_ksat_to_mis.rs"
[[example]]
name = "export_graph"
path = "examples/export_graph.rs"
[[example]]
name = "export_mapping_stages"
path = "examples/export_mapping_stages.rs"
[[example]]
name = "export_petersen_mapping"
path = "examples/export_petersen_mapping.rs"
[[example]]
name = "export_schemas"
path = "examples/export_schemas.rs"
[[example]]
name = "reduction_circuitsat_to_spinglass"
path = "examples/reduction_circuitsat_to_spinglass.rs"
[[example]]
name = "reduction_factoring_to_circuitsat"
path = "examples/reduction_factoring_to_circuitsat.rs"
[[example]]
name = "reduction_factoring_to_ilp"
path = "examples/reduction_factoring_to_ilp.rs"
[[example]]
name = "reduction_ilp_to_qubo"
path = "examples/reduction_ilp_to_qubo.rs"
[[example]]
name = "reduction_kcoloring_to_ilp"
path = "examples/reduction_kcoloring_to_ilp.rs"
[[example]]
name = "reduction_kcoloring_to_qubo"
path = "examples/reduction_kcoloring_to_qubo.rs"
[[example]]
name = "reduction_ksatisfiability_to_qubo"
path = "examples/reduction_ksatisfiability_to_qubo.rs"
[[example]]
name = "reduction_maxcut_to_spinglass"
path = "examples/reduction_maxcut_to_spinglass.rs"
[[example]]
name = "reduction_maximumclique_to_ilp"
path = "examples/reduction_maximumclique_to_ilp.rs"
[[example]]
name = "reduction_maximumindependentset_to_ilp"
path = "examples/reduction_maximumindependentset_to_ilp.rs"
[[example]]
name = "reduction_maximumindependentset_to_maximumsetpacking"
path = "examples/reduction_maximumindependentset_to_maximumsetpacking.rs"
[[example]]
name = "reduction_maximumindependentset_to_minimumvertexcover"
path = "examples/reduction_maximumindependentset_to_minimumvertexcover.rs"
[[example]]
name = "reduction_maximumindependentset_to_qubo"
path = "examples/reduction_maximumindependentset_to_qubo.rs"
[[example]]
name = "reduction_maximummatching_to_ilp"
path = "examples/reduction_maximummatching_to_ilp.rs"
[[example]]
name = "reduction_maximummatching_to_maximumsetpacking"
path = "examples/reduction_maximummatching_to_maximumsetpacking.rs"
[[example]]
name = "reduction_maximumsetpacking_to_ilp"
path = "examples/reduction_maximumsetpacking_to_ilp.rs"
[[example]]
name = "reduction_maximumsetpacking_to_qubo"
path = "examples/reduction_maximumsetpacking_to_qubo.rs"
[[example]]
name = "reduction_minimumdominatingset_to_ilp"
path = "examples/reduction_minimumdominatingset_to_ilp.rs"
[[example]]
name = "reduction_minimumsetcovering_to_ilp"
path = "examples/reduction_minimumsetcovering_to_ilp.rs"
[[example]]
name = "reduction_minimumvertexcover_to_ilp"
path = "examples/reduction_minimumvertexcover_to_ilp.rs"
[[example]]
name = "reduction_minimumvertexcover_to_maximumindependentset"
path = "examples/reduction_minimumvertexcover_to_maximumindependentset.rs"
[[example]]
name = "reduction_minimumvertexcover_to_minimumsetcovering"
path = "examples/reduction_minimumvertexcover_to_minimumsetcovering.rs"
[[example]]
name = "reduction_minimumvertexcover_to_qubo"
path = "examples/reduction_minimumvertexcover_to_qubo.rs"
[[example]]
name = "reduction_qubo_to_spinglass"
path = "examples/reduction_qubo_to_spinglass.rs"
[[example]]
name = "reduction_satisfiability_to_kcoloring"
path = "examples/reduction_satisfiability_to_kcoloring.rs"
[[example]]
name = "reduction_satisfiability_to_ksatisfiability"
path = "examples/reduction_satisfiability_to_ksatisfiability.rs"
[[example]]
name = "reduction_satisfiability_to_maximumindependentset"
path = "examples/reduction_satisfiability_to_maximumindependentset.rs"
[[example]]
name = "reduction_satisfiability_to_minimumdominatingset"
path = "examples/reduction_satisfiability_to_minimumdominatingset.rs"
[[example]]
name = "reduction_spinglass_to_maxcut"
path = "examples/reduction_spinglass_to_maxcut.rs"
[[example]]
name = "reduction_spinglass_to_qubo"
path = "examples/reduction_spinglass_to_qubo.rs"
[[example]]
name = "reduction_travelingsalesman_to_ilp"
path = "examples/reduction_travelingsalesman_to_ilp.rs"
[[test]]
name = "main"
path = "tests/main.rs"
[[bench]]
name = "solver_benchmarks"
path = "benches/solver_benchmarks.rs"
harness = false
[dependencies.bitvec]
version = "1.0"
[dependencies.good_lp]
version = "1.8"
features = ["highs"]
optional = true
default-features = false
[dependencies.inventory]
version = "0.3"
[dependencies.num-traits]
version = "0.2"
[dependencies.ordered-float]
version = "5.0"
[dependencies.petgraph]
version = "0.8"
features = ["serde-1"]
[dependencies.problemreductions-macros]
version = "0.2.0"
[dependencies.rand]
version = "0.9"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.proptest]
version = "1.0"
[profile.release]
lto = true