ฉันมีปัญหาในโลกแห่งความจริงที่ฉันพยายามเป็นตัวแทนและเป็นอัตโนมัติ ฉันทำให้มันง่ายขึ้นและเป็นนามธรรมลงไปต่อไปนี้:
- มีที่ทำงาน n แห่ง (P1, P2, ... , Pn)
- แต่ละแห่ง Pn มีรหัส Kn
- มีคนงาน m, (W1, W2, ... , Wm)
- ในการทำงานที่ Pn คนงานจะต้องถือ Kn
- แต่ละคีย์สามารถเก็บไว้โดยคนงานหรือปล่อยไว้ที่ Exchange, E
ผู้ปฏิบัติงานสามารถเดินทางไปที่ Exchange ได้ตลอดเวลาเพื่อรับกุญแจที่ไม่มีการอ้างสิทธิ์หรือส่งกุญแจเพื่อให้ผู้อื่นใช้
ขณะนี้มีตารางงานภายนอกที่ต้องทำให้เสร็จในลำดับที่เข้มงวด ตัวอย่างเช่น:
- 2016-04-21 W1 ต้องทำงานที่ P6
- 2016-04-21 W2 ต้องทำงานที่ P3
- ต้องแลกเปลี่ยนกุญแจ **
- 2016-04-22 W3 ต้องทำงานที่ P3
- 2016-04-22 W2 ต้องทำงานที่ P6
จำนวนคนงานใด ๆ อาจต้องทำงานที่ Pn ในบางช่วงเวลาของพวกเขาแม้ว่าจะไม่เคยในวันเดียวกัน
พวกเรารู้:
- ตำแหน่งเริ่มต้นของคีย์ทั้งหมดไม่ว่าจะเป็นกับพนักงานหรือที่ E
- คำสั่งงานในอนาคตที่แต่ละคนจะต้องปฏิบัติตาม
ดังนั้นฉันจึงพยายามดิ้นรนเพื่อจำลองสถานการณ์ทั้งหมดนี้ คุณสามารถแนะนำโครงสร้างข้อมูลและอัลกอริทึมที่ฉันควรดูเพื่อให้เข้าใจและเริ่มปรับการเดินทางเพื่อการแลกเปลี่ยนสำหรับผู้ปฏิบัติงานแต่ละคนได้หรือไม่
สิ่งที่ฉันต้องการลดให้น้อยที่สุดคือจำนวนการเดินทางทั้งหมดไปยังอีเป้าหมายที่สองคือเพื่อให้แน่ใจว่าไม่มีคนงานทำจำนวนการเดินทางที่ไม่สมส่วน
ขอบคุณล่วงหน้า!!