Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
212 changes: 0 additions & 212 deletions docs/paper/reductions.typ

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion docs/src/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ Registered problems: 50 types, 59 reductions, 69 variant nodes
ExactCoverBy3Sets * X3C O(2^universe_size)
Factoring * 2 O(exp((m + n)^0.3333333333333333 * log(m + n)^0.6666666666666666))
FlowShopScheduling * O(factorial(num_jobs))
GraphPartitioning/SimpleGraph * O(2^num_vertices)
HamiltonianPath/SimpleGraph * O(1.657^num_vertices)
ILP/bool * 2 O(2^num_vars)
ILP/i32 O(num_vars^num_vars)
Expand Down
1 change: 0 additions & 1 deletion problemreductions-cli/src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,6 @@ Flags by problem type:
KClique --graph, --k
MinimumMultiwayCut --graph, --terminals, --edge-weights
PartitionIntoTriangles --graph
GraphPartitioning --graph
GeneralizedHex --graph, --source, --sink
IntegralFlowWithMultipliers --arcs, --capacities, --source, --sink, --multipliers, --requirement
MinimumCutIntoBoundedSets --graph, --edge-weights, --source, --sink, --size-bound
Expand Down
39 changes: 2 additions & 37 deletions problemreductions-cli/src/commands/create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ use problemreductions::models::algebraic::{
};
use problemreductions::models::formula::Quantifier;
use problemreductions::models::graph::{
DisjointConnectingPaths, GeneralizedHex, GraphPartitioning, HamiltonianCircuit,
HamiltonianPath, IntegralFlowBundles, LengthBoundedDisjointPaths, LongestCircuit, LongestPath,
DisjointConnectingPaths, GeneralizedHex, HamiltonianCircuit, HamiltonianPath,
IntegralFlowBundles, LengthBoundedDisjointPaths, LongestCircuit, LongestPath,
MinimumCutIntoBoundedSets, MinimumDummyActivitiesPert, MinimumMultiwayCut, MixedChinesePostman,
MultipleChoiceBranching, PathConstrainedNetworkFlow, RootedTreeArrangement, SteinerTree,
SteinerTreeInGraphs, StrongConnectivityAugmentation,
Expand Down Expand Up @@ -537,7 +537,6 @@ fn example_for(canonical: &str, graph_type: Option<&str>) -> &'static str {
_ => "--graph 0-1,1-2,2-3 --weights 1,1,1,1",
},
"KClique" => "--graph 0-1,0-2,1-3,2-3,2-4,3-4 --k 3",
"GraphPartitioning" => "--graph 0-1,1-2,2-3,0-2,1-3,0-3",
"GeneralizedHex" => "--graph 0-1,0-2,0-3,1-4,2-4,3-4,4-5 --source 0 --sink 5",
"IntegralFlowBundles" => {
"--arcs \"0>1,0>2,1>3,2>3,1>2,2>1\" --bundles \"0,1;2,5;3,4\" --bundle-capacities 1,1,1 --source 0 --sink 3 --requirement 1 --num-vertices 4"
Expand Down Expand Up @@ -1135,19 +1134,6 @@ pub fn create(args: &CreateArgs, out: &OutputConfig) -> Result<()> {
(data, resolved_variant.clone())
}

// Graph partitioning (graph only, no weights)
"GraphPartitioning" => {
let (graph, _) = parse_graph(args).map_err(|e| {
anyhow::anyhow!(
"{e}\n\nUsage: pred create GraphPartitioning --graph 0-1,1-2,2-3,0-2,1-3,0-3"
)
})?;
(
ser(GraphPartitioning::new(graph))?,
resolved_variant.clone(),
)
}

// Generalized Hex (graph + source + sink)
"GeneralizedHex" => {
let usage =
Expand Down Expand Up @@ -5905,27 +5891,6 @@ fn create_random(
)
}

// GraphPartitioning (graph only, no weights; requires even vertex count)
"GraphPartitioning" => {
let num_vertices = if num_vertices % 2 != 0 {
eprintln!(
"Warning: GraphPartitioning requires even vertex count; rounding {} up to {}",
num_vertices,
num_vertices + 1
);
num_vertices + 1
} else {
num_vertices
};
let edge_prob = args.edge_prob.unwrap_or(0.5);
if !(0.0..=1.0).contains(&edge_prob) {
bail!("--edge-prob must be between 0.0 and 1.0");
}
let graph = util::create_random_graph(num_vertices, edge_prob, args.seed);
let variant = variant_map(&[("graph", "SimpleGraph")]);
(ser(GraphPartitioning::new(graph))?, variant)
}

// Hamiltonian Circuit (graph only, no weights)
"HamiltonianCircuit" => {
let edge_prob = args.edge_prob.unwrap_or(0.5);
Expand Down
8 changes: 4 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ pub mod prelude {
AcyclicPartition, BalancedCompleteBipartiteSubgraph, BicliqueCover,
BiconnectivityAugmentation, BottleneckTravelingSalesman, BoundedComponentSpanningForest,
DirectedTwoCommodityIntegralFlow, DisjointConnectingPaths, GeneralizedHex,
GraphPartitioning, HamiltonianCircuit, HamiltonianPath, IntegralFlowBundles,
IntegralFlowHomologousArcs, IntegralFlowWithMultipliers, IsomorphicSpanningTree, KClique,
KthBestSpanningTree, LengthBoundedDisjointPaths, LongestPath, MixedChinesePostman,
SpinGlass, SteinerTree, StrongConnectivityAugmentation, SubgraphIsomorphism,
HamiltonianCircuit, HamiltonianPath, IntegralFlowBundles, IntegralFlowHomologousArcs,
IntegralFlowWithMultipliers, IsomorphicSpanningTree, KClique, KthBestSpanningTree,
LengthBoundedDisjointPaths, LongestPath, MixedChinesePostman, SpinGlass, SteinerTree,
StrongConnectivityAugmentation, SubgraphIsomorphism,
};
pub use crate::models::graph::{
KColoring, LongestCircuit, MaxCut, MaximalIS, MaximumClique, MaximumIndependentSet,
Expand Down
161 changes: 0 additions & 161 deletions src/models/graph/graph_partitioning.rs

This file was deleted.

2 changes: 1 addition & 1 deletion src/models/graph/max_cut.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ inventory::submit! {
ProblemSchemaEntry {
name: "MaxCut",
display_name: "Max Cut",
aliases: &[],
aliases: &["GraphPartitioning"],
dimensions: &[
VariantDimension::new("graph", "SimpleGraph", &["SimpleGraph"]),
VariantDimension::new("weight", "i32", &["i32"]),
Expand Down
4 changes: 0 additions & 4 deletions src/models/graph/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
//! - [`MinimumFeedbackVertexSet`]: Minimum weight feedback vertex set in a directed graph
//! - [`MaximumClique`]: Maximum weight clique
//! - [`MaxCut`]: Maximum cut on weighted graphs
//! - [`GraphPartitioning`]: Minimum bisection (balanced graph partitioning)
//! - [`MinimumCutIntoBoundedSets`]: Minimum cut into bounded sets (Garey & Johnson ND17)
//! - [`MinimumDummyActivitiesPert`]: Minimum dummy activities in activity-on-arc PERT networks
//! - [`HamiltonianCircuit`]: Hamiltonian circuit (decision problem)
Expand Down Expand Up @@ -64,7 +63,6 @@ pub(crate) mod bounded_component_spanning_forest;
pub(crate) mod directed_two_commodity_integral_flow;
pub(crate) mod disjoint_connecting_paths;
pub(crate) mod generalized_hex;
pub(crate) mod graph_partitioning;
pub(crate) mod hamiltonian_circuit;
pub(crate) mod hamiltonian_path;
pub(crate) mod integral_flow_bundles;
Expand Down Expand Up @@ -120,7 +118,6 @@ pub use bounded_component_spanning_forest::BoundedComponentSpanningForest;
pub use directed_two_commodity_integral_flow::DirectedTwoCommodityIntegralFlow;
pub use disjoint_connecting_paths::DisjointConnectingPaths;
pub use generalized_hex::GeneralizedHex;
pub use graph_partitioning::GraphPartitioning;
pub use hamiltonian_circuit::HamiltonianCircuit;
pub use hamiltonian_path::HamiltonianPath;
pub use integral_flow_bundles::IntegralFlowBundles;
Expand Down Expand Up @@ -218,7 +215,6 @@ pub(crate) fn canonical_model_example_specs() -> Vec<crate::example_db::specs::M
specs.extend(undirected_two_commodity_integral_flow::canonical_model_example_specs());
specs.extend(strong_connectivity_augmentation::canonical_model_example_specs());
specs.extend(rural_postman::canonical_model_example_specs());
specs.extend(graph_partitioning::canonical_model_example_specs());
specs.extend(integral_flow_homologous_arcs::canonical_model_example_specs());
specs.extend(minimum_feedback_arc_set::canonical_model_example_specs());
specs.extend(optimal_linear_arrangement::canonical_model_example_specs());
Expand Down
4 changes: 2 additions & 2 deletions src/models/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ pub use formula::{
pub use graph::{
AcyclicPartition, BalancedCompleteBipartiteSubgraph, BicliqueCover, BiconnectivityAugmentation,
BottleneckTravelingSalesman, BoundedComponentSpanningForest, DirectedTwoCommodityIntegralFlow,
DisjointConnectingPaths, GeneralizedHex, GraphPartitioning, HamiltonianCircuit,
HamiltonianPath, IntegralFlowBundles, IntegralFlowHomologousArcs, IntegralFlowWithMultipliers,
DisjointConnectingPaths, GeneralizedHex, HamiltonianCircuit, HamiltonianPath,
IntegralFlowBundles, IntegralFlowHomologousArcs, IntegralFlowWithMultipliers,
IsomorphicSpanningTree, KClique, KColoring, KthBestSpanningTree, LengthBoundedDisjointPaths,
LongestCircuit, LongestPath, MaxCut, MaximalIS, MaximumClique, MaximumIndependentSet,
MaximumMatching, MinMaxMulticenter, MinimumCutIntoBoundedSets, MinimumDominatingSet,
Expand Down
Loading
Loading