Apakah masalah perjalanan optimal ini di bawah tenggat waktu NP-hard pada pohon?

13

Salah satu teman saya bertanya kepada saya masalah penjadwalan berikut di pohon. Saya menemukan ini sangat bersih dan menarik. Apakah ada referensi untuk itu?

Masalah: Ada pohon , setiap sisi memiliki biaya perjalanan simetris 1 . Untuk setiap simpul v i , ada tugas yang harus dilakukan sebelum batas waktu d i . Tugas ini juga dilambangkan sebagai v i . Setiap tugas memiliki nilai seragam 1. Waktu pemrosesan adalah 0 untuk setiap tugas , yaitu, mengunjungi tugas sebelum batas waktunya sama dengan menyelesaikannya. Tanpa kehilangan keumuman, misalkan v 0 menunjukkan root dan dengan asumsi tidak ada tugas yang terletak di v 0 . Ada kendaraan di v 0T(V,E)vidiviv0v0v0pada saat 0. Selain itu, kami menganggap bahwa untuk setiap vertexdidepi , singkatan kedalaman v i . Ini terbukti dengan sendirinya, simpul dengan tenggat waktu kurang dari kedalamannya harus dianggap sebagai outlier. Masalahnya meminta untuk menemukan penjadwalan yang menyelesaikan tugas sebanyak mungkin.depivi

Kemajuan:

  1. Jika pohon dibatasi untuk jalur, maka pohon itu ada di melalui pemrograman dinamis.P
  2. Jika pohon digeneralisasikan ke grafik, maka itu dalam -complete.NP
  3. Saya memiliki algoritma serakah yang sangat sederhana yang diyakini apporoximation 3-faktor. Saya belum membuktikannya sepenuhnya. Benar sekarang, saya lebih tertarik tentang hasil NP-hard. :-)

Terima kasih atas saranmu.

Peng Zhang
sumber
Pada grafik yang lengkap, tugasnya akan mudah bukan? Cukup gunakan algoritma serakah yang sederhana ...
Joe
@ Jo: Ya. Karena setiap sisi membutuhkan 1 unit perjalanan, sehingga tidak ada preferensi di antara "persimpangan". Apakah Anda masih tertarik dengan masalah ini, jika ya. mungkin kita bisa berbicara melalui email. :-)
Peng Zhang
Bagaimana jika semua tenggat waktu sama dan / atau kami hanya bertanya apakah semua tugas bisa diselesaikan?
domotorp
@domotorp: Jika diminta menyelesaikan semua tugas dengan satu tenggat waktu, jawabannya adalah YA jika dan hanya jika tenggat waktu seragam . Cukup telusuri pencarian pertama. Adapun masalah optimal pada kasus ini d < | V | , Saya tidak tahu apakah itu mudah. Ada banyak varian tentang masalah ini, seperti mempertimbangkan bagaimana jika tenggat waktu mengambil nilai dari himpunan terbatas yang kardinalitasnya konstan? Terima kasih banyak atas komentar Anda. d|V|d<|V|
Peng Zhang
Saya akan mengatakan NP-keras melihat kebun binatang penjadwalan , kecuali jika saya salah mengerti masalah Anda.
Gopi

Jawaban:

1

Tidak yakin ini jawaban Anda (lihat di bawah) tetapi agak terlalu lama untuk komentar.

Saya pikir masalah Anda adalah sesuatu seperti: (P|tree;pi=1|ΣTi) , di mana:

  • adalah singkatan dari prosesor homogen identik,P
  • "Pohon" singkatan dari presedensi membatasi bentuk pohon,
  • berarti bobot tugas sama dengan 1, danpi=1
  • adalah singkatan dari meminimalkan jumlah keterlambatan (yaitu, jumlah tugas yang selesai setelah batas waktu mereka).ΣTi

