Skip to the content.

TSP Project Architecture

System Overview

graph TB
    subgraph "User Interface"
        A[TSPTest.c]
    end
    
    subgraph "Core Data Structures"
        B[Tour ADT]
        C[Graph ADT]
        D[NamedGraph]
        E[HashMap]
    end
    
    subgraph "Algorithms"
        F[Exact Methods]
        G[Heuristics]
        H[Meta-heuristics]
    end
    
    subgraph "Utilities"
        I[Prim MST]
        J[Blossom]
        K[GraphFactory]
    end
    
    A --> B
    A --> C
    A --> K
    
    D --> C
    D --> E
    
    F --> C
    G --> C
    H --> C
    
    G --> J
    I --> C

Data Flow

sequenceDiagram
    participant User
    participant TSPTest
    participant Factory
    participant Algorithm
    participant Tour
    
    User->>TSPTest: Run test
    TSPTest->>Factory: Create graph
    Factory-->>TSPTest: NamedGraph
    TSPTest->>Algorithm: Solve TSP
    Algorithm->>Tour: Build solution
    Tour-->>TSPTest: Final tour
    TSPTest-->>User: Display results

Module Dependencies

graph LR
    Graph[Graph.c] --> SortedList[SortedList.c]
    NamedGraph[NamedGraph.c] --> Graph
    NamedGraph --> HashMap[HashMap.c]
    
    Exact[Exact/*] --> Graph
    Heuristic[Heuristics/*] --> Graph
    Meta[Meta/*] --> Graph
    
    Christofides[Christofides] --> Blossom[Blossom]
    Christofides[Christofides] --> Graph
    Bounds[LowerBounds/*] --> Prim[Prim_MST]
    
    Test[TSPTest.c] --> Factory[GraphFactory.c]
    Test --> Exact
    Test --> Heuristic
    Test --> Meta

For usage, see README.md