Omezení výrazu a omezení tabulky v modelech konfigurace produktu

Tento článek popisuje použití omezení výrazu a omezení tabulky. Omezení řídí hodnoty atributů, které jsou k dispozici při konfiguraci produktů pro prodejní nabídku, nákupní objednávku nebo výrobní zakázku. Můžete použít omezení výrazu nebo omezení tabulky v závislosti na tom, jak chcete vytvářet omezení.

Omezení slouží k řízení hodnot atributů, které můžete vybrat při konfiguraci produktů pro prodejní nabídku, nákupní objednávku nebo výrobní zakázku. Můžete použít omezení výrazu nebo omezení tabulky v závislosti na tom, jak chcete vytvářet omezení.

Co jsou omezení výrazu?

Omezení výrazu se vyznačují výrazem, který používá aritmetické a logické operátory a funkce. Omezení výrazu zapisuje pro určitou komponentu v modelu konfigurace produktu. Nelze ji znovu použít nebo sdílet s jinou součástí. Omezení výrazů pro komponentu se však může odkazovat na atributy dílčích komponent dané komponenty.

Co jsou omezení tabulky?

Omezení tabulky jsou seznam kombinací hodnoty, které jsou povoleny pro atributy při konfiguraci produktu. Definice omezení tabulky lze používat genericky. Při vytváření omezení tabulky pro komponentu v modelu konfigurace produktu je třeba vybrat definici omezení tabulky. Chcete-li vytvořit kombinace, které jsou povoleny, přidáváte atributy specifických typů ke komponentám. Každý typ atributu má konkrétní hodnotu.

Příklad omezení tabulky

Tento příklad ukazuje, jak můžete omezit konfiguraci reproduktoru na konkrétní povrchové úpravy skříně a přední kryty. První tabulka obsahuje povrchové úpravy skříně a přední kryty, které jsou obecně dostupné pro konfiguraci. Hodnoty jsou definovány pro typy atributů Povrch skříňky a Přední mřížka.

Typ atributu Hodnoty
Povrch skříňky Černá, dub, palisandr, bílá
Přední mřížka Černá, kov, bílá

Následující tabulka zobrazuje kombinace, které jsou definovány omezením tabulky Barva a povrch. Pomocí tohoto omezení tabulky lze konfigurovat reproduktor, který má dubový povrch a černou mřížku, palisandrový povrch a bílou mřížku a tak dále.

Dokončit Mřížka
Dub Černá
Palisandr Bílá
Bílá Černá
Bílá Bílá
Černá Černá
Černá Kov

Můžete vytvořit omezení tabulek definovaná uživatelem nebo systémem. Další informace naleznete v tématu Omezení tabulek definovaná uživatelem nebo systémem.

Jaká syntax se používá pro řešení omezení psaní?

Když píšete omezení, musíte použít syntaxi jazyka OML (Optimization Modeling Language). Systém používá k řešení omezení produkt Microsoft Solver Foundation.

Mám použít omezení tabulky nebo omezení výrazu?

Můžete použít omezení výrazu nebo omezení tabulky v závislosti na tom, jak chcete vytvářet omezení. Omezení tabulky vytváříte jako matici, zatímco omezení výrazu je jednotlivý výraz. Při konfiguraci produktu nezáleží na omezení, jaký druh omezení se použije. V následujícím příkladu je znázorněn rozdíl v těchto dvou metodách.

Při konfiguraci produktu pomocí následujícího nastavení omezení jsou povoleny tyto kombinace:

  • Černá barva produktu a velikost 30 nebo 50
  • Červená barva produktu a velikost 20

Nastavení omezení tabulky

Barva Velikost
Černá 30
Černá 50
Červená 20

Nastavení omezení výrazu

(Barva == "Black" & (size == "30" | size == "50")) | (color == "Red" & size = "20")

Mám používat operátory nebo infixový zápis při psaní omezení výrazu?

Můžete napsat omezení výrazu buď pomocí dostupných prefixových operátorů, nebo pomocí infixového zápisu. U operátorů Min, Max a Abs nelze použít infixový zápis. Tyto operátory jsou k dispozici jako standardní operátory ve většině programovacích jazyků.

Které operátory a infixový zápis můžu používat při psaní omezení výrazu?

