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 0pada saat 0. Selain itu, kami menganggap bahwa untuk setiap vertex , 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.
Kemajuan:
- Jika pohon dibatasi untuk jalur, maka pohon itu ada di melalui pemrograman dinamis.
- Jika pohon digeneralisasikan ke grafik, maka itu dalam -complete.
- 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.
sumber
Jawaban:
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:
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.
sumber
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.ta tb
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|
sumber
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.
sumber