{"id":23131497,"url":"https://github.com/eusha425/network-topology-optimiser","last_synced_at":"2025-04-04T07:28:08.933Z","repository":{"id":230537039,"uuid":"700187937","full_name":"Eusha425/network-topology-optimiser","owner":"Eusha425","description":"Optimise cellular tower networks with modified MST algorithms (Kruskal's \u0026 Prim's). Includes real-world constraint handling, visualization tools, and support for diverse network configurations.","archived":false,"fork":false,"pushed_at":"2024-11-18T06:59:36.000Z","size":491,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-09T18:36:36.898Z","etag":null,"topics":["c","cell-tower-placement","cellular-network","cost-optimization","graph-theory","kruskal-algorithm","minimum-spanning-tree","network-coverage","network-optimization","prim-algorithm"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Eusha425.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-04T05:48:10.000Z","updated_at":"2024-11-23T10:32:29.000Z","dependencies_parsed_at":"2025-02-09T18:40:25.229Z","dependency_job_id":null,"html_url":"https://github.com/Eusha425/network-topology-optimiser","commit_stats":null,"previous_names":["eusha425/kit-205-assignment-2","eusha425/network-topology-optimiser"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eusha425%2Fnetwork-topology-optimiser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eusha425%2Fnetwork-topology-optimiser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eusha425%2Fnetwork-topology-optimiser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eusha425%2Fnetwork-topology-optimiser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Eusha425","download_url":"https://codeload.github.com/Eusha425/network-topology-optimiser/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247137816,"owners_count":20889929,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cell-tower-placement","cellular-network","cost-optimization","graph-theory","kruskal-algorithm","minimum-spanning-tree","network-coverage","network-optimization","prim-algorithm"],"created_at":"2024-12-17T11:14:01.302Z","updated_at":"2025-04-04T07:28:08.907Z","avatar_url":"https://github.com/Eusha425.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Network Topology Optimiser\n\n![Network Topology Optimiser](https://github.com/Eusha425/network-topology-optimiser/blob/master/assets/comparison.png)\n\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![C](https://img.shields.io/badge/C-74.0%25-blue.svg)](https://en.wikipedia.org/wiki/C_(programming_language))\n[![Python](https://img.shields.io/badge/Python-26.0%25-blue.svg)](https://www.python.org/)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)\n\n*An advanced network optimisation framework implementing modified MST algorithms for cellular tower placement*\n\n[Features](#-features) •\n[Installation](#-installation) •\n[Usage](#-usage) •\n[Documentation](#-project-structure) •\n[Contributing](#-contributing)\n\n\u003c/div\u003e\n\n## 📋 Overview\n\nNetwork Topology Optimiser is a high-performance tool that implements modified versions of Kruskal's and Prim's algorithms to optimise cellular tower networks. The project focuses on handling real-world constraints such as signal interference and operational costs while maintaining optimal network coverage.\n\n### Key Features\n\n- 🚀 **Efficient Implementation**: Optimised MST algorithms for network analysis\n- 🎯 **Dual Optimisation**: Handles both interference and cost constraints\n- 📊 **Visualization Tools**: Python scripts for network topology analysis\n- 🔄 **Flexible Input**: Supports both sparse and dense network configurations\n\n## 🛠️ Prerequisites\n\n- C Compiler (gcc recommended)\n- Python 3.x\n- Python packages:\n  ```bash\n  pip install networkx matplotlib numpy pandas\n  ```\n\n## 🚀 Installation \u0026 Setup\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/Eusha425/network-topology-optimiser.git\n   cd network-topology-optimiser\n   ```\n\n2. **Compile the C code**\n   ```bash\n   gcc -O2 -o optimiser main.c graph.c archive.c\n   ```\n\n3. **Install required Python packages**\n   ```bash\n   pip install networkx matplotlib numpy pandas\n   ```\n\n## 📊 Usage\n\n### Input Format\nThe program expects input in the following format:\n```\n[number_of_vertices]\n[source] [destination] [interference] [cost]\n...\n```\n\n### Running the Program\n\n#### Using Input Redirection (Default Method)\n```bash\n# For dense networks\n./optimiser \u003c input.txt\n\n# For sparse networks\n./optimiser \u003c input_sparse.txt\n```\n\n#### Alternative Method (File Reading)\nIf you prefer direct file reading instead of input redirection, you'll need to modify the C code to implement file reading functionality. The main sections that would need modification are:\n- `main.c`: Add file handling logic\n- `graph.c`: Modify input processing functions\n\n### Generating Test Data\n```bash\npython main_generator.py\n```\n\n### Visualizing Results\n```bash\npython graph_visual.py    # General network visualization\npython kruskal_visual.py  # Kruskal's algorithm results\npython prim_visual.py     # Prim's algorithm results\n```\n\n## 📁 Project Structure\n\n```\nnetwork-topology-optimiser/\n├── src/\n│   ├── main.c              # Main program implementation\n│   ├── graph.c             # Graph implementation and algorithms\n│   ├── graph.h             # Graph header file\n│   └── archive.c           # Archive utility functions\n├── visualization/\n│   ├── graph_visual.py     # Network visualization script\n│   ├── kruskal_visual.py   # Kruskal's algorithm visualization\n│   └── prim_visual.py      # Prim's algorithm visualization\n├── data/\n│   ├── input.txt           # Dense graph dataset\n│   └── input_sparse.txt    # Sparse graph dataset\n└── main_generator.py       # Test data generator\n```\n\n## 📈 Performance Analysis\n\n### Algorithm Comparison\n\n| Network Type | Vertices | Kruskal (ms) | Prim (ms) |\n|-------------|----------|--------------|------------|\n| Sparse      | 1000     | 45          | 89         |\n| Dense       | 1000     | 156         | 78         |\n\n## 🤝 Contributing\n\nWe love your input! We want to make contributing to Network Topology Optimiser as easy and transparent as possible, whether it's:\n\n- Reporting a bug\n- Discussing the current state of the code\n- Submitting a fix\n- Proposing new features\n- Becoming a maintainer\n\nCheck out our [Contributing Guidelines](CONTRIBUTING.md) for ways to get started.\n\nPlease refer to our [Code of Conduct](CONTRIBUTING.md#code-of-conduct) for details on our code of conduct.\n\n## 📜 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feusha425%2Fnetwork-topology-optimiser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feusha425%2Fnetwork-topology-optimiser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feusha425%2Fnetwork-topology-optimiser/lists"}