Saya bukan ahli teori ilmu komputer, tetapi saya pikir masalah dunia nyata ini ada di sini.
Masalah
Perusahaan saya memiliki beberapa unit di seluruh negeri.
Kami menawarkan kepada karyawan kemungkinan untuk bekerja di unit lain. Tetapi ada syaratnya: Jumlah total pekerja pada suatu unit tidak dapat berubah.
Itu berarti: Kami akan mengizinkan karyawan untuk meninggalkan unitnya jika seseorang menginginkan tempatnya.
Data permintaan contoh (fiktif):
Name Origin Destination
Maria 1 -> 2
Marcos 2 -> 3
Jones 3 -> 4
Terry 4 -> 5
Joe 5 -> 6
Rodrigo 6 -> 1
Barbara 6 -> 1
Marylin 1 -> 4
Brown 4 -> 6
Benjamin 1 -> 3
Lucas 4 -> 1
Di atas, diplot:
Lihat bagaimana kita harus memilih antara opsi merah, biru atau hitam?
Masalah sebenarnya sedikit lebih kompleks, karena kami memiliki 27 unit dan 751 permintaan. Silakan lihat visualisasi
Hasil
Setelah mengumpulkan semua permintaan, bagaimana memuaskan sebagian besar dari mereka?
Aplikasi Teori (?)
Memiliki grafik , biarkan setiap unit menjadi simpul V dan permintaan menjadi ujung terarah E , pertukaran yang berhasil akan mengambil bentuk cyle terarah.
Setiap siklus harus menggunakan hanya sekali ( pekerja tidak dapat meninggalkan unitnya dua kali ), tetapi dapat mengunjungi V beberapa kali ( unit dapat memiliki banyak pekerja yang ingin pergi ).
Pertanyaan
Jika masalah ini dinyatakan sebagai
"Bagaimana menemukan siklus yang, bersama-sama, melibatkan jumlah terbesar tepi yang tidak dibagi dalam grafik yang diarahkan"?
Apakah kita akan memuaskan sebagian besar pemohon?
Itu benar, ada algoritma untuk menemukan set siklus yang optimal?
Akankah pendekatan greddy ini menyelesaikan masalah?
- Temukan siklus terarah terbesar di ;
- Hapus tepi itu dari ;
- Ulangi 1 sampai tidak ada siklus terarah pada ;
Bisakah kamu membantuku?
Apakah Anda tahu cara lain untuk menggambarkan masalah asli (membuat sebagian besar pemohon senang)?
Sunting : departemen diubah ke unit, untuk lebih menggambarkan masalah.