Constraint programmering er en alternativ tilnærming til programmering som innebærer en kombinasjon av databehandling og logikk , eller resonnement , teknikker. Det grunnleggende prinsippet om tvang programmering er å spesifisere problemer med uforutsigbar , ufullstendig informasjon og løse disse problemene ved å erklære forhold eller eiendom - ellers kjent som begrensninger - fornøyd med løsningen . Begrensningen
Begrensning programmering er basert på ideen om en begrensning : en relasjon , ofte en likestilling eller ulikhet forhold , mellom verdiene av to matematiske variabler . Med andre ord kan en begrensning sees på som et krav som viser hvilke kombinasjoner av verdier fra en rekke mulige verdier for hver variabel er tillatelig ; " x> 3 , " for eksempel , er en begrensning på " x ».
Constraint system
En begrensning system spesifiserer formelt reglene skikkelig dannet formler , eller syntaks , og sannhet eller løgn , eller semantikk , av begrensninger av interesse. En begrensning system angir hvilket språk begrensninger er uttrykt , hva begrensningen symboler , hvordan de er definert og som tvang formler brukes for logikk i begrensningen programmeringsspråk.
Begrensning Satisfaction
i teorien består tvang programmering av to faser : genererer en representasjon av et problem og løse problemet . I praksis kan hver av disse faser bli brutt ned i en serie av mindre trinn som kan utføres vekselvis. For å løse et problem ved hjelp tvang programmering , må problemet først bli angitt, eller formuleres som en begrensning tilfredsstillelse problem , som består av et endelig antall av begrensninger som hver gjelder for en bestemt sekvens av variable. Constraint tilfredshet forsøker å tilordne verdier til variabler slik at alle begrensninger er sanne. Vanligvis kan en begrensning tilfredshet problem være representert i mer enn én måte ; begrensning programmering er svært fleksibelt fordi begrensninger kan legges til, endres eller fjernes
Constraint Solver
. en begrensning Solver implementerer en matematisk formel eller algoritme , som samler begrensninger fra ett eller flere programmer som kjører, forenkler dem og , hvis mulig , løser dem . Det endelige resultatet er kjent som svaret begrensning.
Applications
Problemer løses ved hjelp av tvang programmering er vanligvis formulert i form av krav , egenskaper eller lover . Slike problemer oppstår ofte i industri og handel, inkludert analyse , design , planlegging, ressursallokering og transport. Tvang programmering gjelder vellykket til en rekke andre felt , blant annet elektro, molekylærbiologi og drift forskning .