Algoritma untuk Knapsack dua dan tiga dimensi

8

Saya tahu bahwa masalah Knapsack 2D dan 3D adalah NPC, tetapi apakah ada cara untuk menyelesaikannya dalam waktu yang wajar jika instansnya tidak terlalu rumit? Akankah pemrograman dinamis bekerja?

Dengan 2D (3D) Knapsack Maksudku, aku punya kotak (kubus) dan aku punya daftar objek, semua data dalam sentimeter dan paling banyak 20m.

Anonim
sumber
1
Bentuk apa yang dimiliki benda Anda? Seberapa besar area di sekitarnya; sudahkah ukurannya dibatasi?
Raphael
Apakah Anda mencari pemecah yang tepat atau apakah heuristik cukup?
Stefan
1
Bisakah kamu lebih spesifik? Apa itu "ukuran", dan apa itu ? Apa tepatnya adalah masukan Anda, apa tepatnya kendala Anda, dan apa tepatnya yang Anda coba untuk mengoptimalkan? m
JeffE
1
Juga, apa yang sudah Anda coba?
JeffE
4
Masalah yang Anda bicarakan tidak secara umum disebut sebagai masalah ransel; itu biasanya terjadi dengan nama bin-packing problem , dan Anda seharusnya dapat menemukan lebih banyak informasi tentangnya dengan nama itu.
Steven Stadnicki

Jawaban:

1

Knapsack dapat diselesaikan dengan pemrograman dinamis dalam pseudo-polynomial time dengan jumlah objek dan ukuran knapsack. Jadi, selama wadah Anda kecil (secara numerik), Anda dapat menyelesaikan masalah secara efisien. Perhatikan bahwa Anda dapat menyesuaikan dengan mengubah resolusi; tidak perlu mengukur wadah pengiriman ke µm, tetapi meter mungkin kasar (tergantung pada objek Anda).O(nW)nWW

Knapsack juga dapat didekati secara sewenang-wenang dengan baik dalam waktu polinomial (lihat skema aproksimasi waktu polinomial ).

Namun, Knapsack hanya mempertimbangkan nomor pas ke nomor lain; tidak peduli tentang geometri. Jika Anda perlu "puzzle", Anda perlu masalah lain; mempertimbangkan Tetris, ini mungkin jauh lebih sulit daripada Knapsack .

Raphael
sumber
0

Keserakahan akan selalu menemukan solusi yang masuk akal, tetapi belum tentu yang optimal. Sederhananya objek terbesar yang akan pas setiap kali di ransel. Berhenti ketika tidak ada lagi benda yang cocok.

salsaman
sumber
Tidak, itu tidak benar. Perhatikan bahwa dalam masalah Knapsack, objek memiliki nilai juga. Mengisi dengan rakus berdasarkan ukuran dapat menghasilkan solusi buruk yang sewenang-wenang.
Raphael
@ Raphael: Yah, tidak semena-mena buruk, tapi saya tidak akan menganggap solusi serakah solusi yang masuk akal . Pendekatan serakah semakin buruk untuk analog dimensi yang lebih tinggi.
A.Schulz
@ A.Schulz Sebenarnya ya sewenang-wenang buruk! Heuristik rakus untuk ransel, baik menggunakan ukuran atau bang-for-buck dapat dengan mudah terbukti tidak memiliki jaminan pendekatan terbatas untuk OPT.
Aaron
Orang-orang ... tolong berhenti berkata, "Yah, saya tidak tahu tentang itu! Tapi ..." sebelum melakukan % # $ Anda ( pekerjaan rumah!
MickLH