Permalänk
Medlem

AMPL Problem

Hej,

Jag löser en logistikuppgift i AMPL och får ett konstigt fel.
Jag har skapat bivillkor som säger att det ska finnas X antal produkter av en sort i lager hos en fabrik i tidsperiod 1(början) samt 4(slutet), sedan efter fabriken kommer ett varuhus som också har ett lager i början, tidsperiod 1 och i slutet 4.

Är detta bivillkor rätt skrivet?
BivillkorN2{PRODA in PROD, WARE1 in WARE} : inStock_WARE[PRODA, WARE1, 1] = 40;
Då det säger att lagret i varuhuset, för produkt A, för varuhus 1, i tidsperiod 1 ska ha 40 st. Dvs i tidsperiod 1 ska varuhus 1, ha 40 stycken Produkter A.

Felet jag får är följande:
"presolver, variable inStock_WARE['PRODA', WARE1', '1']:
impossible deducade bounds: lower = 20, upper = 8;
difference = 2"

Antar att jag har skrivit något i koden som går emot villkoret med 2 enheter, men jag har inte skrivit något sådan.
Tips på vad felet kan vara?

Permalänk
Medlem
Skrivet av sofha:

Hej,

Jag löser en logistikuppgift i AMPL och får ett konstigt fel.
Jag har skapat bivillkor som säger att det ska finnas X antal produkter av en sort i lager hos en fabrik i tidsperiod 1(början) samt 4(slutet), sedan efter fabriken kommer ett varuhus som också har ett lager i början, tidsperiod 1 och i slutet 4.

Är detta bivillkor rätt skrivet?
BivillkorN2{PRODA in PROD, WARE1 in WARE} : inStock_WARE[PRODA, WARE1, 1] = 40;
Då det säger att lagret i varuhuset, för produkt A, för varuhus 1, i tidsperiod 1 ska ha 40 st. Dvs i tidsperiod 1 ska varuhus 1, ha 40 stycken Produkter A.

Felet jag får är följande:
"presolver, variable inStock_WARE['PRODA', WARE1', '1']:
impossible deducade bounds: lower = 20, upper = 8;
difference = 2"

Antar att jag har skrivit något i koden som går emot villkoret med 2 enheter, men jag har inte skrivit något sådan.
Tips på vad felet kan vara?

Lite tips:

  • Skriv hela koden här, inte bara en del.

  • Försök att skapa ett minimalt exempel, tex utan villkor alls

  • Kunskap om AMPL lär vara rätt dålig här

För att svara på frågan, du har, vad jag kan se, ett lowerbound på 20 och ett upperbound på 8, uppenbarligen finns det inga lösningar för dessa bounds. Vad difference = 2 betyder vet jag inte.

Permalänk
Medlem
Skrivet av kobb3:

Lite tips:

  • Skriv hela koden här, inte bara en del.

  • Försök att skapa ett minimalt exempel, tex utan villkor alls

  • Kunskap om AMPL lär vara rätt dålig här

För att svara på frågan, du har, vad jag kan se, ett lowerbound på 20 och ett upperbound på 8, uppenbarligen finns det inga lösningar för dessa bounds. Vad difference = 2 betyder vet jag inte.

Vad brukar vara orsaken när följande dyker upp i ampl-fönstret: ”Integer infeasible” ?

Permalänk
Medlem
Skrivet av sofha:

Vad brukar vara orsaken när följande dyker upp i ampl-fönstret: ”Integer infeasible” ?

Det brukar ju betyda att ditt problem inte är lösbart, tex för att du har tänkt fel eller skrivit in ett villkor fel.

Permalänk
Medlem
Skrivet av kobb3:

Det brukar ju betyda att ditt problem inte är lösbart, tex för att du har tänkt fel eller skrivit in ett villkor fel.

Okej, går det att få mer information från ampl? Just vart felet sitter eller vilket villkor det kan handla om?

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av sofha:

Okej, går det att få mer information från ampl? Just vart felet sitter eller vilket villkor det kan handla om?

Skickades från m.sweclockers.com

Rent generellt skulle jag säga nej i och med att det oftast är flera villkor som gör att problemet inte går att lösas. Har du dock tur kan det ju vara ett villkor som gör det och om du testar kommentera ut olika villkor eller ändrar gränserna för villkoren, dvs gör villkor lättare så kanske du kan hitta vart felet är. Eller så är problemet helt enkelt olösbart?

Min erfarenheter med AMPLE (egentligen är det ju en solver såsom cplex så kör ample koden) är att felmeddelandena är sjukt värdelösa.

Du kan alltid skriva hela din modell här och hur du köra den (datafiler, ampl filer etc) så kan jag kolla också.

Permalänk
Medlem
Skrivet av sofha:

Okej här kommer modellen, jättesnällt att du vill testköra!
Meddela mig gärna när du har kopierat den så att jag kan radera inlägget:)
Problemet går ut på att en fabrik producerar produkter (A och B) och skickar ut en viss mängd till ett warehouse och en annan läggs på lagret hos fabriken. Sen skickar warehouse iväg produkter till kunden och resterande lagras.

(kopierat)

Jaha, det var ju inte en liten modell. Jag tvivlar på att jag kommer orka sätta mig in i hela modellen, tyvärr :(. Sjukt lätt att göra något litet fel i modellen.

Testa annars att skapa den minsta datafilen du kan komma på och se om det blir rätt svar.

Permalänk
Medlem
Skrivet av kobb3:

(kopierat)

Jaha, det var ju inte en liten modell. Jag tvivlar på att jag kommer orka sätta mig in i hela modellen, tyvärr :(. Sjukt lätt att göra något litet fel i modellen.

Testa annars att skapa den minsta datafilen du kan komma på och se om det blir rätt svar.

Ja den är något stor, men tack för dina tips:)

Skickades från m.sweclockers.com