Permudah alur kerja Anda: Cari miniwebtool.
Tambahkan
Lihat juga
Konverter Oz ke MLGenerator Fraktal L-SystemGenerator LabirinGenerator Spirograph
Beranda > Matematika > Operasi matematika tingkat lanjut > Pemecah Masalah Penjual Keliling (TSP)
 

Pemecah Masalah Penjual Keliling (TSP)

Temukan rute terpendek yang mengunjungi setiap kota tepat satu kali dan kembali ke titik awal. Pemrograman dinamis eksak (Held-Karp) untuk instans kecil dan heuristik tetangga terdekat + 2-opt untuk yang lebih besar. Menerima koordinat atau matriks jarak dan merender tur SVG beranimasi.

Pemecah Masalah Penjual Keliling (TSP)
Baris koordinat: A, 10, 20 atau 10 20. Baris matriks: 0 10 15 20 — satu baris per baris teks, persegi, non-negatif. Maks 40 kota.
Label dipisahkan koma atau spasi, satu per baris matriks. Default ke A, B, C… jika dikosongkan.

Embed Pemecah Masalah Penjual Keliling (TSP) Widget

Tentang Pemecah Masalah Penjual Keliling (TSP)

Pemecah Masalah Penjual Keliling adalah kalkulator praktis dan edukatif untuk masalah klasik Masalah Penjual Keliling (TSP): diberikan sekumpulan kota dan jarak berpasangan, temukan tur terpendek yang mungkin untuk mengunjungi setiap kota tepat satu kali dan kembali ke titik awal. Pemecah ini menerima koordinat planar atau matriks jarak khusus, memilih algoritma terbaik secara otomatis berdasarkan ukuran masalah, dan merender tur yang dihasilkan sebagai peta SVG animasi.

Apa Itu Masalah Penjual Keliling?

Secara formal, diberikan graf berbobot lengkap G = (V, E) dengan himpunan simpul V = {1, 2, ..., n} dan bobot tepi d(i, j), TSP mencari permutasi π dari simpul yang meminimalkan:

minimalkan Σi=1n-1 d(π(i), π(i+1)) + d(π(n), π(1))

Istilah terakhir menutup lingkaran. TSP adalah salah satu masalah tertua dan paling banyak dipelajari dalam optimasi kombinatorial — ini termasuk NP-hard dalam kasus umum, yang berarti tidak ada algoritma yang diketahui dapat menyelesaikan setiap instansi dalam waktu polinomial. Meskipun demikian, masalah ini muncul dalam aplikasi dunia nyata yang tak terhitung jumlahnya: perutean kendaraan, pengeboran PCB, pengurutan DNA, rute pengambilan barang di gudang, jadwal pengamatan astronomi, dan bahkan pengiriman pos pedesaan.

Cara Kerja Pemecah Ini

Pemrograman Dinamis Held–Karp (Tepat)

Untuk instansi kecil (hingga 12 kota), pemecah menghitung tur yang terbukti optimal menggunakan algoritma Held–Karp, yang diterbitkan secara independen oleh Richard Bellman serta Michael Held & Richard Karp pada tahun 1962. Rekurensi utamanya, di mana C(S, j) adalah jalur terpendek dari simpul 1 ke simpul j yang mengunjungi tepat himpunan bagian S:

C(S, j) = mink ∈ S \ {j} [ C(S \ {j}, k) + d(k, j) ]

Biaya tur optimal adalah minj [C({1,...,n}, j) + d(j, 1)]. Held–Karp berjalan dalam waktu O(2n · n²) dan memori O(2n · n) — peningkatan besar dibandingkan brute force n!, tetapi tetap eksponensial. Melewati sekitar 20 kota, jejak memorinya menjadi tidak praktis.

Nearest-Neighbor + 2-opt (Heuristik)

Untuk instansi yang lebih besar, pemecah menggunakan heuristik dua tahap. Pertama, Nearest-Neighbor membangun tur cepat dengan berjalan secara rakus ke kota terdekat yang belum dikunjungi dari setiap simpul awal. Pemecah mencoba banyak simpul awal dan menyimpan tur terbaik. Kemudian pencarian lokal 2-opt meningkatkan tur dengan menghapus dua tepi secara iteratif dan menyambungkan kembali dua jalur yang dihasilkan dengan satu-satunya cara lain yang memungkinkan:

Sebelum: ... a — b ... c — d ... Setelah pertukaran 2-opt: ... a — c ... b — d ... Jika d(a,c) + d(b,d) < d(a,b) + d(c,d) → terima pertukaran, balikkan subtur b..c

