Assignment Problem
แอปพลิเคชันนี้ใช้คำนวณหาคำตอบของ assignment problem โดยใช้ Hungarian algorithm
ตัวอย่างของปัญหาลักษณะนี้ เช่น เราต้องการจ้างคนงานสามคนเพื่อทำงานสามอย่าง โดยคนงานทั้งสามคนสามารถทำงานได้ทั้งสามอย่างแต่ค่าจ้างต่างกัน และตารางข้างล่างนี้แสดงค่าจ้างของคนงานแต่ละคนสำหรับงานทั้งสาม
ค่าจ้างงานที่ 1 | ค่าจ้างงานที่ 2 | ค่าจ้างงานที่ 3 | |
---|---|---|---|
คนงานที่ 1 | 85 | 58 | 41 |
คนงานที่ 2 | 54 | 82 | 95 |
คนงานที่ 3 | 92 | 72 | 98 |
เราต้องการรู้ว่าจะจ้างใครทำงานอะไรเพื่อให้มีค่าใช้จ่ายน้อยที่สุด หรืออีกกรณีหนึ่งคือ สมมติว่าตารางข้างบนแสดงผลกำไรที่เกิดจากหุ่นยนต์สามตัวทำงานสามอย่าง เราอยากจะรู้ว่าจะให้หุ่นยนต์ไหนทำงานอะไรเพื่อให้มีกำไรมากที่สุด
ข้อมูลอินพุท
ข้อมูลอินพุทมีอยู่สองส่วน
ส่วนแรกเหมือนตัวอย่างตารางข้างบน เรียกว่าเมตริกซ์กำหนดราคา $C$
ซึ่งเป็นเมตริกซ์ขนาด $n\times n$
ของจำนวนเต็มบวกหรือศูนย์ โดย $C_{ij}$ แทนราคาของการจ้างคนงานที่ $i$ ทำงานที่ $j$ ดูรายละเอียดการใส่ข้อมูลเมตริกซ์ได้ที่
ข้อมูลเมตริกซ์
ส่วนที่สองของข้อมูลอินพุทเป็น min หรือ max ขึ้นอยู่กับว่าเราต้องการค่าน้อยที่สุดหรือค่ามากที่สุดจาก assignment problem นี้