Coder Social home page Coder Social logo

hbbalamsyah / travelling-salesman-problem-with-ant-colony-algorithm Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 37 KB

Project ini bertujuan untuk mencari jarak terpendek untuk menyelesaikan travelling salesman problem menggunakan Algoritma Koloni Semut

Python 98.45% Shell 1.18% Procfile 0.37%
ant-colony-algorithm ant-colony-optimization python

travelling-salesman-problem-with-ant-colony-algorithm's Introduction

Travelling Salesman Problem With Ant Colony Algorithm

Project ini bertujuan untuk mencari jarak terpendek untuk menyelesaikan travelling salesman problem menggunakan Algoritma Koloni Semut

Optimasi Koloni Semut berasal dari perilaku semut ketika mereka mengangkut makanan dari sumber ke sarang mereka. Mereka menemukan jalur terpendek antara dua titik dengan meninggalkan feromon di sepanjang jalur mereka. Pada awalnya semut menjelajahi banyak jalur untuk mencapai tujuannya, tetapi karena feromon menguap, jalur dengan banyak feromon menunjukkan bahwa semut ada di sana beberapa waktu yang lalu, sehingga jalur ini mungkin lebih pendek dari yang lain. Metode ini dapat diterapkan untuk mencari solusi yang baik untuk Traveling Salesman Problem misalnya yang dikenal dengan NP-hard problem. Seperti ditekankan, itu tidak menyelesaikan masalah dengan menemukan solusi terbaik, (yang dapat diperoleh dengan menggunakan algoritma Held-Karp) tetapi memberikan solusi yang dapat diterima dalam waktu yang dapat diterima (pengguna memperbaiki jumlah iterasi) untuk masalah dimensi besar .

Berikut adalah deskripsi singkat dari algoritma Koloni Semut:

1. Grafik diinisialisasi dengan meninggalkan nilai yang sama dari feromon pada setiap busur (setiap node dari masalah terkait dengan semua node yang tersisa), dan
semut secara acak ditugaskan untuk salah satu simpul. 

2. Pada setiap iterasi, setiap semut menemukan solusi untuk masalah tersebut, dengan melewati setiap node dan kembali ke node awal.

3. Untuk memilih di kota mana semut harus pergi, sebuah probabilitas diberikan ke setiap busur, yang mewakili daya tariknya (kombinasi nilai feromon dan jaraknya).
Busur kemudian dipilih dengan menggambar sampel dari hukum probabilitas ini. 

4. Pada akhir iterasi, pheromone pada setiap busur diperbarui: 
    - beberapa pheromone dihilangkan karena menguap(evaporates)
    - beberapa pheromone ditambahkan, bergantung pada jarak total yang ditempuh oleh setiap semut: semakin kecil jaraknya, semakin besar pheromone yang ditambahkan             di jalurnya . 
    
5. Kriteria penghentian adalah jumlah iterasi (dapat berupa fakta bahwa solusi terbaik tidak berkembang selama n iterasi.

Parameter penting :

  • nilai pheromone yang menguap(evaporates) pada setiap iterasi
  • parameter alpha yang mengontrol pentingnya pheromone selama pemilihan node berikutnya
  • parameter beta yang mengontrol pentingnya jarak busur selama pemilihan yang sama

Menyelesaikan TSP di Indonesia

Saya menggunakan Streamlit untuk membangun visualisasi yang bagus, di mana bisa dengan mudah menentukan parameter dan memeriksa dampak mereka pada solusi. Persyaratan (hanya streamlit untuk saat ini) dapat diinstal dengan pip install -r requirements.txt Kemudian, aplikasi dapat diakses dengan menjalankan streamlit run main.py

Berikut adalah screenshoot yang menunjukkan evolusi feromon pada setiap busur (garis hitam) , jalur terbaik saat ini (berwarna merah) dan konvergensi jarak. 1

travelling-salesman-problem-with-ant-colony-algorithm's People

Contributors

hbbalamsyah avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.