Project of Course - Graph Theory (EE6622E) in National Cheng Kung University.
# Clone
$ git clone --recursive https://github.com/kevinbird61/chinese-postman-problem.git
# Build the library first
$ cd fake-mininet/ && make lib && cd ..
# Copy the libfakemn.a to root
$ cp fake-mininet/libfakemn.a .
# Build the code
$ make
# Run
$ ./main.out
- Graph (Edge, Vertex) - chapter 1
- Distance - chapter 2
- Matching - chapter 3
- Connectivities - chapter 4
- Dijkstra
- Eulerian circuit
- If current graph is Eulerian ?
- Yes: Find one of Eularian path/trail (shortest path) can solve chinese postman problem.
- No: Goto next phase.
- If not Eulerian:
- Find all
odd
degree points, then using these points into acomplete graph
. - Mapping those
new
edges of complete graph back to origin graph. (It will be some new edges) - Now we have Eulerian, back to Step 1.
- Find all
- After finding an Eulerian path/trail, if there have any
new
edges in this path/trail, then replace it with an alternative path in original graph. (Usingfake-mininet
API to give thesenew
edges a "tag", and if detect this special tag, then replace it with an alternative.)