V následujících tabulkách jsou uvedeny operátory a infixový zápis, které lze použít při zápisu omezení výrazu pro komponentu v modelu konfigurace produktu. V příkladech v první tabulce můžete vidět způsob zápisu výrazu pomocí infixového zápisu nebo operátorů.

Operátor Popis Syntaxe Příklad
Implikace Pokud je podmínka a pravdivá, použijte podmínku b. Implies[a, b], infix: a -: b
  • Operátor: Implies[x != 0, y >= 0]
  • Infixový zápis: x != 0 -: y >= 0
A To platí pouze v případě, že jsou splněny všechny podmínky. Pokud je počet podmínek 0 (nula), výsledkem je pravda. And[args], infix: a & b & ... & z
  • Operátor: And[x == 2, y <= 2]
  • Infixový zápis: x == 2 & y <= 2
nebo To platí při splnění libovolné podmínky. Pokud je počet podmínek 0 (nula), výsledkem je nepravda. Or[args], infix: a | b | ... | z
  • Operátor: Or[x == 2, y <= 2]
  • Infixový zápis: x == 2 | y <= 2
Kladný Sečte podmínky. Pokud je počet podmínek 0 (nula), výsledkem je 0. Plus[args], infix: a + b + ... + z
  • Operátor: Plus[x, y, 2] == z
  • Infixový zápis: x + y + 2 == z
Záporný Argumenty se negují. Musí mít právě jednu podmínku. Minus[expr], infix: -expr
  • Operátor: Minus[x] == y
  • Infixový zápis: -x == y
Funkce ABS Vezme absolutní hodnotu podmínky. Musí mít právě jednu podmínku. ABS [výraz] Operátor: Abs[x]
Časy Vezme násobek podmínek. Pokud je počet podmínek 0 (nula), výsledkem je 1. Krát[args], infix: a * b * ... * z
  • Operátor: Doby[x, y, 2] == z
  • Infixový zápis: x * y * 2 == z
Výkon Vezme mocninu. Umocňuje se zprava doleva. (Jinými slovy je zprava asociativní.) Proto je Power[a, b, c] ekvivalentní Power[a, Power[b, c]]. Výkon lze použít pouze s exponentem jako kladnou konstantou. Power[args], infix: a ^ b ^ ... ^ z
  • Operátor: Výkon[x, 2] == y
  • Infixový zápis: x ^ 2 == y
Maximum Výsledkem je největší podmínka. Pokud je počet podmínek 0 (nula), výsledkem je nekonečno. Max[argumenty] Operátor: Max[x, y, 2] == z
Minimum Výsledkem je nejmenší podmínka. Pokud je počet podmínek 0 (nula), výsledkem je nekonečno. Min[argumenty] Operátor: Min[x, y, 2] == z
Ne Výsledkem logický opak podmínky. Musí mít právě jednu podmínku. Ne[expr], infix: !expr
  • Operátor: Not[x] & Not[y == 3]
  • Infixový zápis: !x!(y == 3)

V následující tabulce jsou uvedeny příklady, jak zapsat infixový zápis.

Infixový zápis popis
x + y + z Sčítání
x * y * z Násobení
x - y Binární odčítání je převedeno stejně jako binární součet, kde je negovaná druhá podmínka.
x ^ y ^ z Umocňování s pravou asociativitou
!x Logické ne
x -: y Logická implikace
x y
x & y & z Logické a
x == y == z Rovnost
x != y != z Různé
x < y < z Je menší než
x > y > z Je větší než
x <= y <= z Menší než nebo rovno
x >= y >= z Větší než nebo rovno
(x) Závorky ruší výchozí priority.

Proč nejsou má omezení výrazu vyhodnocena správně?

Rezervovaná slovo nelze použít jako řešitelské názvy atributů, komponentů nebo dílčích komponentů v modelu konfigurace produktu. Tento seznam obsahuje rezervovaná klíčová slova, která nelze použít:

  • Horní mez
  • Prvek
  • Rovno
  • Podlaží
  • Jestliže
  • Menší
  • Větší
  • Implikace
  • Protokol
  • Maximum
  • Minimum
  • Záporný
  • Kladný
  • Výkon
  • Časy
  • Úsek
  • Model
  • Rozhodnutí
  • Cíl

Další zdroje

Vytvoření omezení výrazu

Přidání výpočtu do modelu konfigurace produktu