นิพจน์ข้อจำกัดและข้อจำกัดของตารางในแบบจำลองการจัดโครงแบบผลิตภัณฑ์
บทความนี้อธิบายการใช้ข้อจำกัดนิพจน์และข้อจำกัดตาราง ข้อจำกัดถูกใช้ในการควบคุมค่าแอททริบิวต์ที่คุณสามารถเลือกได้เมื่อคุณจัดโครงแบบผลิตภัณฑ์สำหรับใบสั่งขาย ใบเสนอราคาขาย ใบสั่งซื้อ หรือใบสั่งผลิต คุณสามารถใช้ข้อจำกัดนิพจน์หรือข้อจำกัดตาราง ขึ้นอยู่กับวิธีที่คุณต้องการสร้างข้อจำกัด
ข้อจำกัดถูกใช้ในการควบคุมค่าแอททริบิวต์ที่คุณสามารถเลือกได้เมื่อคุณจัดโครงแบบผลิตภัณฑ์สำหรับใบสั่งขาย ใบเสนอราคาขาย ใบสั่งซื้อ หรือใบสั่งผลิต คุณสามารถใช้นิพจน์ข้อจำกัดหรือข้อจำกัดตาราง ขึ้นอยู่กับว่าคุณต้องการสร้างข้อจำกัดอย่างไร
ข้อจำกัดนิพจน์คืออะไร
ข้อจำกัดนิพจน์จะถูกกำหนดลักษณะตามนิพจน์ที่ใช้ฟังก์ชันและตัวดำเนินการคณิตศาสตร์และบูลีน มีการบันทึกข้อจำกัดนิพจน์สำหรับส่วนประกอบเฉพาะในแบบจำลองการจัดโครงแบบผลิตภัณฑ์ ไม่สามารถนำมาใช้ใหม่หรือใช้ร่วมกับส่วนประกอบอื่น อย่างไรก็ตาม ข้อจำกัดนิพจน์สำหรับส่วนประกอบสามารถอ้างอิงแอททริบิวต์ของส่วนประกอบย่อยของส่วนประกอบ
ข้อจำกัดของตารางคืออะไร
ข้อจำกัดตารางแสดงชุดของค่าที่อนุญาตสำหรับแอททริบิวต์เมื่อคุณจัดโครงแบบผลิตภัณฑ์ สามารถใช้คำนิยามข้อจำกัดตารางโดยทั่วไป เมื่อคุณสร้างข้อจำกัดตารางสำหรับองค์ประกอบในแบบจำลองการจัดโครงแบบผลิตภัณฑ์ คุณเลือกคำนิยามข้อจำกัดตาราง เพื่อสร้างชุดข้อมูลที่ได้รับอนุญาต เพิ่มแอททริบิวต์ของชนิดเฉพาะกับส่วนประกอบต่าง ๆ แอททริบิวต์แต่ละชนิดมีค่าระบุไว้
ตัวอย่างข้อจำกัดตาราง
ตัวอย่างนี้แสดงว่าคุณสามารถจำกัดการตั้งค่าคอนฟิกของลำโพงเพื่อเสร็จสิ้นการ cabinet เฉพาะและ fronts ตารางแรกแสดง cabinet เสร็จสิ้นและ fronts ที่พร้อมใช้งานสำหรับการตั้งค่าคอนฟิกโดยทั่วไป ค่ากำหนดไว้สำหรับชนิดของแอททริบิวต์ Cabinet เสร็จสิ้นและ grill หน้า
ชนิดของแอททริบิวต์ | ค่า |
---|---|
cabinet เสร็จสิ้น | สีดำ ไม้โอ้ค Rosewood สีขาว |
Grill หน้า | สีดำ โลหะ สีขาว |
ตารางถัดไปแสดงชุดข้อมูลที่กำหนดโดยข้อจำกัดตาราง สีและเสร็จสิ้น โดยการใช้ข้อจำกัดตารางนี้ คุณสามารถตั้งค่าคอนฟิกลำโพงที่มีไม้โอ้คเสร็จสิ้น และ grill เป็นสีดำ Rosewood เสร็จสิ้น และ grill เป็นสีขาว และอื่น ๆ
เสร็จสิ้น | Grill |
---|---|
ไม้โอ้ค | สีดำ |
โรสวูด | สีขาว |
สีขาว | สีดำ |
สีขาว | สีขาว |
สีดำ | สีดำ |
สีดำ | โลหะ |
คุณสามารถสร้างข้อจำกัดตารางการที่กำหนดโดยระบบและโดยผู้ใช้ ดูข้อมูลเพิ่มเติม ข้อจำกัดตารางที่ระบบกำหนดและกำหนดผู้ใช้
ไวยากรณ์ใดควรใช้ในการบันทึกข้อจำกัด
คุณต้องใช้ไวยากรณ์ Optimization Modeling Language (OML) เมื่อคุณเขียนข้อจำกัด ระบบใช้โปรแกรมแก้ปัญหาข้อจำกัด Microsoft Solver Foundation เพื่อแก้ไขข้อจำกัด
ฉันควรใช้ข้อจำกัดตารางหรือข้อจำกัดนิพจน์
คุณสามารถใช้ทั้งนิพจน์ข้อจำกัดหรือข้อจำกัดตาราง ขึ้นอยู่กับว่าคุณต้องการสร้างข้อจำกัดอย่างไร คุณสร้างข้อจำกัดตารางเป็นเมทริกซ์ ในขณะที่ข้อจำกัดนิพจน์เป็นคำสั่งแต่ละรายการ เมื่อคุณจัดโครงแบบผลิตภัณฑ์ ไม่สำคัญว่าจะใช้ชนิดของข้อจำกัดใด ตัวอย่างต่อไปนี้จะแสดงความแตกต่างของสองวิธี
เมื่อคุณจัดโครงแบบผลิตภัณฑ์โดยใช้การตั้งค่าข้อจำกัดต่อไปนี้ ชุดข้อมูลเหล่านี้ได้รับอนุญาต:
- ผลิตภัณฑ์สีดำ และขนาด 30 หรือ 50
- ผลิตภัณฑ์สีแดง และขนาด 20
การตั้งค่าข้อจำกัดตาราง
สี | ขนาด |
---|---|
สีดำ | 30 |
สีดำ | 50 |
สีแดง | 20 |
การตั้งค่าข้อจำกัดนิพจน์
(สี == "ดำ" & (ขนาด == "30" | ขนาด == "50")) | (สี == "แดง" & ขนาด = "20")
ฉันควรใช้ตัวดำเนินการ หรือ infix สัญลักษณ์เมื่อฉันเขียนข้อจำกัดนิพจน์หรือไม่
คุณสามารถเขียนข้อจำกัดนิพจน์ โดยใช้ทั้งตัวดำเนินการคำนำหน้าที่พร้อมใช้งาน หรือ สัญลักษณ์ infix สำหรับการดำเนินการ Min, Max และ Absคุณไม่สามารถใช้สัญลักษณ์ infix ได้ ตัวดำเนินการเหล่านี้จะรวมเป็นตัวดำเนินการมาตรฐานในภาษาการเขียนโปรแกรมส่วนใหญ่
ตัวดำเนินการและสัญลักษณ์ infix ใดที่ฉันสามารถใช้เขียนข้อจำกัดนิพจน์
ตารางต่อไปนี้แสดงรายการตัวดำเนินการและสัญลักษณ์ infix ที่คุณสามารถใช้เมื่อคุณเขียนข้อจำกัดนิพจน์สำหรับส่วนประกอบในแบบจำลองการตั้งค่าคอนฟิกผลิตภัณฑ์ ในตัวอย่างในตารางแรกนี้ แสดงวิธีการเขียนนิพจน์โดยใช้สัญลักษณ์ infix หรือตัวดำเนินการ
ผู้ปฏิบัติงาน | คำอธิบาย | ไวยากรณ์ | ตัวอย่างเช่น |
---|---|---|---|
บ่งชี้ | ถ้าเงื่อนไข a เป็นจริง ให้ใช้ข้อจำกัด b | บ่งชี้[a, b], infix: a -: b |
|
และ | จะเป็นจริงหากเงื่อนไขทั้งหมดเป็นจริง ถ้าหมายเลขของเงื่อนไขเป็น 0 (ศูนย์) จะให้ผล จริง | และ[args], infix: a & b & ... & z |
|
หรือ | จะเป็นจริงหากเงื่อนไขใดๆ เป็นจริง ถ้าหมายเลขของเงื่อนไขเป็น 0 (ศูนย์) จะให้ผล เท็จ | หรือ[args], infix: a | b | ... | z |
|
บวก | คือผลรวมเงื่อนไข ถ้าหมายเลขของเงื่อนไขเป็น 0 (ศูนย์) จะให้ผล 0 | บวก[args], infix: a + b + ... + z |
|
ลบ | ปฏิเสธอาร์กิวเมนต์ ต้องมีเพียงหนึ่งเงื่อนไขที่ตรงทุกประการ | ลบ[expr], infix: -expr |
|
Abs | นำค่าสัมบูรณ์ของเงื่อนไข ต้องมีเพียงหนึ่งเงื่อนไขที่ตรงทุกประการ | Abs[expr] | ตัวดำเนินการ: Abs[x] |
เวลา | นำผลิตภัณฑ์ของเงื่อนไข ถ้าหมายเลขของเงื่อนไขเป็น 0 (ศูนย์) จะให้ผล 1 | เวลา[args], infix: a * b * ... * z |
|
กำลัง | นำเลขชี้กำลัง มีเลขยกกำลังจากขวาไปซ้าย (หรืออีกนัยหนึ่งคือ การเชื่อมโยงสิทธิ์) ดังนั้น Power[a, b, c] เทียบเท่ากับ Power[a, Power[b, c]] กำลัง สามารถใช้ได้เมื่อการยกกำลังมีค่าเป็นค่าบวกเท่านั้น | กำลัง[args], infix: a ^ b ^ ... ^ z |
|
สูงสุด | ก่อให้เกิดเงื่อนไขใหญ่ที่สุด ถ้าหมายเลขของเงื่อนไขเป็น 0 (ศูนย์) จะให้ผล อนันต์ | สูงสุด[args] | ตัวดำเนินการ: ค่าสูงสุด[x, y, 2] == z |
ต่ำสุด | ก่อให้เกิดเงื่อนไขเล็กที่สุด ถ้าหมายเลขของเงื่อนไขเป็น 0 (ศูนย์) จะให้ผล อนันต์ | ต่ำสุด[args] | ตัวดำเนินการ: ค่าต่ำสุด[x, y, 2] == z |
ไม่ใช่ | ก่อให้เกิดตัวผกผันทางตรรกะของเงื่อนไข ต้องมีเพียงหนึ่งเงื่อนไขที่ตรงทุกประการ | ไม่[expr], infix: !expr |
|
ตัวอย่างในตารางถัดไปแสดงวิธีการเขียนสัญลักษณ์ Infix
Infix สัญลักษณ์ | คำอธิบาย |
---|---|
x + y + z | การเพิ่มขึ้น |
x * y * z | คูณ |
x - y | การลบเลขฐานสองถูกแปลเหมือนกับการเพิ่มเลขฐานสองเมื่อมีวินาทีที่ปฏิเสธ |
x ^ y ^ z | การยกกำลังที่มีทิศทางจากขวาไปซ้าย |
!x | ไม่ใช่บูลีน |
x -: y | การส่อความบูลีน |
x | y |
x & y & z | บูลีนและ |
x == y == z | ความเท่าเทียม |
x != y != z | ชัดเจน |
x < y < z | น้อยกว่า |
x > y > z | มากกว่า |
x <= y <= z | น้อยกว่าหรือเท่ากับ |
x >= y >= z | มากกว่าหรือเท่ากับ |
(x) | วงเล็บแทนที่ความสำคัญเริ่มต้น |
เหตุใดข้อจำกัดนิพจน์ของฉันจึงถูกตรวจสอบไม่ถูกต้อง
คุณไม่สามารถใช้คำสำคัญที่สำรองไว้เป็นชื่อโปรแกรมแก้ปัญหาแอททริบิวต์ ส่วนประกอบ หรือส่วนประกอบย่อยในแบบจำลองการตั้งค่าคอนฟิกผลิตภัณฑ์ นี่คือรายการของคำสำคัญที่สงวนไว้ ซึ่งคุณไม่สามารถใช้ได้:
- เพดานเงิน
- องค์ประกอบ
- เท่ากับ
- ขั้นต่ำสุด
- ถ้า
- น้อยกว่า
- มากกว่า
- บ่งชี้
- ล็อก
- สูงสุด
- นาที
- ลบ
- บวก
- กำลัง
- เวลา
- ช่อง
- รุ่น
- การตัดสินใจ
- เป้าหมาย