Saya menghadapi masalah saya tidak yakin bagaimana cara mendekati. Saya harus membuat kalender untuk karyawan, masing-masing dari mereka memiliki batasan kerja tertentu (beberapa pribadi, beberapa umum)
Apa yang saya kerjakan:
- Saya punya Dokter
- Setiap dokter harus bekerja 5 hari / minggu.
- Setiap dokter harus bekerja 1 malam / minggu
- Setiap dokter harus bekerja dalam jumlah malam yang sama dibandingkan dengan dokter lain (atau sedekat mungkin)
- Setiap dokter harus bekerja dalam jumlah yang sama dari malam Kamis dan malam minggu dibandingkan dengan dokter lain (atau sedekat mungkin)
- Beberapa dokter tidak dapat bekerja pada hari / malam tertentu (diinput oleh pengguna)
- Beberapa dokter ingin bekerja pada hari / malam tertentu (diinput oleh pengguna)
- Beberapa dokter ingin tidak bekerja pada hari / malam tertentu (diinput oleh pengguna)
Pengguna yang dimaksud adalah orang yang berurusan dengan kalender, saya mencoba membangun solusi yang secara otomatis akan menghasilkan kalender yang mematuhi semua kendala. Solusinya hanyalah pengaturan besar input "tambah dokter" dan "tambah kendala" untuk setiap dokter, lalu tombol "hasilkan kalender". Ini sangat mendasar bagi pengguna.
Masalahku :
Saya tidak yakin bagaimana membuat perencanaan yang sebenarnya, saya sudah membaca tentang Neural Networks, Genetic Algorithms, dan sebagainya, dan mereka semua tampak semacam solusi yang tepat tetapi juga tidak terlalu.
Ketika saya melihat GA, mereka dibuat untuk menemukan solusi dengan populasi tertentu (masalah saya), tetapi populasi awal harus mematuhi serangkaian kendala yang diberikan, yang kemudian akan dioptimalkan. Dalam hal ini, populasi awal saya sudah menjadi solusinya. Saya tidak perlu "dioptimalkan". Tidak masalah bahwa satu orang bekerja 3 malam Senin berturut-turut, selama itu benar dan orang lain bekerja dengan jumlah yang sama, itu berarti orang lain juga akan bekerja 3 malam Senin di beberapa titik dan tidak masalah. Yang membuat saya berpikir bahwa GA terlalu "maju" untuk saya, karena masalah saya sudah diselesaikan dengan titik awal GA.
Tapi sekali lagi, GA benar-benar terlihat seperti dibuat untuk ini, jadi saya mungkin tidak memahaminya dengan benar?
Ngomong-ngomong, karena saya belum pernah menggunakan GAS (atau jaringan saraf, atau semacamnya), saya ingin memastikan saya akan menggunakan pendekatan yang benar sebelum terlibat dalam kurva pembelajaran seperti itu.
Pertanyaan saya :
Menurut Anda apa pendekatan / algoritma / teknik yang baik untuk masalah seperti masalah saya? Gas? Jaringan saraf? Sesuatu yang sama sekali berbeda?
Saya semua mendengar dan terbuka untuk rincian lebih lanjut jika perlu, tapi saya pikir saya sudah membuat diri saya cukup jelas :)