Secara geometris, 2-opt menghilangkan setiap "persilangan" dalam tur: setiap dua segmen yang bersilangan selalu dapat dilepas persilangannya untuk total panjang yang lebih pendek. Algoritma berhenti pada optimum lokal di mana tidak ada satu pun pertukaran yang membantu, yang disebut tur 2-optimal. Pada instansi Euclidean yang realistis, 2-opt biasanya menemukan tur dalam 2–5% dari optimum yang sebenarnya dalam hitungan milidetik.

Format Masukan

Mode koordinat (x, y)

Satu kota per baris. Setiap baris adalah label, x, y — label bersifat opsional. Pemecah menghitung jarak Euclidean secara otomatis dan memvisualisasikan kota pada posisi sebenarnya.

A, 10, 20 B, 40, 70 C, 75, 30 Paris: 2.35, 48.86 10 20 ← label otomatis C1

Mode matriks jarak

Matriks persegi n × n dari jarak non-negatif, satu baris per baris teks, nilai dipisahkan oleh spasi atau koma. Matriks dapat berupa simetris atau asimetris — matriks asimetris memodelkan jalan satu arah, harga penerbangan dengan ketersediaan yang bervariasi, dan perjalanan yang bergantung pada angin. Opsional berikan label di bidang Label matriks.

0 10 15 20 10 0 35 25 15 35 0 30 20 25 30 0

Perbandingan Algoritma

Algoritma Kompleksitas waktu Memori Kualitas hasil Ukuran praktis
Brute force O(n!) O(n) Optimal n ≤ 10
Held–Karp DP O(2n · n²) O(2n · n) Optimal n ≤ 20
Nearest-Neighbor O(n²) O(n) ~25% lebih buruk dari optimal n ≤ ribuan
NN + 2-opt O(n² · lintasan) O(n) ~2–5% lebih buruk dari optimal n ≤ ratusan

Cara Menggunakan Pemecah Ini

  1. Pilih mode masukan. Koordinat jika kota Anda memiliki posisi (x, y) yang bermakna; Matriks jarak jika biaya Anda non-Euclidean atau asimetris.
  2. Tempel atau ketik data Anda. Satu kota atau baris per baris teks. Klik tombol contoh cepat di atas formulir untuk mengisi contoh yang valid secara otomatis.
  3. Pilih algoritma. Biarkan pada Otomatis untuk default yang tepat: Held–Karp saat instansi cukup kecil untuk optimalitas yang terbukti, jika tidak gunakan NN + 2-opt. Paksa algoritma tertentu jika Anda ingin membandingkan.
  4. Pilih tertutup atau terbuka. Tur tertutup kembali ke awal — TSP tradisional. Mode jalur terbuka menyelesaikan masalah Jalur Hamiltonian terkait di mana penjual berakhir di kota yang berbeda.
  5. Klik Selesaikan. Halaman hasil menunjukkan total panjang tur, animasi SVG dari rute (klik "Putar ulang animasi" untuk memutarnya kembali), urutan kota lengkap, rincian per tepi, dan matriks jarak dengan tepi tur yang disorot.

Contoh Pengerjaan

Pertimbangkan lima kota — sebuah persegi panjang ditambah sebuah puncak: A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5). Pemecah mengembalikan:

Aplikasi Dunia Nyata

Pertanyaan yang Sering Diajukan

Apa itu Masalah Penjual Keliling?

Masalah Penjual Keliling (TSP) mencari tur terpendek yang mengunjungi setiap kota tepat satu kali dan kembali ke kota awal. Ini adalah salah satu masalah paling terkenal dalam optimasi kombinatorial dan termasuk NP-hard dalam kasus umum, yang berarti tidak ada algoritma yang diketahui dapat menyelesaikan setiap instansi dalam waktu polinomial.

Apa itu algoritma Held–Karp?

Held–Karp adalah algoritma pemrograman dinamis yang menyelesaikan TSP secara tepat dalam waktu O(2n · n²) dan memori O(2n · n). Ini jauh lebih cepat daripada brute force (n faktorial) tetapi tetap eksponensial, sehingga dalam praktiknya hanya digunakan untuk instansi hingga sekitar 20 kota. Pemecah ini menggunakan Held–Karp saat ada 12 kota atau kurang.

Apa itu 2-opt dan mengapa digunakan?

