Lausekerajoitukset ja taulurajoitukset tuotemääritysmalleissa

Tässä artikkelissa kuvataan lauseke- ja taulurajoitusten käyttö. Rajoittaa sellaisten määritearvojen hallitsemista, joita käytät tuotteiden määrittämiseen myyntitilaukselle, myyntitarjoukselle, ostotilaukselle tai tuotantotilaukselle. Voit käyttää lausekerajoituksia tai taulurajoituksia, riippuen siitä, kuinka haluat luoda rajoitukset.

Rajoituksilla hallitaan valittavissa olevia määritearvoja, kun tuotteita määritetään myyntitilaukseen, myyntitarjoukseen, ostotilaukseen tai tuotantotilaukseen. Voit käyttää lausekerajoituksia tai taulurajoituksia, riippuen siitä, kuinka haluat luoda rajoitukset.

Mitä ovat lausekkeen rajoitukset?

Lausekerajoituksissa on lauseke, joka käyttää aritmeettisia tai Boolen operaattoreita ja funktioita. Lausekerajoitus kirjoitetaan tuotemääritysmallin tietylle komponentille. Sitä ei voi käyttää uudelleen tai jakaa toisen komponentin kanssa. Komponentin lausekerajoitukset voivat kuitenkin viitata komponentin alikomponenttien määritteisiin.

Mitä ovat taulukon rajoitukset?

Taulurajoitukset kuvaavat sellaisia arvoyhdistelmiä, jotka sallitaan määritteille, kun määrität tuotetta. Taulurajoituksen määrityksiä voidaan käyttää yleisesti. Luodessasi taulurajoituksen komponentille tuotteen konfiguraatiomallissa, valitset taulukon rajoitusmäärityksen. Jos haluat luoda sallittuja yhdistelmiä, lisää tietyn tyyppisiä määritteitä komponentteihin. Jokaisella määritteen tyypillä on tietty arvo.

Esimerkki taulurajoituksesta

Tämä esimerkki osoittaa, miten voit rajoittaa kaiuttimen kokoonpanon tiettyihin viimeistelyihin ja etulevyihin. Ensimmäisessä taulukossa ovat ne kaappien viimeistelyt ja etulevyt, jotka kokoonpanolle on yleisesti saatavilla. Arvot on määritetty Kaapin viimeistely- ja Etusäleikkö-määritetyypeille.

Määritteen tyyppi Arvot
Kaapin viimeistely Musta, tammi, ruusupuu, valkoinen
Etusäleikkö Musta, metalli, valkoinen

Seuraavassa taulukossa näkyvät Väri ja viimeistely -taulurajoituksen määrittämät yhdistelmät. Tämän taulurajoituksen avulla voit määrittää kaiuttimen, jonka viimeistelynä on tammi ja jonka etusäleikkö on musta, jonka viimeistelynä on ruusupuu ja etusäleikkö valkoinen ja niin edelleen.

Lopetus Säleikkö
Tammi Musta
Ruusupuu Valkoinen
Valkoinen Musta
Valkoinen Valkoinen
Musta Musta
Musta Metalli

Voit luoda järjestelmän määrittämiä ja käyttäjän määrittämiä taulukkorajoitteita. Lisätietoja on kohdassa Järjestelmän ja käyttäjän määrittämät taulurajoitukset.

Mitä syntaksia pitäisi käyttää rajoitusten kirjoittamiseen?

Käytä rajoituksia kirjoittaessasi Optimization Modeling Language (OML) -syntaksia. Järjestelmä käyttää Microsoft Solver Foundation -rajoitusratkaisinta rajoitusten selvittämiseen.

Tulisiko minun käyttää taulurajoituksia vai lausekerajoituksia?

Voit käyttää joko lausekerajoituksia tai taulurajoituksia sen mukaan, miten haluat luoda rajoitukset. Taulurajoitus kootaan matriisiksi, kun taas lausekerajoitus on yksittäinen lauseke. Määrittäessäsi tuotteen se ei ole merkitystä millaista rajoitetta käytetään. Seuraava esimerkki osoittaa näiden menetelmien erot.

Nämä yhdistelmät ovat sallittuja, kun määrität tuotteen käyttämällä seuraavia rajoitusasetuksia:

  • Tuote, väri Musta, koko 30 tai 50
  • Tuote, väri Punainen, koko 20

Taulurajoituksen asetukset

Väri Koko
Musta 30
Musta 50
Punainen 20

Lausekerajoituksen asetukset

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

Tulisiko minun käyttää operaattoreita vai infix-merkintää, kun kirjoitan lausekerajoituksia?

Voit kirjoittaa lausekerajoituksen käyttämällä joko käytettävissä olevia etuliiteoperaattoreita tai infix-merkintää. Min-, Max- ja Abs-operaattorien kanssa ei voi käyttää infix-merkintää. Nämä operaattorit sisältyvät vakiona useimpiin ohjelmointikieliin.

Mitä operaattoreita ja infix-merkintöjä voin käyttää kirjoittaessani lausekerajoituksia?

