Olinjärt med Whats Best! WhatsBest har ett flertal olika lösare. Har vi ett linjärt problem känner den igen det och använder sig normalt av simplexmetoden, har vi olinjära problem har den ett flertal metoder som den testar. Ibland kan automatiken dock vara lite förvirrande. Vid olinjära problem är man ofta hänvisad till olika numeriska sökmetoder. De har dock nackdelen att de normalt endast hittar lokala optimum, så om vi har ett problem där vi kan tänka oss att det finns flera lokala optimum får man kolla om det är rätt lösning som hittats. Det finns flera olika typer av beslutsvariabler i WhatsBest! Adjustable Positivt reelt tal Skapas lättast via snabbknappen För mer info se sidan 17-0 (Make Adjustable), Free Integer Reelt tal som både kan vara positivt och negativt. WB! / Adjustable / Make Adjustable & Free, OBS man måste namnge områden med Free-variabler För mer info se sidan 19-0 ickenegativt heltal {0, 1,, 3..} WB! / Integer (välj General WBINT) OBS man måste namnge områden med Integer-variabler Se sidan 34-35 Binary heltal, endast {0, 1} WB! / Integer (välj Binary WBBIN) OBS man måste namnge områden med Integer-variabler Se sidan 34-35 WhatsBest arbetssätt: 1. Läser av excelfilen. Skapar en modell 3. Klassificerar problemet och väljer lösningsmetod 4. Löser problemet 5. Lagrar resultatet i excelfilen (beslutsvariabler) 6. Kontrollerar att excel räknar ut samma värde på målcellen. En konsekvens av detta är att WhatsBest måste förstå alla funktioner vi använder. Om WhatsBest stöter på en cell som den inte förstår hur den ska beräkna, varnar den och betraktar cellen som ett konstant värde som inte påverkas av beslutsvariablerna. Ofta får man också en varning om att WhatsBest och excel kommer fram till olika värden på målcellen. Ett exempel på en funktion som inte stöds är radians() (konvertering av grader till radianer) Exempel på funktion som stöds, men bör undvikas om möjligt är IF() Se kapitel 5 för tillåtna funktioner. 1
WhatsBest klassificerar ett problem som Linear (lättlösta problem) Quadratic (kräver licens som vi inte har) Nonlinear (är ofta lite trixiga) Alla tre ovan kan vara med eller utan tillägg för heltal. Heltalsproblem bygger i princip på att man testar alla möjliga kombinationer av heltal, men det görs enligt en metod som åtminstone tillsammans med linjära problem reducerar antalet kombinationer som måste testas avsevärt. Metoden kallas branch-and-bound. Framgången för olinjära problem beror mycket på hur man formulerar problemet. Bra startvärden kan vara avgörande för om WhatsBest ska hitta en tillåten lösning och rätt maximum. Vid en del felmeddelanden nollställs alla beslutsvariabler, så ofta får man en betydligt beskedligare modell om man formulerar modellen så att nollställda beslutsvariablerna ger en modell som är matematiskt korrekt. Om bivillkoren dessutom är uppfyllda fungerar det i allmänhet ännu bättre. Om vi tänker oss att vi har ett isolerat rör som ska dimensioneras: r1=rörets innerdiameter r=rörets ytterdiameter r3=isoleringens ytterdiameter Om man sätter r1, r och r3 som adjustable får vi ganska lätt problem om någon diameter är noll, eller om de ligger i fel ordning. Detta kan styras upp med olikheter, men det är betydligt snällare att formulera det liknande: r1=a1+0,001 r=r1+a+0,001 r3=r+a3+0,001 där a1, a och a3 är adjustable och 0,001 är ett för problemet relativt litet tal. Rekommenderar att ni läser igenom Guidlines for Modelling with WhatsBest! sidan 14-144. Resten av kapitel 6 är också lärorikt. Rekommenderade exempel: Flow Network Modeling sid 160-164 Seasonal sales factoring sid 193-197 Blending sid 149-15
Låt oss lösa vårt gamla demo-problem från Lagrange, P8.7 Konvektionskoefficienten, h, ges av: h θ 0.7 1. = + 0.55 D där D är diametern på en sfärisk reaktor och θ är temperaturskillnaden till omgivningen. Värmeförlusten ges av q = ha T s T ) ( a Den sfäriska reaktorns yta ges av: A = πd Pga hållfasthetskrav har vi villkoret: D θ = 75 Bestäm de D och som ger den minsta värmeförlusten. Vi startar excel och skriver in nedanstående: Diameter 1 Theta 1 h=,55 A= 3,141593 Krav 1 75 q= 8,011061 Cellerna till höger om Diameter och Theta sätter vi till ett godtyckligt numeriskt värde 1 Cellerna till höger om h=, A=, Krav och q= beräknas enligt de samband vi har. Cellen till vänster om 75 markeras och vi trycker sedan på villkorsknappen =. Sedan markerar vi de två godtyckliga cellerna och trycker på knappen Make adjustable Vi markerar cellen till höger om q= och trycker sedan på knappen Minimize Excelarket visar då följande: Diameter 1 Theta 1 h=,55 A= 3,141593 Krav 1 Not = 75 q= 8,011061 Nu är det dags att lösa problemet, vi trycker på knappen Solve (måltavlan) Whats Best skapar nu ett nytt kalkylblad, WB! Status, där den lägger en del information om lösningen: 3
What'sBest! 8.0.4.0 (Apr 06, 006) - Library 4.1.1.13 - Status Report - DATE GENERATED: apr 10, 006 06:53 PM MODEL INFORMATION: CLASSIFICATION DATA Current Capacity Limits -------------------------------------------------------- Numerics 5 Variables 7 Adjustables 000 Constraints 1 1000 Integers/Binaries 0/0 00 Nonlinears 4 00 Coefficients 14 Minimum coefficient value: 1 on Blad1!D8 Minimum coefficient in formula: Blad1!D8 Maximum coefficient value: 75 on <RHS> Maximum coefficient in formula: Blad1!E10 MODEL TYPE: Nonlinear SOLUTION STATUS: LOCALLY OPTIMAL OPTIMALITY CONDITION: SATISFIED OBJECTIVE VALUE: 809.839600084 DIRECTION: Minimize SOLVER TYPE: Multistart TRIES: 10 INFEASIBILITY: 0 Den viktigaste informationen är Solution status: Locally Optimal Växlar vi över till kalkylbladet där vi matade in nyss, ser vi: Diameter 0,54945 Theta 136,4996 h= 6,55319 A= 0,94844 Krav 75 = 75 q= 809,839 Nu kan vi gå in i menyn WB! / Options / Global solver och sätta en bock framför Global Solver, OK. 4
Ett nytt tryck på knappen Solve-knappen ger efter några sekunder följande rapport: What'sBest! 8.0.4.0 (Apr 06, 006) - Library 4.1.1.13 - Status Report - DATE GENERATED: apr 10, 006 06:59 PM MODEL INFORMATION: CLASSIFICATION DATA Current Capacity Limits -------------------------------------------------------- Numerics 5 Variables 7 Adjustables 000 Constraints 1 1000 Integers/Binaries 0/0 00 Globals 4 10 Coefficients 14 Minimum coefficient value: 1 on Blad1!D8 Minimum coefficient in formula: Blad1!D8 Maximum coefficient value: 75 on <RHS> Maximum coefficient in formula: Blad1!E10 MODEL TYPE: Nonlinear SOLUTION STATUS: GLOBALLY OPTIMAL OPTIMALITY CONDITION: SATISFIED OBJECTIVE VALUE: 809.839600084 DIRECTION: Minimize SOLVER TYPE: Global TRIES: 10595 INFEASIBILITY: 0 BEST OBJECTIVE BOUND: 809.8315341434 STEPS: 73 Nu anser Whats Best att den hittat ett globalt minimum! 5
Lämpliga övningsuppgifter: Övningsuppgifterna P1 och P3 från Lagrange. Exempel P8.7 löst med Lagrange: (för jämförelse) Konvektionskoefficienten, h, ges av: där D är diametern på en sfärisk reaktor. 0.7 1. h = + 0.55θ D (1) Där vi har θ = Ts Ta () där T s är reaktorns yttemperatur och T a är omgivningstemperaturen. Värmeförlusten ges av q = ha T s T ) (3) där A = πd är ytan på den sfäriska reaktorn. ( a Pga hållfasthetskrav har vi villkoret: D θ = 75 (4) Bestäm de D och som ger den minsta värmeförlusten mha Lagrange multiplikatormetod. Målfunktionen som funktion av D och är 1.7 1. 1.7 U = haθ = ( + 0.55θ D ) πd θ = πd θ + 0.55πθ D 0.8 (5) med villkoret G = Dθ 75 (6) Langrange multipliers. U G 1.7 0. + λ = 4πθD + 0.44πθ D + λθ = 0 D D (7) U G 0.7 0.8 + λ = πd + 0.6985πθ D + λd = 0 θ θ (8) (7)D -(8): 1.7 0.8 1.7 0.8 4πθD + 0.44πθ D + λdθ πθd 0.6985πθ D λdθ = 0 πθd = 1.7 0. 0.6985π 0.44π θ D (9) ( ) 8 θ = 75D 1 1.7 0. 47 : 150π D = ( 0.6985π 0.44π ) 75 D (10) ( 0.6985 0.44) ( 0.6985π 0.44π ) 1.7 1.47 75 D = (11) 150π 1/1.47 1.7 75 D = 0.5495 150 m 1 θ = 75D 75/ 0.5495 136.5 C 1.7 0.8 U = πd θ + 0.55πθ D 809.9W 1.7 0. 4πθD + 0.44πθ D λ = 1.8 W/m C θ Känslighetskoefficienten, λ, anger hur en förändring av talet 75 påverkar värmeförlusterna hos reaktorn. Heat transfer 100 1000 800 600 400 00 0 0.1 0. 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Diameter 6