2-opt adalah heuristik pencarian lokal yang berulang kali menghapus dua tepi dari tur saat ini dan menyambungkan kembali dua jalur yang dihasilkan dengan cara lain yang memungkinkan. Ketika tur baru lebih pendek, pertukaran tersebut dipertahankan. 2-opt berjalan dalam waktu polinomial per iterasi dan secara konsisten menemukan tur dalam beberapa persen dari optimal, itulah sebabnya ia menjadi heuristik andalan klasik untuk instansi TSP yang lebih besar.

Kapan saya harus menggunakan koordinat versus matriks jarak?

Gunakan koordinat ketika kota-kota Anda berada di bidang datar dengan jarak garis lurus — misalnya titik di peta, lokasi gudang, atau lubang bor pada papan sirkuit. Gunakan matriks jarak ketika biaya berpasangan bukan Euclidean — misalnya harga tiket pesawat, waktu tempuh dengan lalu lintas, jarak jalan satu arah, atau biaya asimetris. Mode matriks menerima jarak non-negatif apa pun, bahkan yang asimetris.

Apakah solusi 2-opt itu optimal?

Tidak, 2-opt mengembalikan tur 2-optimal, yang berarti tidak ada satu pun pasangan tepi yang dapat ditukar untuk menghasilkan rute yang lebih pendek. Ini adalah optimum lokal dan biasanya dalam beberapa persen dari optimum global pada instansi yang berperilaku baik, tetapi tidak dijamin sebagai yang terbaik secara global. Untuk tur yang terbukti optimal pada instansi kecil, pilih Held–Karp.

Apakah alat ini mendukung matriks jarak asimetris?

Ya. Dalam mode Matriks jarak, Anda dapat memasukkan matriks persegi non-negatif apa pun, termasuk yang asimetris di mana D[i][j] berbeda dari D[j][i]. Held–Karp and 2-opt keduanya menangani matriks asimetris dengan benar. Ini berguna untuk masalah perutean dunia nyata dengan jalan satu arah, lalu lintas, atau biaya penerbangan yang bergantung pada angin.

Bacaan Lebih Lanjut

Kutip konten, halaman, atau alat ini sebagai:

"Pemecah Masalah Penjual Keliling (TSP)" di https://MiniWebtool.com/id/pemecah-masalah-penjual-keliling-tsp/ dari MiniWebtool, https://MiniWebtool.com/

oleh tim miniwebtool. Diperbarui: 21 Apr 2026

Anda juga dapat mencoba Penyelesai Matematika AI GPT kami untuk menyelesaikan masalah matematika Anda melalui pertanyaan dan jawaban dalam bahasa alami.

Operasi matematika tingkat lanjut:

Alat unggulan:

