ฉันควรใช้อัลกอริทึมใดในการสร้างคุณลักษณะการกำหนดตารางพนักงานโดยอัตโนมัติ


18

ลองนึกภาพธุรกิจในท้องถิ่นขนาดเล็ก (ในกรณีของฉันคือศูนย์รับเลี้ยงสุนัข) กับพนักงานนอกเวลาไม่กี่โหล เป้าหมายคือการสร้างตารางพนักงานรายสัปดาห์โดยอัตโนมัติ คำถามของฉันเกี่ยวกับอัลกอริทึมวิธีการสำรวจปัญหานี้

มีข้อ จำกัด มากมายที่ต้องจำไว้คือส่วนใหญ่ (1) ความพร้อมของพนักงานและ (2) ความต้องการของแต่ละกะไม่ใช่แค่จำนวนพนักงานสำหรับแต่ละกะ แต่เป็นทักษะที่จำเป็นสำหรับแต่ละกะ (เช่นสำหรับกะที่แน่นอน คุณอาจต้องการคนที่รู้วิธีขับรถเพื่อไปรับสุนัขหรือส่งคนอื่น ๆ บางคนที่รู้วิธีให้สุนัขอาบน้ำ ฯลฯ )

ข้อ จำกัด อื่น ๆ รวมถึงสิ่งต่าง ๆ เช่นการหลีกเลี่ยงหรือต้องการคอมโบของเจ้าหน้าที่ - อาจเป็นเพราะความขัดแย้งทางบุคลิกภาพในมือข้างหนึ่งหรือความต้องการการฝึกอบรมโดยออสโมซิสจากเจ้าหน้าที่อาวุโสไปจนถึงพนักงานระดับจูเนียร์

นอกจากนี้ยังมีการตั้งค่าที่จะต้องพิจารณา พนักงานบางคนชอบตอนเช้าสองวันติดต่อกันแทนที่จะพูดวันจันทร์และวันพฤหัสบดี ฯลฯ เรารู้ว่าเราไม่สามารถรองรับความชอบของทุกคนได้เสมอ ในความเป็นจริงเรามีลำดับขั้นที่พนักงานจะได้รับการเลือกเป็นอันดับแรก

ฉันมีลางสังหรณ์ว่ามีวิธีที่จะลดหรือแสดงปัญหานี้ในอัลกอริทึมที่มีอยู่แล้วที่แก้ไขแล้ว แต่ฉันไม่รู้ว่าอัลกอริทึมใดที่จะสำรวจ อัลกอริทึมเฉพาะที่มีอยู่ใดที่จะมีแนวโน้มมากที่สุด?



3
นอกจากนี้ฉันไม่เคยพบอัลกอริทึมที่ใช้งานได้กับปัญหานี้เกินกว่าข้อ จำกัด ที่ง่ายที่สุดในอดีตที่ผ่านมา "ทำให้ทุกคนอยู่ในตารางโดยไม่สนใจข้อ จำกัด อื่น ๆ แบบสุ่มและปล่อยให้พวกเขาสลับหรือกะตามที่ต้องการ"

4
มีวิธีแก้ไขปัญหาที่สมบูรณ์จากเว็บไซต์ JBoss Drools: optaplanner.org - คุณจำเป็นต้องประมวลผลข้อ จำกัด การจัดกำหนดการเช่นชั่วโมงสูงสุดต่อสัปดาห์เป็นต้น
BobDalgleish

ฉันสงสัยว่านี่จะเทียบเท่ากับปัญหา SAT ซึ่งเป็นที่รู้จักกันว่า NP-complete แต่ไม่ต้องสงสัยเลยว่าอัลกอริทึมที่ดีที่ได้รับผลลัพธ์ที่สมเหตุสมผล
David Conrad

คำตอบ:


16

อัลกอริทึมเช่นการค้นหาในท้องถิ่น ( Tabu Search , การจำลองการอบอ่อน , การตอบรับล่าช้า ) ทำงานได้ดีมากในปัญหาดังกล่าว

ตามที่ Bob แนะนำถ้าคุณทำงานใน Java ลองดูที่OptaPlanner (โอเพ่นซอร์ส) ดูวิดีโอนี้ในrostering พนักงาน


3
คุณสามารถอธิบายอัลกอริทึมหรือเพิ่มลิงก์ไปยังบางแห่งที่ทำได้หรือไม่ หากคุณเพิ่มลิงก์โปรดเพิ่มข้อมูลเล็กน้อยจากหน้าเว็บที่เกี่ยวข้อง
Adam Zuckerman

เสร็จสิ้น หมายเหตุ: หลายสิ่งเหล่านี้อธิบายไว้ในวิกิพีเดียด้วย
Geoffrey De Smet
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.