Jika ini masalahnya, maka masalah Anda adalah NP-hard: Anda dapat melihatnya sebagai generalisasi Meminimalkan keterlambatan total pada satu mesin dengan kendala yang diutamakan . Memang makalah ini menyatakan bahwa untuk beberapa rantai linier, itu NP-keras pada prosesor tunggal. Transformasi yang mudah adalah dengan mengambil pohon dari bentuk satu akar, dan rantai linier mulai dari akar.

Namun saya terkejut karena Anda tampaknya mengatakan bahwa untuk kasus rantai linear tunggal , Anda akan menggunakan Pemrograman Dinamis. Saya tidak mengerti mengapa Anda membutuhkan DP, karena bagi saya kelihatannya ketika menjadwalkan rantai linear tunggal Anda tidak punya banyak pilihan karena kendala diutamakan: hanya satu pilihan. Jadi mungkin saya salah mengerti masalah Anda.

Gopi
sumber
Masalah saya tampaknya berbeda dari masalah Anda. Milik saya adalah, "pohon yang di-root, bepergian satuan biaya waktu, setiap titik dengan tugas dengan tenggat waktu, tugas tidak memerlukan waktu untuk melakukan presesi. Mulai dari root, berapa banyak tugas yang dapat diselesaikan?". Jadi tidak ada prioritas, tidak ada waktu yang dibutuhkan untuk memproses suatu tugas. Terima kasih banyak.
Peng Zhang
@ ChengZhang, Jika itu adalah pohon yang berakar, maka ada prioritasnya? Adapun biaya di tepi (diutamakan?) Atau pada tugas, menurut saya menjadi hal yang sama. Saya benar-benar tidak melihat perbedaan antara keduanya. Terakhir, berapa banyak tugas yang dapat diselesaikan, jika Anda meminimalkan jumlah tugas yang selesai setelah batas waktu, itu setara dengan memaksimalkan jumlah tugas yang dapat diselesaikan. Mungkin Anda bisa menggambar apa yang Anda harapkan?
Gopi
Saya tidak melihat hubungan yang jelas antara dua masalah. Dalam masalah awal, biaya mengunjungi simpul berikutnya tergantung pada simpul mana yang dikunjungi pada langkah sebelumnya. Dalam penjadwalan yang dibatasi oleh prioritas, biaya pekerjaan berikutnya untuk diproses tidak tergantung pada pekerjaan yang diproses pada langkah sebelumnya, selama kendala prioritas di atas terpenuhi.
Yoshio Okamoto
@Opi: biaya tepi tidak dapat "ditransfer" ke node, sejauh yang saya pikirkan. Jika pohon dibatasi untuk jalur (mungkin rantai yang Anda sebutkan), dalam masalah saya, kita dapat pemrograman dinamis sebagai berikut. Biarkan simpul dinomori sebagai dari kiri ke kanan. Misalkan f ( t , l , r ) menunjukkan tugas maksimum dari interval posisi [ l , r ] pada waktu t dan kendaraan berdiri di l . Biarkan g ( t , l , r )1,2,,nf(t,l,r)[l,r]tlg(t,l,r)menunjukkan hal yang sama dengan kecuali kendaraan berdiri di r . Maka kita memiliki f ( t , l , r ) dapat diturunkan dari { f ( , l + 1 , r ) , g ( , l , r - 1 ) . Karena t , l , r adalah polinomial, jadi dp polinomial.f(t,l,r)rf(t,l,r){f(,l+1,r),g(,l,r1)t,l,r
Peng Zhang
@ ChengZhang, ok, saya pikir saya memiliki pemahaman yang lebih baik tentang apa yang Anda maksud. Saya masih percaya orang dapat dengan mudah menyesuaikan kertas yang saya berikan, dengan mempertimbangkan pohon-pohon khusus di mana cabang-cabangnya adalah jalur (karenanya jalur yang berakar).
Gopi
1

Agar ini benar, kita harus membuat beberapa asumsi. Lihat komentar di bawah

Untuk kasus pohon, saya percaya bahwa ada algoritma pemrograman dinamis rekursif waktu polinomial parameter oleh waktu tenggat waktu maksimum. Sub-masalah adalah: jika kita memasukkan sub-pohon saat dan keluar dari sub-pohon saat t b , berapakah jumlah tugas maksimum yang bisa kita selesaikan di sub-pohon? Pelindung dasar pada dedaunan mudah dan kami memo dari bawah ke atas.tatb

Jika kita benar-benar parameter oleh waktu batas waktu maksimum, maka algoritma tidak akan benar-benar polinomial dalam ukuran pohon. Namun, panjang jalur terpanjang yang mengunjungi setiap simpul di pohon hanya polinomial dalam , dan kita tidak perlu memeriksa tenggat waktu lebih dari itu.|V|

Joe
sumber
2
Bisakah Anda menunjukkan kepada saya pengulangan? Saya mencoba yang sama seperti milik Anda sebelumnya, misalkan menyatakan subproblem untuk mengunjungi subtree yang berakar pada vertex a . Namun ada dua masalah. 1. Bagaimana Anda bisa membangun solusi Anda dari sub-masalah? Sejauh yang saya pikirkan, menghitung pemesanan anak-anak tidak bisa dihindari. 2. Anda dapat memasukkan dan meninggalkan simpul beberapa kali. Jadi selama slot waktu [ t , t ] , mungkin Anda mengunjungi simpul lain yang tidak berakar di subtree pada a . Terima kasih banyak. :-)f[a,t,t]a[t,t]a
Peng Zhang
poin (1) tidak menjadi masalah sebanyak poin (2). Agar ide saya berfungsi saat saya pertama kali membayangkannya, ini mengharuskan Anda untuk tidak keluar dan memasukkan kembali sub-pohon beberapa kali. Tidak jelas bahwa solusi terbaik tidak melompat di sekitar pohon: mendapatkan daun, dan sesuatu di dekat akar, dan berjalan ke daun, dan kemudian ke daun lain yang jauh dari 2 lainnya, dll. Anda mungkin bisa untuk mengeksploitasi fakta bahwa Anda akan mendapatkan semua node di jalur apa pun yang Anda jalani. Khususnya jika ada anak yang dikunjungi, maka orang tuanya sudah dikunjungi.
Joe
: Dalam bukuku, poin (1) memang masalah . Untuk poin (2), saya menyebut kendala "tidak memasukkan kembali" sebagai kendala "Kedalaman Pencarian Pertama". Batasan DFS umumnya diadopsi dalam literatur. Dan di bawah kendala itu, masalah saya memang polinomial, selama tingkat maksimum pohon itu konstan . Jadi saya ingin tahu pertanyaan saya NP-hard. Terima kasih banyak.
Peng Zhang
3
Mengenai kendala DFS, mudah untuk membangun contoh di mana urutan optimal melanggar kendala ini. Pertimbangkan pohon biner lengkap, seimbang dengan 7 node. Biarkan 2 daun di subtree kiri memiliki tenggat waktu 2 dan 12, 2 daun di subtree kanan memiliki tenggat waktu 8 dan 6, dan node internal memiliki tenggat waktu 100. Anda dapat mengunjungi semua node dengan mengunjungi dedaunan dalam urutan 2,6,8 , 12; pesanan lain melanggar setidaknya satu tenggat waktu.
mhum
0

Masalah mendapatkan perkiraan konstan untuk kasus ini atau membuktikannya NP-Hard masih terbuka dan hasil apa pun akan membuat publikasi yang baik. Beberapa kasus khusus telah diselesaikan. Saya, bersama dengan yang lain, memiliki beberapa hasil parsial yang menyelesaikan kasus khusus seperti laba-laba, pohon dengan tinggi konstan. Tapi, masalah umum untuk pohon belum terpecahkan.

vgta
sumber