Seuraavissa taulukoissa on kuvattu operaattorit ja infix-merkinnät, joita voidaan käyttää, kun tuotemääritysmallin komponentille kirjoitetaan lausekerajoitus. Ensimmäisen taulukon esimerkit osoittavat, miten lauseke kirjoitetaan käyttämällä joko infix-merkintää tai operaattoreita.

Käyttäjä Kuvaus Syntaksi Esimerkkejä
Sisältää Jos ehto a on tosi, käytä sitten rajoitusta b. Tarkoittaa [a, b] infix:-: b
  • Operaattori: Implies[x! = 0, y > = 0]
  • Infix-merkintä: x != 0 -: y >= 0
Ja Tämä on tosi vain, jos kaikki ehdot ovat tosia. Jos ehtojen määrä on 0 (nolla), tuloksena on Tosi. And[args], infix: a & b & ... & z
  • Operaattori: And[x == 2, y <= 2]
  • Infix-merkintä: x == 2 & y <= 2
Tai Näin tapahtuu, jos mikä tahansa ehto on tosi. Jos ehtojen määrä on 0 (nolla), tuloksena on Epätosi. Or[args], infix: a | b | ... | z
  • Operaattori: Or[x == 2, y <= 2]
  • Infix-merkintä: x == 2 | y <= 2
Plus Tämä koostaa sen ehdot. Jos ehtojen määrä on 0 (nolla), tuloksena on 0. Plus[args], infix: a + b + ... + z
  • Operaattori: Plus[x, y, 2] == z
  • Infix-merkintä: x + y + 2 == z
Miinus Tämä kääntää sen argumentin. Ehtoja on oltava täsmälleen yksi. Miinus [lauseke], operandien välinen merkintä: -expr
  • Operaattori: Minus[x] == y
  • Infix-merkintä: -x == y
Itseisarvo Tämä vaatii ehtoonsa itseisarvon. Ehtoja on oltava täsmälleen yksi. Itseisarvo[lauseke] Operaattori: Abs[x]
Ajat Tämä vaatii tuotteen ehtoonsa. Jos ehtojen määrä on 0 (nolla), tuloksena on 1. Times[args], infix: a * b * ... * z
  • Operaattori: Times[x, y, 2] == z
  • Infix-merkintä: x * y * 2 == z
Teho Tämä vaatii eksponentiaalin. Tämä koskee potenssiinkorotusta oikealta vasemmalle. (Tämä tarkoittaa, että se on oikea-assosiatiivinen.) Siksi Power[a, b, c] on sama kuin Power[a, Power[b, c]]. Power-operaattoria voidaan käyttää vain, jos eksponentti on positiivinen vakio. Power[args], infix: a ^ b ^ ... ^ z
  • Operaattori: Power[x, 2] == y
  • Infix-merkintä: x ^ 2 == y
Enintään Tämä tuottaa suurimman ehdon. Jos ehtojen määrä on 0 (nolla), tuloksena on Ääretön. Maksimi [argumentit] Operaattori: Max[x, y, 2] == z
Vähintään Tämä tuottaa pienimmän ehdon. Jos ehtojen määrä on 0 (nolla), tuloksena on Ääretön. Minimi [argumentit] Operaattori: Min[x, y, 2] == z
Ei Tämä tuottaa loogisen käänteisen version ehdostansa. Ehtoja on oltava täsmälleen yksi. Not[expr], infix: !expr
  • Operaattori: Not[x] & Not[y == 3]
  • Infix-merkintä: !x!(y == 3)

Seuraavan taulukon esimerkit kuvaavat, kuinka infix-merkintä kirjoitetaan.

Operandien välinen merkintä kuvaus
x + y + z Lisäys
x * y * z Kertolasku
x - y Binäärimuotoinen vähennys tehdään samalla tavalla kuin binäärimuotoinen lisäys käänteisen toisen kanssa.
x ^ y ^ z Potenssiinkorotus, jolla on oikea-assosiatiivisuus
!x Totuusarvo ei
x -: y Looginen vaikutus
x y
x & y & z Totuusarvo ja
x == y == z Yhtäsuuruus
x != y != z Erilliset
x < y < z Pienempi kuin
x > y > z Suurempi kuin
x <= y <= z Pienempi tai yhtä suuri
x >= y >= z Suurempi tai yhtä suuri
(x) Sulkeet ohittavat oletusarvoisen tärkeysjärjestyksen.

Miksi lausekerajoitusteni vahvistaminen ei onnistu?

Et voi käyttää varattuja avainsanoja ratkaisimen niminä määritteille, komponenteille tai alikomponenteille tuotemääritysmallissa. Seuraavassa luettelossa on varatut sanat, jotka eivät ole käytettävissä:

  • Katto
  • Elementti
  • Yhtäläinen
  • Kerros
  • Jos
  • Pienempi
  • Suurempi
  • Sisältää
  • Loki
  • Enintään
  • Min
  • Miinus
  • Plus
  • Teho
  • Ajat
  • Aika
  • Malli
  • Päätöksenteko
  • Tavoite

Lisäresurssit

Luo lausekerajoitus

Lisää laskelma tuotemääritysmalliin