Repository navigation
🧩 Constraint Solving POTD:Problem of the Day: Chinese Postman Problem #65572
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Constraint Solving — Problem of the Day. A newer discussion is available at Discussion #65835. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Problem Statement
The Chinese Postman Problem (CPP) asks: Given an undirected weighted graph representing a road network, find the shortest closed walk that traverses every edge at least once.
In other words, a postman must deliver mail to every street in a city (represented as edges in a graph) and return to the starting point. Unlike the Traveling Salesman Problem, which visits cities (nodes), the postman must traverse streets (edges). If all streets form an Eulerian circuit (all nodes have even degree), a solution uses each edge exactly once. Otherwise, some edges must be traversed more than once.
Concrete Instance
Consider a small town with 5 intersections connected as follows:
Input & Output
G = (V, E)with edge weightsw: E → R+Why It Matters
Urban Planning & Waste Management: Garbage collection vehicles must service every street in a district. Route planners use CPP to minimize fuel and time.
Network Maintenance: Utility inspectors must inspect every cable, pipe, or transmission line. CPP ensures no infrastructure is overlooked and costs are minimized.
Postal & Delivery Services: The problem is named for the Chinese postman problem—an iconic application where mail carriers must cover all streets.
Street Sweeping & Snow Removal: Municipalities use CPP to plan sweeping or snow-removal routes, ensuring full coverage with minimal redundancy.
Modeling Approaches
Approach 1: Graph Augmentation + Eulerian Path (Combinatorial)
Paradigm: Network flow / matching on auxiliary graphs
The key insight: if all vertices have even degree, an Eulerian circuit exists covering each edge exactly once. For vertices with odd degree, we must find a minimum-weight perfect matching on odd-degree vertices and duplicate edges along matching paths.
Model:
G.Decision variables: Matching edges in the auxiliary graph.
Constraints:
Trade-offs:
Approach 2: Integer Linear Programming (ILP)
Paradigm: Mixed-Integer Linear Programming
Model CPP as finding a set of edges to duplicate such that the augmented graph is Eulerian.
Model:
Trade-offs:
Example Model (MiniZinc)
Key Techniques
1. Matching on Odd-Degree Vertices
Edmonds' blossom algorithm (or its variants) finds a minimum-weight perfect matching on the odd-degree vertices in polynomial time. This is the bottleneck in the combinatorial approach—once the matching is known, augmenting the graph and finding an Eulerian tour is straightforward.
2. Degree-Balance Constraints
In the ILP approach, ensuring every vertex has even degree in the augmented graph is the critical constraint. Efficient propagation exploits the fact that this is a global, linear constraint.
3. Symmetry Breaking
In some variants (e.g., directed CPP), multiple optimal tours may exist. Symmetry-breaking constraints or tie-breaking rules stabilize solutions—for example, preferring solutions that use lexicographically smaller edge duplication sets.
Challenge Corner
Open Question: How would you modify the CPP model to handle the Chinese Postman Problem with Required Vertices? In this variant, the postman must also visit (pass through) a specific set of required vertices, not just traverse edges. How would you blend edge-coverage and vertex-visit constraints? Can you still use the matching-based approach, or does the problem become fundamentally different?
References
All reactions