Pembagi Kelompok AcakKalkulator Zodiak Matahari, Bulan & Ascendant 🌞🌙✨Kalkulator Kecocokan CintaKompresor VideoPengacak DaftarNama Generator AcakPengacak NomorKalkulator NumerologiKompres PDFKalkulator UsiaPembuat Teka Teki SilangKalkulator Persentase KenaikanKalkulator Pace LariKonverter Desimal ke BinerBerapa Nomor Keberuntungan Saya?Konverter Biner ke DesimalGenerator Bracket Turnamen AcakKonverter Ukuran FileMengurutkan Berdasarkan AbjadGenerator Acak KataKonverter Desimal ke OktalGabungkan VideoKalkulator Durasi WaktuMengacak AngkaPembuat Kode MorseKonverter FPSGenerator Kartu Remi AcakKonverter DMS ke Derajat DesimalHuruf Kecil Huruf BesarKonverter Persen ke PPMPemilih Nama AcakKalkulator OktalUrutkan AngkaKalkulator Nomor NamaHapus Nomor BarisKonverter Biner ke Oktalkonverter ppm ke persenKalkulator Notasi IlmiahLooper MP3Generator Skema WarnaKalkulator TanggaKalkulator Pengurangan PersenKonverter Oktal ke DesimalGit Command GeneratorGenerator Teks Kecil ⁽ᶜᵒᵖʸ ⁿ ᵖᵃˢᵗᵉ⁾Konverter Oktal ke BinerPembuat Huruf Acak⏱️ Kalkulator JamPencarian ID Pengguna InstagramKalkulator Fahrenheit ke CelsiusKonverter Hex ke DesimalGenerator Kode BatangKalkulator Angka PentingKonverter Lbs ke KgPemisah AudioTabel Periodik InteraktifKalkulator Membandingkan PecahanKalkulator Hari dalam Tahun - Hari ke Berapa Hari Ini?Konverter Angka RomawiKonverter Biner ke HexKonverter Desimal ke HeksadesimalKalkulator Deviasi Standar RelatifHapus SpasiKalkulator Nomor Minggu⏱️ Timer Hitung MundurKalkulator hasil bagi dan sisaGenerator AnagramTeks TerbalikKalkulator Rasio Kompresi MesinKalkulator SinusPanduan Ukuran Gambar Media SosialKalkulator Angka TakdirKalkulator KomisiKalkulator Panjang SabukKalkulator Ukuran Cetak dan Resolusi (DPI/PPI)Generator Nomor LotereKalkulator Defisit KaloriKalkulator Konversi Oktal ke HexadesimalKonverter Cm ke Kaki dan Inci🔍 Pemeriksa PlagiarismePemilih Nomor AcakKalkulator Jumlah DigitKonverter Kaki dan Inci ke SentimeterGenerator Teks TerbalikKalkulator BetonKalkulator Usia KehamilanGenerator Truth or Dare AcakHumanizer Teks AIKalkulator Luas📅 Kalkulator TanggalKalkulator AtapKalkulator Teorema PythagorasKalkulator Persen KesalahanGabungkan PDFKalkulator Golongan DarahKalkulator Kemiringan dan KelasKalkulator Keliling ElipsKalkulator Kode Warna ResistorPembagi GambarPemilih AcakGenerator Kartu Kredit AcakPencarian ID Pengguna Facebook🖱️ Penghitung KlikDaftar Tahun KabisatGenerator PaletKalkulator Bilangan KompleksKalkulator BinerKalkulator PersentaseKalkulator Posisi Matahari⬛ Kalkulator Rasio AspekKalkulator Ukuran SampelKonverter Hex ke OktalParafrase AIPemotong VideoPengembang Kalimat AIKalkulator Hari KelahiranKalkulator Nilai SekarangKalkulator PembulatanKalkulator PerkalianKonverter Hex ke CMYKPemeriksa Nama Pengguna Media SosialPenghitung karakterGenerator Teka-Teki Cari KataKalkulator Faktor PrimaKalkulator IRRKalkulator Penggunaan AirKonverter Basis BilanganKalkulator Pembagian Bersusun PolinomialKalkulator Penjumlahan dan Pengurangan BersusunKonverter Kode Warna Semua FormatKalkulator Pecahan ke DesimalPengubah Suhu Celsius ke FahrenheitGenerator Puisi AIKalkulator Nomor Jalan HidupKalkulator NPVKalkulator Pencahayaan RuanganKalkulator Torsi BautKonverter Hex ke BinerKonverter Kecepatan Transfer DataKonverter Volume🥧 Pembuat Diagram LingkaranPembuat KolasePemangkas VideoPencarian Alamat MACGenerator Pidato Pernikahan AIGenerator Siaran Pers AIGenerator Deskripsi Produk AIGenerator Skrip Video AIGenerator Judul dan Deskripsi YouTube AIGenerator Caption Instagram AIGenerator Judul dan Bio LinkedIn AIGenerator Poin Resume AIGenerator Surat Lamaran Kerja AIGenerator Lirik Rap AIAlat Ratakan PDFBuka Kunci PDF (Hapus Kata Sandi Pemilik)Ekstraktor PDF ke TeksEkstraktor Halaman PDFPenghitung Kata PDFLindungi PDFTambah Nomor Halaman ke PDFSusun Ulang Halaman PDFHapus Halaman PDFPutar PDFJPG ke PDFPDF ke JPGPisahkan PDFKonverter PT ke PXKonverter PX ke REMKonverter Tola ke GramKonverter Satuan Lahan IndiaKonverter Mcg ke MgGenerator Lirik Lagu AIGenerator Cerita AIPenerjemah AIPeringkas Teks AIKonverter Mg ke MlKonverter MPH ke KMH / KMH ke MPHKonverter Knot ke MPHKonverter Meter Kubik ke Kaki KubikKonverter Kaki Kubik ke Yard KubikKonverter Kaki Persegi ke Meter PersegiKonverter Meter Persegi ke Kaki PersegiKonverter Oz ke MLKonverter ML ke OzKonverter Galon ke LiterKonverter Liter ke GalonKonverter Kg ke StoneKonverter Stone ke KgKonverter Inci ke MilimeterKonverter Milimeter ke InciKonverter Mil ke KmKonverter Km ke MilKonverter Fahrenheit ke CelsiusKonverter Celsius ke FahrenheitKalkulator Ukuran RanselKalkulator Volume Papan SelancarKalkulator Ukuran Grip Raket TenisKalkulator Ukuran HelmKalkulator Ukuran Sarung TanganKonverter Ukuran TopiKalkulator Ukuran SnowboardKalkulator Ukuran SkiKalkulator Ukuran SepedaPengatur Waktu Split SpeedrunKalkulator StablefordKalkulator Checkout DartKalkulator Economy BowlingKalkulator Strike Rate KriketKalkulator Net Run RateKalkulator Rasio K/DKalkulator Rating EloKalkulator Pemulihan Detak JantungKalkulator Waktu HikingKalkulator Pace MendayungKalkulator Age-Grading LariKalkulator FTP & Zona DayaKalkulator Beep TestKalkulator Skor ACFTKalkulator Wilks & DOTSKalkulator Offset RodaPencarian Indeks Beban & Rating Kecepatan BanKalkulator Biaya per MilKalkulator Pembelian LeasingKalkulator Campuran OktanKalkulator Campuran Oli 2 TakKalkulator Kapasitas MesinKalkulator Sofa Muat PintuKalkulator Cord Kayu BakarKalkulator CADR Pembersih UdaraKalkulator Ukuran DehumidifierKalkulator Ukuran Kipas Angin Langit-LangitKalkulator Ukuran TiraiKalkulator Ukuran KarpetKalkulator Tinggi Menggantung BingkaiKalkulator Ketinggian Pemasangan TVKalkulator Ukuran TVKalkulator Volume dan Liner KolamKalkulator Garam Kolam RenangKalkulator Volume Kolam RenangKalkulator Ukuran Pemanas AirKalkulator Resin EpoksiKalkulator Jarak BalusterKalkulator Plin & TrimKalkulator Pelapis DindingKalkulator Pewarna DekKalkulator Benih RumputKalkulator Rumput GulungKalkulator AspalKalkulator Yard KubikKalkulator Panjang AntenaKalkulator Pengisian KonduitKalkulator Kapasitor Seri dan ParalelKalkulator Reaktansi InduktifKalkulator Lux ke LumenKonverter Lumen ke WattKalkulator Ukuran GeneratorKonverter mAh ke WhKalkulator Daya 3 FasaKalkulator kVAKalkulator Ampere ke WattKalkulator Watt ke AmpereKalkulator Resistor SeriKalkulator GesekanKalkulator Bidang MiringKalkulator Keuntungan MekanisKalkulator Kecepatan SuaraKalkulator Kecepatan GelombangKalkulator Daya ApungKalkulator Kecepatan TerminalKalkulator Panjang Gelombang de BroglieKalkulator Energi FotonKalkulator E=mc²Kalkulator Dilatasi WaktuKalkulator Hukum Ketiga KeplerKalkulator Kecepatan LepasKalkulator Gaya GravitasiKalkulator Hukum Beer-LambertKalkulator Persamaan NernstKalkulator Tekanan OsmotikKalkulator Kenaikan Titik DidihKalkulator Penurunan Titik BekuKalkulator Komposisi PersenKalkulator NormalitasKalkulator MolalitasKonverter pKa ke KaKalkulator Henderson-HasselbalchKalkulator Hasil TeoretisKalkulator Reaktan PembatasKalkulator Konfigurasi ElektronGenerator Rencana Pembelajaran AIGenerator Kuis AIGenerator Sitasi APA/MLA/ChicagoKalkulator Persentase KehadiranKalkulator Skor APKalkulator Skor ACTKalkulator Skor SATKonverter Persentase ke CGPAKonverter CGPA ke PersentasePenilai Nilai Mudah (EZ Grader)Kalkulator Biaya Membesarkan AnakKalkulator Asupan Susu BayiKalkulator Ukuran PopokGenerator Nama BayiPrediktor Warna Mata BayiKalkulator Persentil BMI AnakPrediksi Tinggi Badan AnakKalkulator Waktu Penggandaan hCGKalkulator Perkiraan Lahir IVFKalkulator ImplantasiPrediktor Jenis Kelamin Bayi CinaPemformat Tanggal ISO 8601Konverter Tanggal JulianKalkulator Tidur SiangMoon Phase CalculatorKalkulator Matahari Terbit & TerbenamJam DuniaKonverter Tanggal ke Angka RomawiHitung Mundur PensiunKalkulator PemulihanKalkulator Setengah Ulang TahunKalkulator Hari JadiKalkulator Pembagian TipKalkulator ROI Email MarketingKalkulator Biaya Per LeadKalkulator Modal KerjaKalkulator Penghasilan YouTubeGenerator Karakter RPG Acak