Permudah alur kerja Anda: Cari miniwebtool.
Tambahkan
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.

Alat terkait lainnya:

Operasi matematika tingkat lanjut:

Alat unggulan:

Pembuat Grup AcakPengacak DaftarKalkulator Zodiak Matahari, Bulan & Ascendant 🌞🌙✨Kalkulator Kecocokan CintaNama Generator AcakKalkulator UsiaKalkulator Persentase KenaikanKalkulator NumerologiMengurutkan Berdasarkan AbjadKonverter FPSKalkulator Nomor NamaKalkulator Pace LariKonverter Desimal ke BinerPembuat Kode MorseKompresor VideoBerapa Nomor Keberuntungan Saya?Kalkulator Durasi WaktuKalkulator hasil bagi dan sisaGenerator Acak KataKonverter Biner ke DesimalKonverter Lbs ke KgKalkulator OktalUrutkan Angka⏱️ Kalkulator JamKonverter Persen ke PPMkonverter ppm ke persenLooper MP3Pembuat Teka Teki SilangKalkulator TanggaGenerator AnagramPengacak NomorKalkulator FVIFAParafrase AIKompresor GambarKonverter Hex ke DesimalKalkulator ModuloKonverter Ukuran FileKalkulator Hari dalam Tahun - Hari ke Berapa Hari Ini?Generator Kode BatangPemisah AudioSimulator Gerbang LogikaKalkulator Ukuran BanKonverter Desimal ke OktalKalkulator Pengurangan PersenAlat penghitung barisHari Per Bulan📅 Kalkulator TanggalGenerator Teka-Teki Cari KataKonverter DMS ke Derajat DesimalGabungkan VideoKalkulator Deviasi Standar RelatifKalkulator PVIFHapus SpasiKalkulator Membandingkan Pecahan🥧 Pembuat Diagram LingkaranPemilih Nama AcakKalkulator PVIFA Presisi TinggiGenerator Truth or Dare AcakMengacak AngkaPengembang Kalimat AIKalkulator Nilai Anuitas Masa DepanPenggabungan SRTKalkulator Hari KelahiranKonverter Oktal ke BinerGenerator Tabel KebenaranHuruf Kecil Huruf BesarKalkulator Bilangan KompleksKalkulator BinerKalkulator Konversi Skala ModelKonverter Derajat Desimal ke DMSTabel ASCIIKalkulator Jarak Geometri KoordinatKalkulator Notasi IlmiahKalkulator Kemiringan dan KelasPemilih Nomor AcakKalkulator Jumlah DigitKalkulator Jarak TanamKalkulator Rumus EmpirisKonverter Hex ke BinerPenghitung Suku KataGenerator Kartu BingoAntara Dua TanggalKalkulator Angka TakdirKonverter Biner ke HexPembuat HistogramGenerator Nomor LotereKonverter Desimal ke HeksadesimalKalkulator Akar KuadratKalkulator Rasio ParkirPenghitung karakterKonverter Kaki dan Inci ke SentimeterKalkulator KomisiKalkulator Makro - Tentukan Kebutuhan Harian Makronutrien Anda🖱️ Penghitung KlikHapus Nomor BarisHumanizer Teks AIKalkulator Biaya Bahan BakarKalkulator Desimal ke PecahanKalkulator Luas TrapesiumKalkulator Segitiga Jarak Kecepatan WaktuPemecah Soal Laju KerjaPemecah Soal CampuranPemecah Soal Cerita UsiaPemecah Soal Pertemuan KeretaKalkulator HidrasiKalkulator Pace ke KaloriKalkulator Dosis ObatKalkulator Kalori AlkoholKalkulator Rekomposisi TubuhGenerator Topik Debat AcakGenerator Nama Kucing & Anjing AcakGenerator Ayat Alkitab AcakGenerator Soal Matematika AcakGenerator Paragraf AcakGenerator Kalimat Acak Bahasa InggrisKalkulator Kerikil, Pasir dan Tanah AtasKalkulator Berat BajaKalkulator Torsi BautKalkulator Aliran PipaKalkulator Beban BalokKonverter Dolar ke EmasKalkulator Probabilitas OpsiKalkulator Stock SplitKalkulator ESPPKalkulator Denda Keterlambatan FakturKalkulator Tarif Per Jam FreelancerKalkulator Sewa vs BeliPembagi Tip LanjutanGenerator Daftar Barang BawaanKalkulator Jet LagKalkulator Anggaran PerjalananKalkulator Jarak PenerbanganKalkulator Kehilangan PanasKalkulator Biaya Pembangkitan ListrikKalkulator Penggunaan AirKalkulator Biaya Energi Peralatan Rumah TanggaKalkulator Audit Energi RumahKalkulator ROI Tenaga SuryaKalkulator Panel SuryaKalkulator Kompos (Rasio C:N)Kalkulator Pupuk RumputKalkulator Tanggal Embun BekuKalkulator Tanah Bedengan TinggiKalkulator Pupuk NPKKalkulator Tingkat Perkecambahan BenihKalkulator Bitrate VideoTransposer Kunci MusikPenghitung BPM dengan KetukanEstimator Ukuran File FotoKalkulator Megapiksel ke Ukuran CetakKalkulator Faktor CropKalkulator Segitiga EksposurKalkulator Kapasitas Derek KendaraanKalkulator Leasing MobilKalkulator 0–60 dan Seperempat MilKalkulator Waktu Pengisian EVKalkulator Jangkauan EVKalkulator Konsumsi Bahan BakarKonverter Ukuran PakaianReferensi Ukuran KertasKonverter Ukuran CincinKonverter Satuan AstronomiKonverter Efisiensi Bahan BakarKonverter Kecepatan Transfer DataKonverter Torsi (Nm, ft-lb, kgf-cm)Generator Teks CoretVisualisator SpasiKalkulator Waktu MembacaKalkulator Waktu BicaraPenghitung ParagrafPenghitung KalimatKonverter Teks ke Biner/Hex/ASCIIPembuat Gambar Placeholder Lorem PicsumPembuat File .envGit Command GeneratorKonverter Kode Warna Semua FormatGenerator dan Pemeriksa Hash BcryptGenerator JWTCSS Grid GeneratorKalkulator Integrasi NumerikKalkulator Transformasi ZKalkulator Transformasi Fourier Cepat (FFT)Kalkulator Produk TensorKalkulator Eksponensial MatriksKalkulator Bentuk Normal JordanKalkulator Ring dan LapanganKalkulator Orde Teori GrupPemecah Sistem ODEPenyelesai ODE BernoulliKalkulator Metode EulerPlotter Medan Arah / Medan KemiringanPenyelesai ODE Orde KeduaPenyelesai ODE Orde PertamaPemecah Masalah Pernikahan StabilKalkulator Aliran Jaringan (Aliran Maksimum)Pemeriksa Grafik PlanarPemeriksa Jalur HamiltonPemecah Masalah Penjual Keliling (TSP)Pemecah Pemrograman LinearKalkulator Inklusi-EksklusiPenyelesai Relasi RekurensiKalkulator Matriks KetetanggaanKalkulator Pengurutan TopologiKalkulator Pewarnaan GrafPemecah Peta Karnaugh (K-Map)Penyederhana Aljabar BooleanKalkulator Fungsi PartisiKalkulator Akar DigitalPemeriksa Angka FibonacciKalkulator Pecahan MesirKalkulator Fungsi MöbiusVerifikator Konjektur GoldbachPemeriksa Bilangan Prima MersennePencari Prima KembarPemeriksa Bilangan BersahabatPemeriksa Bilangan SempurnaKalkulator Eksponensial ModularKalkulator Permutasi dengan PengulanganKalkulator Ukuran EfekKalkulator Risiko RelatifKalkulator Odds RatioKalkulator Tabel KontingensiKalkulator Uji Pasti FisherKalkulator Korelasi Peringkat SpearmanKalkulator Distribusi BetaKalkulator Distribusi WeibullKalkulator Distribusi EksponensialKalkulator Distribusi GeometrikKalkulator Distribusi Binomial NegatifKalkulator Distribusi HipergeometrikKalkulator Uji F dan Distribusi FKalkulator Teorema BayesKalkulator Polinomial KarakteristikKalkulator Pangkat MatriksKalkulator Dekomposisi CholeskyKalkulator Dekomposisi QRKalkulator Diagonalisasi MatriksKalkulator Aturan CramerKalkulator Ruang KolomKalkulator Ruang NolKalkulator Sudut Antara VektorKalkulator Vektor SatuanKalkulator Magnitudo VektorKalkulator Perkalian Silang VektorKalkulator Perkalian TitikKalkulator Perkalian MatriksKalkulator Matriks InversKalkulator RREF (Bentuk Eselon Baris)Kalkulator Metode NewtonKalkulator Matriks JacobianKalkulator Integral PermukaanKalkulator Integral GarisKalkulator cURLKalkulator DivergensiKalkulator Gradien MultivariabelKalkulator Optimasi KalkulusKalkulator Laju TerkaitKalkulator Laju Perubahan SesaatKalkulator Laju Perubahan Rata-rataKalkulator Jumlah Deret Tak HinggaKalkulator Uji Konvergensi DeretKalkulator Deret PangkatKalkulator Deret MaclaurinKalkulator Aturan L'HôpitalKalkulator Integral Tak WajarKalkulator Aturan SimpsonKalkulator Aturan TrapesiumKalkulator Jumlah RiemannPembuat Grafik Kurva ParametrikKalkulator Permukaan RevolusiKalkulator Volume RevolusiKalkulator Rumus HeronKalkulator Garis Singgung LingkaranKalkulator Garis Bagi SudutKalkulator Lingkaran Dalam (Incircle)Kalkulator Lingkaran Luar (Circumcircle)Kalkulator Jarak Lingkaran BesarKalkulator Jarak 3DKalkulator TorusKalkulator Frustum KerucutKalkulator Luas Poligon Tidak BeraturanKalkulator Poligon BeraturanPengidentifikasi Bagian KerucutKalkulator HiperbolaKalkulator ParabolaKalkulator Ekspansi Teorema BinomialGenerator Segitiga PascalKalkulator Notasi Produk PiKalkulator Notasi Sigma PenjumlahanKalkulator Teorema Akar RasionalKalkulator Aturan Tanda DescartesKalkulator Garis Sejajar dan Tegak LurusKalkulator Persamaan GarisKonverter Bentuk Standar ke Bentuk Slope-InterceptKalkulator Bentuk Titik-KemiringanPemecah Sistem Persamaan NonlinearPenyelesaian Persamaan RasionalPemecah Persamaan LiteralPemecah Persamaan TrigonometriPenyelesai Persamaan EksponensialPemecah Persamaan LogaritmaKalkulator Persamaan KuartikKalkulator Persamaan KubikKalkulator EstimasiKonverter Angka ke PecahanGenerator Hitung LoncatKalkulator Harga SatuanKalkulator Fungsi Ceiling dan FloorKalkulator Nilai AbsolutPencari Pola AngkaGenerator Grafik Nilai TempatKalkulator Urutan Operasi (PEMDAS)Kalkulator Penjumlahan dan Pengurangan BersusunKalkulator Perkalian PanjangGenerator Tabel Perkalian🎮 Konverter Mata Uang Game🎲 Kalkulator Probabilitas Loot Drop🎰 Kalkulator Pity Gacha⚔️ Kalkulator DPS🎮 Konverter Sensitivitas Game❄️ Kalkulator Hari Salju🚚 Kalkulator Biaya Pindahan🔍 Pemeriksa Plagiarisme📷 OCR / Gambar ke Teks📈 Pembuat Grafik Garis📊 Pembuat Grafik Batang🔊 Generator NadaNotepad Online⬛ Kalkulator Rasio Aspek🌍 Kalkulator Jejak Karbon👙 Kalkulator Ukuran Bra💧 Kalkulator Titik Embun🌡️ Kalkulator Indeks Panas🌬️ Kalkulator Angin Dingin⏰ Jam Alarm Online⏰ Kalkulator Kartu Absensi📅 Kalkulator Selisih Tanggal🕐 Konverter Waktu Militer⏱️ Stopwatch Online⏱️ Timer Hitung Mundur🌐 Konverter Zona WaktuKalkulator KarpetKalkulator Dinding PenahanKalkulator Ukuran HVACKalkulator InsulasiKalkulator PavingKalkulator Besi BetonKalkulator KayuKalkulator LuasKalkulator Perkalian SilangKalkulator Ringkasan Lima AngkaKalkulator PersentilKalkulator Distribusi NormalKalkulator Nilai PKalkulator RasioKalkulator Melengkapkan Kuadrat SempurnaKalkulator PembulatanKalkulator Pembagian PanjangPenghitung Karakter Twitter/XPemilih Komentar YouTubeEkstraktor Tag YouTubePengunduh Thumbnail YouTubeKalkulator Penghasilan YouTubeGenerator Karakter RPG Acak