Skip to content

[Model] BottleneckTravelingSalesman #240

@isPANN

Description

@isPANN

name: Problem
about: Propose a new problem type
title: "[Model] BottleneckTravelingSalesman"
labels: model
assignees: ''

Motivation

BOTTLENECK TRAVELING SALESMAN (P100) from Garey & Johnson, A2 ND24. A variant of the classical Traveling Salesman Problem where the objective is to minimize the maximum (bottleneck) edge weight in a Hamiltonian tour rather than minimizing total tour length. NP-complete even when distances are restricted to {1, 2}. It is a target in the reduction from HAMILTONIAN CIRCUIT.

Associated rules:

Definition

Name: BottleneckTravelingSalesman
Canonical name: BOTTLENECK TRAVELING SALESMAN
Reference: Garey & Johnson, Computers and Intractability, A2 ND24

Mathematical definition:

INSTANCE: A weighted graph G = (V, E) with edge weights w: E → ℤ⁺.
OBJECTIVE: Find a Hamiltonian cycle H in G that minimizes the bottleneck (maximum edge weight), i.e., minimize max_{e ∈ H} w(e).

A configuration is a subset S ⊆ E. A configuration is feasible if S forms a Hamiltonian cycle (every vertex has degree exactly 2 in S, and S is connected). The objective value is max_{e ∈ S} w(e) for feasible configurations, and Invalid otherwise.

Variables

  • Count: |E| variables (one per edge in the graph).
  • Per-variable domain: {0, 1} — 1 if the edge is included in the tour, 0 otherwise.
  • Meaning: A feasible assignment selects exactly |V| edges forming a Hamiltonian cycle. The objective value is the maximum weight among the selected edges.

Dims

[2; num_edges] — one binary variable per edge.

Schema (data type)

Type name: BottleneckTravelingSalesman
Variants: none

Field Type Description
graph SimpleGraph The underlying graph G = (V, E)
edge_weights Vec<i32> Edge weights w: E → ℤ⁺

Notes:

  • This is an optimization problem: Metric = SolutionSize<i32>, Direction::Minimize.
  • The objective is max(selected edge weights), not sum — this is what distinguishes it from TravelingSalesman.
  • No type parameters. Graph type and weight type are fixed to SimpleGraph and i32. Variants can be added later if a concrete need arises.

Size fields

Getter Meaning
num_vertices Number of vertices
num_edges Number of edges

Complexity

  • Best known exact algorithm: O(m² · 2^m) via the Held-Karp dynamic programming algorithm (Held & Karp, 1962), adapted for the bottleneck objective by replacing sum with max. Here m = |V| is the number of vertices.
  • Complexity string: "num_vertices^2 * 2^num_vertices"
  • NP-completeness: NP-complete by reduction from HAMILTONIAN CIRCUIT (Garey & Johnson ND24). Remains NP-complete even when all edge weights are in {1, 2}.
  • References:
    • M. Held and R.M. Karp (1962). "A dynamic programming approach to sequencing problems." Journal of the Society for Industrial and Applied Mathematics, 10(1):196–210.
    • P.C. Gilmore and R.E. Gomory (1964). "Sequencing a one state-variable machine: a solvable case of the traveling salesman problem." Operations Research 12, pp. 655–679. (Polynomial special case.)

Extra Remark

Full book text:

INSTANCE: Set C of m cities, distance d(ci,cj) ∈ Z+ for each pair of cities ci,cj ∈ C, positive integer B.
QUESTION: Is there a tour of C whose longest edge is no longer than B, i.e., a permutation <cπ(1),cπ(2),...,cπ(m)> of C such that d(cπ(i),cπ(i+1)) ≤ B for 1 ≤ i < m and such that d(cπ(m),cπ(1)) ≤ B?

Reference: Transformation from HAMILTONIAN CIRCUIT.
Comment: Remains NP-complete even if d(ci,cj) ∈ {1,2} for all ci,cj ∈ C. An important special case that is solvable in polynomial time can be found in [Gilmore and Gomory, 1964].

Note: Garey & Johnson state the decision version. We implement the optimization version (minimize bottleneck), which subsumes the decision problem: a tour with bottleneck ≤ B exists iff the optimal bottleneck is ≤ B.

How to solve

  • It can be solved by (existing) bruteforce — enumerate all subsets of edges, check for valid Hamiltonian cycles, return the one with minimum bottleneck (max edge weight).
  • It can be solved by reducing to integer programming.
  • Other: Held-Karp DP in O(m² · 2^m) time, adapted for bottleneck objective.

Example Instance

Complete graph K₅ on 5 vertices with edge weights:

     0  1  2  3  4
  0: -  5  4  4  5
  1: 5  -  4  1  2
  2: 4  4  -  1  5
  3: 4  1  1  -  4
  4: 5  2  5  4  -

Edge list with weights (lexicographic order):

Edge Weight
(0,1) 5
(0,2) 4
(0,3) 4
(0,4) 5
(1,2) 4
(1,3) 1
(1,4) 2
(2,3) 1
(2,4) 5
(3,4) 4

Search space: 2¹⁰ = 1024 binary configurations, 12 of which are valid Hamiltonian cycles.

Expected Outcome

Optimal tour: 0 → 2 → 1 → 4 → 3 → 0
Selected edges: {(0,2), (0,3), (1,2), (1,4), (3,4)} with weights [4, 4, 4, 2, 4]
Bottleneck (max edge weight): 4
Total weight: 18

This is the unique optimal solution — all 11 other Hamiltonian cycles have bottleneck = 5.

Contrast with standard TSP: The minimum total weight tour is 0 → 2 → 3 → 1 → 4 → 0 with total weight 13 but bottleneck = 5. The BTSP optimal tour "pays" a higher total weight (18 vs 13) to avoid all weight-5 edges, demonstrating the fundamental difference between minimizing the sum vs the maximum.

Bottleneck distribution across all 12 feasible tours:

  • Bottleneck = 4: 1 tour (optimal)
  • Bottleneck = 5: 11 tours (suboptimal)

Metadata

Metadata

Assignees

No one assigned

    Labels

    GoodAn issue passed all checks.modelA model problem to be implemented.

    Type

    No type

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions