Saya punya masalah dunia nyata yang saya coba wakili dan otomatisasi. Saya telah menyederhanakan dan mengabstraksikannya sebagai berikut:
- Ada n tempat kerja (P1, P2, ..., Pn).
- Setiap tempat, Pn memiliki kunci, Kn.
- Ada m Pekerja, (W1, W2, ..., Wm).
- Untuk dapat bekerja di Pn, seorang pekerja harus memegang Kn.
- Setiap kunci dapat dipegang oleh seorang pekerja, atau ditinggalkan di Exchange, E.
Seorang pekerja dapat melakukan perjalanan ke Bursa kapan saja untuk mengambil beberapa kunci yang tidak diklaim atau menurunkan beberapa kunci untuk digunakan orang lain.
Sekarang, ada jadwal kerja eksogen yang harus diselesaikan dalam urutan yang ketat. Sebagai contoh:
- 2016-04-21 W1 harus bekerja di P6
- 2016-04-21 W2 harus bekerja di P3
- ** diperlukan pertukaran kunci **
- 2016-04-22 W3 harus bekerja di P3
- 2016-04-22 W2 harus bekerja di P6
Sejumlah pekerja mungkin harus bekerja di Pn di beberapa titik dalam jadwal mereka, meskipun tidak pernah pada hari yang sama
Kita tahu:
- Lokasi awal semua kunci, baik dengan pekerja atau di E
- Perintah kerja masa depan yang harus dipenuhi oleh setiap pekerja
Jadi, saya berjuang untuk memodelkan seluruh situasi ini. Dapatkah Anda menyarankan struktur data dan algoritma yang harus saya perhatikan untuk mendapatkan pegangan dan mulai mengoptimalkan perjalanan ke pertukaran untuk setiap pekerja?
Yang ingin saya perkecil adalah jumlah total perjalanan ke E. Tujuan sekunder adalah untuk memastikan bahwa tidak ada pekerja yang melakukan jumlah perjalanan yang tidak proporsional.
Terima kasih sebelumnya!!