ฉันไม่ได้เป็นนักทฤษฎีวิทยาการคอมพิวเตอร์ แต่คิดว่าปัญหาโลกแห่งความจริงเป็นของที่นี่
ปัญหา
บริษัท ของฉันมีหลายหน่วยงานทั่วประเทศ
เราเสนอให้พนักงานมีความเป็นไปได้ที่จะทำงานในหน่วยงานอื่น แต่มีเงื่อนไข: จำนวนคนงานทั้งหมดในหน่วยไม่สามารถเปลี่ยนแปลงได้
นั่นหมายความว่า: เราจะอนุญาตให้พนักงานออกจากหน่วยของเขาหากมีคนต้องการสถานที่ของเขา
ข้อมูลการร้องขอตัวอย่าง (สมมติ):
Name Origin Destination
Maria 1 -> 2
Marcos 2 -> 3
Jones 3 -> 4
Terry 4 -> 5
Joe 5 -> 6
Rodrigo 6 -> 1
Barbara 6 -> 1
Marylin 1 -> 4
Brown 4 -> 6
Benjamin 1 -> 3
Lucas 4 -> 1
ข้างต้นวางแผน:
ดูว่าเราต้องเลือกระหว่างตัวเลือกสีแดงสีน้ำเงินหรือสีดำอย่างไร
ปัญหาที่แท้จริงนั้นซับซ้อนกว่านี้เล็กน้อยเนื่องจากเรามี 27 ยูนิตและ 751 คำขอ โปรดดูการสร้างภาพข้อมูล
เป้าหมาย
มีการรวบรวมคำขอทั้งหมดวิธีการตอบสนองมากที่สุดของพวกเขา?
แอปพลิเคชันทฤษฎี (?)
มีกราฟให้ทุกหน่วยเป็นจุดยอดและคำร้องขอเป็นขอบกำกับการแลกเปลี่ยนที่ประสบความสำเร็จจะอยู่ในรูปของไคล์กำกับV E
แต่ละรอบจะต้องใช้เพียงครั้งเดียว ( คนงานไม่สามารถออกจากหน่วยของเขาสองครั้ง ) แต่สามารถเยี่ยมชมหลายครั้ง ( หน่วยหนึ่งสามารถมีคนงานจำนวนมากที่ต้องการออก )V
คำถาม
หากปัญหานี้แสดงออกมาเป็น
"วิธีการหารอบที่รวมกันเกี่ยวข้องกับจำนวนมากที่สุดของขอบที่ไม่ใช้ร่วมกันในกราฟกำกับ"?
เราจะตอบสนองผู้ร้องขอส่วนใหญ่หรือไม่?
สิ่งนั้นเป็นความจริงมีอัลกอริธึมที่จะค้นหาชุดของรอบที่เหมาะสมที่สุด
วิธี Greddy นี้จะแก้ปัญหาได้หรือไม่?
- ค้นหาวงรอบกำกับที่ใหญ่ที่สุดใน ;
- ลบขอบมันออกจาก ;
- ทำซ้ำ 1 จนกระทั่งไม่มีรอบกำกับบน ;
คุณสามารถช่วยฉันได้ไหม?
คุณรู้วิธีอื่นในการอธิบายปัญหาต้นฉบับ (ทำให้ผู้ขอใช้บริการส่วนใหญ่มีความสุข)
แก้ไข : เปลี่ยนแผนกเป็นหน่วยเพื่ออธิบายปัญหาได้ดียิ่งขึ้น