ดัชนี
Optimization
(อินเทอร์เฟซ)DesignShippingNetworkRequest
(ข้อความ)DesignShippingNetworkResponse
(ข้อความ)SolveMathOptModelRequest
(ข้อความ)SolveMathOptModelResponse
(ข้อความ)SolveShiftGenerationRequest
(ข้อความ)SolveShiftGenerationResponse
(ข้อความ)SolveShiftSchedulingRequest
(ข้อความ)SolveShiftSchedulingResponse
(ข้อความ)
การเพิ่มประสิทธิภาพ
One Platform API นำเสนอชุดเครื่องมือแก้ปัญหาการเพิ่มประสิทธิภาพสำหรับปัญหาการวิจัยการดำเนินงานระดับสูง แถบสีเริ่มต้น MOE
DesignShippingNetwork |
---|
แก้ปัญหาการออกแบบเครือข่ายการจัดส่งและกำหนดเวลา (LSNDSP) จาก LSNDSP คือปัญหาการเพิ่มประสิทธิภาพที่ซับซ้อนที่ต้องการค้นหาการออกแบบและการวางกำหนดเวลาที่เหมาะสมของเครือข่ายการจัดส่งเรือเดินสมุทร เป้าหมายคือการลดค่าใช้จ่ายรวมในการดำเนินงานเครือข่าย พร้อมกับตอบสนองความต้องการสินค้าระหว่างพอร์ตให้ได้มากที่สุด LSNDSP สามารถแบ่งออกเป็น 2 ปัญหาหลัก ได้แก่ การออกแบบเครือข่ายและการตั้งเวลา ปัญหาย่อยของการออกแบบเครือข่ายจะกำหนดชุดพอร์ตที่เครือข่ายจะให้บริการ จำนวนเรือที่จะติดตั้งใช้งานในแต่ละเส้นทาง และเส้นทางที่เรือจะใช้งาน ปัญหาย่อยด้านการตั้งเวลาจะกำหนดตารางเวลาเดินเรือ โดยพิจารณาจากเวลาที่ใช้ในการเดินเรือระหว่างท่าเรือ เวลาที่ใช้ในการโหลดและนำสินค้าขึ้นบรรทุกสินค้า และความต้องการในการขนส่งสินค้าระหว่างท่าเรือ กล่าวง่ายๆ ก็คือ LSNDSP คือปัญหาเรื่องการตัดสินใจว่าจะให้บริการท่าเรือใด จำนวนเรือที่จะใช้ และวิธีกำหนดเวลาจัดส่ง เพื่อให้สามารถลดค่าใช้จ่ายในการดำเนินงานเครือข่ายลงไปพร้อมกับเพิ่มรายได้สูงสุดสำหรับการตอบสนองความต้องการสินค้า องค์ประกอบย่อยที่ท้าทายของ LSNDSP คือเส้นทางการส่งสินค้า ซึ่งกำหนดความต้องการที่จะตอบสนอง และเส้นทางที่จะมอบหมายให้กับการขนส่งสินค้าเพื่อเพิ่มรายได้สูงสุด |
SolveMathOptModel |
---|
แก้โมเดลอินพุตและแสดงผลลัพธ์พร้อมกัน ใช้ตัวเลือกนี้เมื่อคุณไม่ต้องการการเรียกกลับ ส่วนเพิ่ม และไม่จำเป็นต้องติดตามความคืบหน้าของการแก้ปัญหา |
SolveShiftGeneration |
---|
แก้ปัญหาการสร้างกะการทำงานจาก |
SolveShiftScheduling |
---|
แก้ไขปัญหาการจัดตารางเวลาแบบกะทันหันจาก |
DesignShippingNetworkRequest
คำขอนี้มีอินสแตนซ์ของ LSNDSP และต้องมีชุดพอร์ต ชุดผู้สมัครขา ชุดประเภทเรือ และชุดสินค้าโภคภัณฑ์ที่จะบรรลุผล
ช่อง | |
---|---|
request_id |
ปัญหาหรือ ID คำขอ |
solver_parameters |
พารามิเตอร์สําหรับเครื่องมือแก้โจทย์ |
ports[] |
รายการพอร์ตที่เป็นไปได้ที่จะเรียกใช้ในบริการเรือ คำขอต้องมีรหัสพอร์ตที่อยู่ในรายการนี้เท่านั้น |
leg_candidates[] |
รายชื่อผู้สมัครรับเลือกตั้งที่อาจได้เพิ่มลงในบริการเรือ คำขอต้องมีเฉพาะรหัสผู้สมัครขาที่อยู่ในรายการนี้ |
vessel_classes[] |
รายชื่อประเภทเรือที่ให้บริการเดินเรือ โปรดทราบว่าเรือทั้งหมดจากประเภทเดียวกันนั้นใช้สลับสับเปลี่ยนกันได้โดยสิ้นเชิง คำขอต้องมีเฉพาะรหัสคลาสเรือที่อยู่ในรายการนี้ |
commodity_demands[] |
รายการความต้องการสินค้าโภคภัณฑ์ (เช่น ตู้คอนเทนเนอร์) ที่บริการเรือจะดำเนินการให้สำเร็จ |
vessel_services[] |
คุณระบุเครือข่ายบริการเรือที่ใช้ได้ (โดยทั่วไปจะเป็นสถานะปัจจุบันของเครือข่าย) เพื่อใช้เป็นจุดเริ่มต้นในการเพิ่มประสิทธิภาพได้ |
DesignShippingNetworkResponse
การตอบกลับจะเก็บโซลูชันของอินสแตนซ์ LSNDSP ที่ส่งในคำขอ เครือข่ายนี้ประกอบด้วยเครือข่ายบริการเรือและบริการเส้นทางความต้องการสินค้าโภคภัณฑ์ที่ถูกต้อง ความต้องการสินค้าโภคภัณฑ์ทั้งหมดที่เดินทางผ่านแต่ละขาจะต้องไม่เกินความจุของชั้นของเรือที่ให้บริการขนส่งลำนี้ โปรดทราบว่าการไม่มีบริการเรือที่ไม่มีความต้องการทางเรือเป็นวิธีแก้ปัญหาด้านการออกแบบเครือข่ายการจัดส่งและการจัดตารางเวลาที่เป็นไปได้เสมอ
ช่อง | |
---|---|
request_id |
รหัสของคำขอที่เชื่อมโยงกับคำตอบนี้ |
vessel_services[] |
เครือข่ายการให้บริการเรือ สำหรับประเภทเรือแต่ละชั้น จำนวนเรือทั้งหมดที่ใช้ต้องไม่เกินจำนวนเรือที่พร้อมให้บริการสำหรับชั้นนั้นๆ |
commodity_demand_paths[] |
รายการเส้นทางของความต้องการสินค้าโภคภัณฑ์ทั้งหมดที่จัดส่งอุปสงค์โภคภัณฑ์เชิงบวก โปรดทราบว่าอาจไม่มีรหัสดีมานด์สินค้าโภคภัณฑ์บางรหัสหากไม่มีการจัดส่งดีมานด์ หรือจะตอบสนองความต้องการสินค้าโภคภัณฑ์เพียงบางส่วนก็ได้ สำหรับความต้องการสินค้าโภคภัณฑ์แต่ละรายการ จำนวนที่ดำเนินการทั้งหมดต้องไม่เกินความต้องการทั้งหมด สุดท้าย commodity_demand_paths จะขึ้นอยู่ vessel_services (ดูคำจำกัดความของ CommodityDemandPath) |
SolveMathOptModelRequest
ขอการแก้โจทย์จากทางไกลแบบเอกภาคใน MathOpt
ช่อง | |
---|---|
solver_type |
ไม่บังคับ ประเภทเครื่องมือแก้โจทย์เพื่อแก้โจทย์เชิงตัวเลข โปรดทราบว่าหากเครื่องมือแก้ไขไม่รองรับฟีเจอร์หนึ่งๆ ในโมเดล ขั้นตอนการเพิ่มประสิทธิภาพจะไม่สำเร็จ |
model |
ต้องระบุ การนำเสนอทางคณิตศาสตร์ของโจทย์การเพิ่มประสิทธิภาพที่จะแก้ |
parameters |
ไม่บังคับ พารามิเตอร์สำหรับควบคุมการแก้โจทย์เพียงครั้งเดียว มีการจัดการพารามิเตอร์enable_output มาโดยเฉพาะ สําหรับเครื่องมือแก้โจทย์ที่รองรับ Callback ของข้อความ การตั้งค่าเป็นจริงจะทำให้เซิร์ฟเวอร์ลงทะเบียน Callback ของข้อความ ข้อความที่ได้จะถูกส่งคืนใน SolveMathOptModelResponse.messages สำหรับเครื่องมือแก้โจทย์อื่นๆ การตั้งค่า enabled_output เป็น true จะทำให้เกิดข้อผิดพลาด |
model_parameters |
ไม่บังคับ พารามิเตอร์ที่จะควบคุมการแก้โจทย์เดี่ยวๆ ที่มีเฉพาะในโมเดลอินพุต (ดู SolveParametersProto สำหรับพารามิเตอร์อิสระของโมเดล) |
SolveMathOptModelResponse
การตอบสนองสําหรับการแก้ปัญหาจากระยะไกลแบบเอกภาคใน MathOpt
ช่อง | |
---|---|
result |
คำอธิบายเอาต์พุตของการแก้โจทย์โมเดลในคำขอ |
messages[] |
ถ้าใช้ SolveParametersProto.enable_output พารามิเตอร์นี้จะมีข้อความบันทึกสำหรับโปรแกรมแก้โจทย์ที่รองรับ Callback ของข้อความ |
SolveShiftGenerationRequest
คำขอสำหรับการแก้ปัญหาการสร้างกะ กฎสำหรับการสร้างการเปลี่ยนแปลงจะมีระบุไว้ใน ShiftTemplate แต่ละรายการ การเปลี่ยนแปลงหลายรายการในคำตอบสามารถสร้างจาก ShiftTemplate เดียวได้ กะงานที่สร้างและเลือกโดยเครื่องมือแก้โจทย์ต้องเป็นไปตามกฎที่ระบุไว้ใน ShiftTemplate และครอบคลุมความต้องการของพนักงานที่ระบุ
ช่อง | |
---|---|
solver_config |
ไม่บังคับ พารามิเตอร์สําหรับเครื่องมือแก้โจทย์ |
shift_templates[] |
ต้องระบุ ชุดของเทมเพลตกะที่ระบุกฎสำหรับการสร้างกะ |
employee_demands[] |
ต้องระบุ ความต้องการของพนักงานทั้งหมดสำหรับการเปลี่ยนแปลงที่ |
SolveShiftGenerationResponse
การตอบสนองสำหรับปัญหาการสร้างกะ หาก solution_status
แสดงผลเป็น SOLVED
ชุดของการเปลี่ยนแปลงที่ถูกต้องซึ่งเครื่องมือแก้โจทย์จะถูกแสดงผลใน employee_schedules
พร็อพเพอร์ตี้ต่อไปนี้จะมีการคงไว้ชั่วคราวเพื่อให้กำหนดเวลากะที่ถูกต้อง
- การปรับแต่ละครั้งที่สร้างใน
employee_schedules
จะเป็นไปตามกฎที่ระบุไว้ในShiftTemplate
ที่เกี่ยวข้อง - แต่ละเหตุการณ์ที่เลือกไว้ในแต่ละกะจะเป็นไปตามกฎที่ระบุไว้ใน
ShiftTemplate.Event
ที่เกี่ยวข้อง - จำนวนพนักงานทั้งหมดที่มอบหมายให้กับชุดกะที่สร้างจาก ShiftTemplate เดียวกันไม่เกิน
maximum_employee_count
ของเทมเพลตนั้น - กลุ่มพนักงานที่ได้รับมอบหมายจะครอบคลุมความต้องการในทุกช่วงเวลา
ช่อง | |
---|---|
solution_status |
สถานะของโซลูชันที่ส่งคืน หาก |
employee_schedules[] |
ชุดกะการทำงานที่เกิดขึ้นจากเครื่องมือแก้โจทย์ควบคู่กับจำนวนพนักงานที่มอบหมายให้กับแต่ละกำหนดการ |
demand_coverage_violations[] |
การละเมิดความครอบคลุมของดีมานด์ซึ่งอิงตาม |
SolveShiftSchedulingRequest
คำขอ API การกำหนดเวลาทำงาน อย่างน้อยที่สุด คำขอจะระบุชุดพนักงาน ชุดกะ ชุดบทบาทที่เป็นไปได้ที่พนักงานสามารถทำได้ และชุดข้อกำหนดความคุ้มครอง ข้อกำหนดความครอบคลุมจะระบุจำนวนพนักงานที่จำเป็นต้องปฏิบัติในแต่ละบทบาทในช่วงระยะเวลาหนึ่ง พนักงานที่ได้รับเลือกในกะเดียวกันจะได้รับมอบหมายเพียง 1 บทบาท (เพียงบทบาทเดียว) สำหรับกะนั้น และพนักงานไม่สามารถมอบหมายให้มี 2 กะที่ทับซ้อนกันได้ โปรดดูSolveShiftSchedulingResponse
ด้านล่างเพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับสิทธิ์ที่ได้รับมอบหมายเป็นกะ
รวมทั้งยังระบุข้อจำกัดอื่นๆ ด้านเวลาสำหรับพนักงานแต่ละคนเพื่อจำกัดปัญหาเพิ่มเติมได้ ข้อจำกัดทางกำหนดเวลาทั้งหมดและข้อกำหนดการครอบคลุมจะได้รับการจัดระดับความสำคัญ (ต้องจัด สูง ปานกลาง ต่ำ) เครื่องมือแก้โจทย์ต้องเป็นไปตามข้อจำกัดทั้งหมดที่มีระดับความสำคัญเป็น PRIORITY_MANDATORY
เครื่องมือแก้โจทย์อาจละเมิดข้อจำกัดที่มีลำดับความสำคัญอื่นๆ ได้ แต่การละเมิดเหล่านี้จะลดลงตามลำดับความสำคัญ ดูค่าแจกแจง Priority
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีจัดการระดับความสำคัญสำหรับแต่ละข้อจำกัด
เครื่องมือแก้โจทย์จะพยายามเพิ่มค่า ShiftPreference.preference
ให้ได้สูงสุดสำหรับพนักงานแต่ละคนตามข้อจำกัดที่ระบุ เครื่องมือแก้โจทย์จะไม่ละเมิดข้อจำกัดเพื่อให้ได้ผลลัพธ์ที่ต้องการมากขึ้น แต่จะละเมิดข้อจำกัดเฉพาะเมื่อการกำหนดการจัดตารางเวลาทำไม่ได้ภายใต้ข้อจำกัดที่ระบุ
หมายเหตุเกี่ยวกับเวลา: เวลาทั้งหมดที่มีปัญหาจะระบุโดยใช้ข้อความ DateTime ข้อความนี้มีช่องเขตเวลา ระบบจะถือว่าเขตเวลาเป็น UTC เว้นแต่ผู้ใช้จะระบุไว้เป็นอย่างอื่น ควรระบุข้อความ DateTime เป็นนาทีเท่านั้น และจะไม่สนใจวินาทีและนาโนทั้งหมด
ช่อง | |
---|---|
request_id |
ปัญหาหรือ ID คำขอ |
solve_parameters |
พารามิเตอร์สำหรับควบคุมการแก้โจทย์ปัญหาเดียว |
employees[] |
พนักงานทุกคนว่างจะต้องกำหนดเวลา |
shifts[] |
กะทั้งหมดเพื่อสร้างกำหนดเวลา |
coverage_requirements[] |
ข้อกําหนดด้านความครอบคลุมสําหรับขอบเขตการวางแผนทั้งหมด ซึ่งระบุจำนวนพนักงานที่ต้องดำเนินการแต่ละบทบาทหรือมีทักษะในระหว่างกรอบเวลาหรือรายการรหัสกะ ต้องระบุข้อกำหนดการครอบคลุมทั้งหมดด้วยกรอบเวลาหรือรายการรหัสกะ (ไม่ใช่ทั้ง 2 รหัส) กรอบเวลา (หากให้ไว้) สำหรับข้อกำหนดความครอบคลุมต้องไม่ทับซ้อนกันสำหรับแต่ละสถานที่ตั้งที่ระบุ ระดับความสำคัญเริ่มต้นสำหรับแต่ละข้อจำกัดเหล่านี้คือ |
role_ids[] |
รายการบทบาทที่เป็นไปได้ทั้งหมดของพนักงาน พนักงานแต่ละคนต้องมีอย่างน้อย 1 บทบาทที่สามารถมอบหมายให้กะได้ บทบาทหมายถึงงานที่มอบหมายระหว่างกะ (เช่น พยาบาลวิชาชีพ เชฟ บริกร ฯลฯ) เมื่อพนักงานได้รับมอบหมายเป็นกะ พนักงานเหล่านั้นจะได้รับมอบหมายให้มีบทบาทใดบทบาทหนึ่งโดยเฉพาะ |
skill_ids[] |
รายการทักษะที่เป็นไปได้ทั้งหมดของพนักงาน ทักษะหมายถึงคุณสมบัติเพิ่มเติมที่พนักงานอาจมีซึ่งไม่เกี่ยวข้องกับงานที่ได้รับมอบหมายที่เฉพาะเจาะจง (เช่น การรับรอง ภาษาที่พูด ฯลฯ) รายการนี้อาจว่างเปล่า เมื่อพนักงานได้รับมอบหมายให้ทำงาน พนักงานจะต้องปฏิบัติตามทักษะทั้งหมดที่จำเป็นสำหรับกะงานนั้น |
location_ids[] |
รายการสถานที่ที่เป็นไปได้ทั้งหมดสำหรับชุดกะงานในกำหนดการ รายการนี้อาจว่างเปล่า การระบุสถานที่ที่ต่างกันอาจมีประโยชน์ในกรณีอย่างเช่น ผู้จัดการพยาบาลต้องการกำหนดเวลานัดหมายพยาบาลหลายคนในแผนกต่างๆ ของโรงพยาบาล หรืออีกตัวอย่างหนึ่งคือผู้จัดการโรงแรมต้องการกำหนดเวลาสำหรับพนักงานของโรงแรมหลายแห่ง |
budget_requirements[] |
ข้อกำหนดเกี่ยวกับงบประมาณสำหรับปัญหาการกำหนดเวลา ระดับความสำคัญเริ่มต้นสำหรับแต่ละข้อกำหนดเหล่านี้คือ |
assignments_hint[] |
เปลี่ยนงานที่จะใช้เป็นวิธีแก้ปัญหาชั่วคราว (หรือที่เรียกอีกอย่างว่า "คำแนะนำโซลูชัน") ให้กับโจทย์กำหนดเวลา ระบบจะไม่สนใจคําแนะนําเกี่ยวกับงาน หากงานขัดแย้งกับกะงานที่มอบหมายไม่ได้หรือคําขอการกำหนดเวลา |
SolveShiftSchedulingResponse
การตอบกลับสำหรับ API การกำหนดเวลาทำงาน สำหรับคำตอบแต่ละรายการ shift_assignments
จะว่างเปล่าหาก solution_status
ที่แสดงผลเป็น NOT_SOLVED_DEADLINE_EXCEEDED
หรือ INFEASIBLE
หาก solution_status
แสดงผลเป็น OPTIMAL
หรือ FEASIBLE
งาน shift ที่ถูกต้องจะส่งกลับมาใน shift_assignments
สำหรับการกำหนดกะที่ถูกต้อง พร็อพเพอร์ตี้ต่อไปนี้จะมีการเก็บรักษา
- รหัสพนักงานแต่ละรหัสจะอยู่ในกลุ่มพนักงานที่ระบุไว้ในคำขอ
- รหัสบทบาทแต่ละรายการที่มอบหมายให้กับพนักงานจะอยู่ในชุดรหัสบทบาทของพนักงานนั้นๆ
- รหัส Shift แต่ละรายการจะอยู่ในชุดกะที่ระบุไว้ในคําขอ
- รหัสกะการทำงานแต่ละรายการไม่ใช่รหัสกะการทำงานที่พนักงานแต่ละคนมอบหมายไม่ได้
- พนักงานจะไม่ถูกกำหนดให้ทำงาน 2 กะที่ทับซ้อนกัน
- สำหรับกำหนดการที่ระบุ ไม่ละเมิดข้อจำกัดหรือคำขอที่มีลำดับความสำคัญ
PRIORITY_MANDATORY
ช่อง | |
---|---|
request_id |
รหัสของคำขอที่เชื่อมโยงกับคำตอบนี้ |
solution_status |
สถานะของโซลูชันที่ส่งคืน หากโซลูชันนั้น "เป็นไปได้ยาก" หรือ "เหมาะสมที่สุด" ฟิลด์อื่นๆ ในโปรโตนี้อาจว่างเปล่า หากสถานะเป็น NOT_SOLVED_DEADLINE_EXCEEDED แสดงว่าหมดเวลาแล้วโดยที่ไม่พบวิธีแก้ปัญหาที่เป็นไปได้หรือพิจารณาว่ามีโซลูชันที่เป็นไปได้หรือไม่ คำขออาจไม่สามารถทำได้หากไม่สามารถทำตามข้อจำกัดของระดับความสำคัญ "MANDATORY" ได้ทั้งหมด |
shift_assignments[] |
รายการงานทั้งหมด |
status_message |
หาก |