CP-SAT Playground
Constraint programming · OR-Tools · Google

Se en optimerare tänka.

CP-SAT löser de problem där du kan beskriva reglerna men inte lösningen: vem som gör vad, i vilken ordning, med vilka resurser. Du ger den reglerna och ett pris. Den ger dig tillbaka den billigaste plan som inte bryter mot något — och ett bevis på att ingen billigare finns.

7 riktiga CP-SAT-körningar på denna sida 0 påhittade siffror OR-Tools 9.15.6755
LABB 01

En riktig arbetsdag, sju uppsättningar regler

Tre tekniker, elva jobb, en arbetsdag på 480 minuter. Kompetenskrav, tidsfönster, restid och arbetstid. Allt under är kört med CP-SAT — välj regler och se vad som händer med planen.

Optimal plan

Vad solvern sa

Kostnaden, uppdelad

Målfunktion: 5000·tappade jobb + 20·min sen + 8·min tidig + 3·min övertid + 2·min restid
Siffror per körning: tid, variabler och villkor är mätta, inte skattade. En liten instans löses på millisekunder — det är poängen: modellen är inte långsam, den är fel modellerad eller för stor när den blir långsam.
LABB 02

En solver du kan stega igenom

Damproblemet: sätt ut 8 damer på ett bräde så att ingen hotar en annan. Antalet möjliga placeringar är 40 320. Solvern undersöker en bråkdel. Följ den: gula rutor är försök som dömdes ut direkt, grön är en dam som fick stå kvar, den lila kanten är raden solvern arbetar på.

Noder
0
Prövade
0
Backtrack
0
Andel av alla
0 %

Det här är en pedagogisk miniatyrsolver i webbläsaren (backtracking med forward checking). Riktig CP-SAT gör samma sak, men med noggrannare resonemang per nod, inlärda förbud och hundratals trådar. Därför klarar den miljoner variabler där den här klarar dussintals.

LABB 03

Passar problemet CP-SAT?

Kryssa det som stämmer in. Verktyget passar när reglerna är många, kombinationerna är astronomiska och svaret ska vara bevisat bra — inte bara bra.

0 av 8

Där det brukar betala sig

Schemaläggningpersonal, pass, jour, operationssalar
Fältservicetekniker, tidsfönster, restid, SLA
Rutt & logistikfordon, lastbärare, tidluckor
Produktionbatchar, ställtid, sekvensberoende
Konfigurationpaket av moduler som måste passa ihop
Allokeringresurser mot uppgifter, kvoter, rättvisa

Där det inte passar

Ren kontinuerlig ekonomi (använd LP). Problemet är odefinierat eller reglerna ändras mitt i (ingen modell hjälper). Optimeringsproblemet är i praktiken ett inlärningsproblem — då är ML rätt verktyg. Och: kan en enkel girig regel lösa det, ska du inte införa en solver.

KOD

Fyra byggstenar som gör hela skillnaden


  

Full dokumentation: CP-SAT Solver · N-queens · Employee scheduling

METOD

Vad som är riktigt här

DelVad den är
Labb 01Verkliga CP-SAT-körningar, genererade av gen_data.py med OR-Tools 9.15.6755. Status, målvärde, tid, variabel- och villkorsantal samt schemat är utdata från solvern. Instansen är syntetisk men realistisk.
Labb 02En miniatyrsolver i JavaScript — backtracking med forward checking. Den är till för att visa mekanismen, inte prestandan. Den bevisar inget om CP-SAT:s hastighet.
Labb 03En tumregel, inte ett orakel. Poängen är att tvinga fram frågan "vilka regler, vilket pris, vilket bevis".

Källkod, datagenerering och README: Källkod på GitHub (cp-sat-playground). Sidan är en enda statisk fil utan beroenden — den fungerar offline.