1 / 35

Examining a model for Flaws AGEC 641 Lab, Fall 2011 Mario Andres Fernandez

Examining a model for Flaws AGEC 641 Lab, Fall 2011 Mario Andres Fernandez. Based on material written by Gillig and McCarl . Improved upon by many previous lab instructors. Special thanks to Yuquan “Wolfgang” Zhang. A company uses two resources to produce three products.

reidar
Download Presentation

Examining a model for Flaws AGEC 641 Lab, Fall 2011 Mario Andres Fernandez

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Examining a model for Flaws AGEC 641 Lab, Fall 2011Mario Andres Fernandez • Based on material written by Gillig and McCarl. Improved upon by many previous lab instructors. • Special thanks to Yuquan “Wolfgang” Zhang

  2. A company uses two resources to produce three products

  3. SET Process Types of production Processes/ Regular, Ruffles, BBQ / Resource Types of Resources/ Capacity,Labor / ; PARAMETERS Price(Process) PRODUCT PRICES BY Process/ Regular 1.2, Ruffles 1.7, BBQ 2 / ProdCost(Process) COST BY Process / Regular 0, Ruffles 0, BBQ 0 / ResorAvail(Resource) Resource AVAILABLITY / Capacity 10000, Labor 0 / ; TABLEResourUse(Resource,Process) Resource USAGE Regular Ruffles BBQ Capacity 1 1 1 Labor 0.05 0.08 0.10 ; VARIABLES Profit TOtalProfit ; POSITIVEVARIABLES Production(Process) Items Produced by Process; EQUATIONS ObjtObjective Function ( Profit ) Available(Resource) Resources Available; Objt.. Profit =E= SUM(Process,(Price(Process)-ProdCost(Process))* Production(Process)); Available(Resource).. SUM(Process,RESOURUSE(Resource,Process)*Production(Process)) =L= ResorAvail(Resource); MODELResAlloc /ALL/; SOLVEResAlloc USING LP MAXIMIZING Profit;

  4. Now labor has cost and limits

  5. Setting up GAMS. Lets take the old resource allocation problem and expand by adding a buying possibility for resources. Objt.. Profit =E= SUM(Process,(PRICE(Process)- PRODCOST(Process))* PRODUCTION(Process)) - SUM(Resource,BuyResource(Resource)*BuyTerms(Resource,“Cost”)) ; Available(Resource).. SUM(Process,ResourUse(Resource,Process)*PRODUCTION(Process)) =L= RESORAVAIL(Resource) + BuyResource(Resource)*BuyTerms(Resource,“Amount_Per_Unit"); PurchaseLimit(Resource,MinMax)$BuyTerms(Resource,“Cost").. Sign(MinMax)*BuyResource(Resource)*BuyTerms(Resource,"Amount_Per_Unit") =L= Sign(MinMax)*BuyTerms(Resource,MinMax) ;

  6. SET Process Types of production Processes / Regular, Ruffles, BBQ / Resource Types of Resources / Capacity,Labor / ; PARAMETERS Price(Process) PRODUCT PRICES BY Process / Regular 1.2, Ruffles 1.7, BBQ 2 / ProdCost(Process) COST BY Process / Regular 0, Ruffles 0, BBQ 0 / ResorAvail(Resource) Resource AVAILABLITY / Capacity 10000, Labor 0 / ; TABLEResourUse(Resource,Process) Resource USAGE Regular Ruffles BBQ Capacity 1 1 1 Labor 0.05 0.08 0.10 ; SET Terms Resource purchase Terms / Cost, Amount_per_unit, Maximum, Minimum / MinMax(Terms) Min and max subset of Terms / Maximum, Minimum / ; TABLE BuyTerms(Resource,Terms) Resource purchase Terms Cost Amount_per_unit Maximum Minimum Capacity Labor 64 8 600 320; PARAMETER Sign(MinMax) Sign to use in limit equation / Maximum 1, Minimum –1 / ; VARIABLES Profit Total Profit ; POSITIVEVARIABLES Production(Process) Items Produced by Process BuyResource(Resource) Resources purchased ; EQUATIONS Objt Objective Function ( Profit ) Available(Resource) Resources Available PurchaseLimit(Resource,MinMax) Limits on Resource for purchase; Objt.. Profit =E= SUM(Process,(Price(Process)-ProdCost(Process))* Production(Process)) - SUM(Resource,BuyResource(Resource)*BuyTerms(Resource,"Cost")) ; Available(Resource).. SUM(Process,RESOURUSE(Resource,Process)*Production(Process)) =L= ResorAvail(Resource) + BuyResource(Resource)*BuyTerms(Resource,"Amount_per_unit"); PurchaseLimit(Resource,MinMax)$BuyTerms(Resource,"cost").. Sign(MinMax)*BuyResource(Resource)*BuyTerms(Resource,"Amount_per_unit") =L= Sign(MinMax)*BuyTerms(Resource,MinMax); MODELResAlloc /ALL/; SOLVEResAlloc USING LP MAXIMIZING Profit;

  7. Dissecting Revised Resource Allocation Problem SET Terms Resource purchase Terms /Cost, Amount_per_unit, Maximum, Minimum / MinMax(Terms) min max subset of Terms / Maximum, Minimum / ; TABLE BuyTerms(Resource,Terms) Resource purchase Terms Cost Amount_per_unit Maximum Minimum Capacity Labor 64 8 600 320; PARAMETER Sign(MinMax) Sign to use in limit equation / Maximum 1, Minimum –1 / ; POSITIVE VARIABLES BuyResource(Resource) Resources purchased ; EQUATIONS ObjtObjective Function (Profit) Available(Resource) Resources Available PurchaseLimit(Resource,MinMax) Limits on Resource purchase; • Basics of revision • Add a purchase variable • Define a purchase limit constraint

  8. Objt.. Profit =E= SUM(Process,(Price(Process)- ProdCost(Process))* Production(Process)) - SUM(Resource,BuyResource(Resource)*BuyTerms(Resource,"Cost")); Available(Resource).. SUM(Process,ResourUse(Resource,Process)*Production(Process)) =L= ResorAvail(Resource) + BuyResource(Resource)*BuyTerms(Resource,"Amount_per_unit"); PurchaseLimit(Resource,MinMax)$BuyTerms(Resource,"cost").. Sign(MinMax)*BuyResource(Resource)*BuyTerms(Resource,"Amount_per_unit") =L= Sign(MinMax)*BuyTerms(Resource,MinMax); • Basics of Revision • Add term to objective function with cost • Add term to Resource Availability allowing purchase • Add terms to constrain limiting purchase imposing min and max • Add data giving cost, per unit amount, min and max

  9. Dissecting Revised Resource Allocation Problem SET Terms Resource purchase Terms/ Cost, Amount_per_unit, Maximum, Minimum / MinMax(Terms) Min and max subset of Terms / Maximum, Minimum / ; TABLE BuyTerms(Resource,Terms) Resource purchase Terms Cost Amount_per_unit Maximum Minimum Capacity Labor 64 8 600 320; PARAMETER Sign(MinMax) Sign to use in limit equation / Maximum 1, Minimum –1 / ; POSITIVE VARIABLES BuyResource(Resource) Resources purchased ; EQUATIONS ObjtObjective Function ( Profit ) Available(Resource) Resources Available PurchaseLimit(Resource,MinMax) Limits on Resource purchase; • Tricks in revision • Add a conditional to the purchase limit constraint to only generate if there is a non zero cost, don’t need this elsewhere

  10. Objt.. Profit =E= SUM(Process,(Price(Process)- ProdCost(Process))* Production(Process)) - SUM(Resource,BuyResource(Resource)*BuyTerms(Resource,"Cost")) ; Available(Resource).. SUM(Process,ResourUse(Resource,Process)*Production(Process)) =L= ResorAvail(Resource) + BuyResource(Resource)*BuyTerms(Resource,"Amount_per_unit"); PurchaseLimit(Resource,MinMax) $BuyTerms(Resource,"cost").. Sign(MinMax)*BuyResource(Resource)*BuyTerms(Resource,"Amount_per_unit") =L= Sign(MinMax)*BuyTerms(Resource,MinMax); • Add a parameter called sign that puts a different sign on limit depending on whether the constraint is min or max (multiplying through by –1 for min).

  11. After setting up the LP problem, how to assure that it is transformed to a GAMS formulation correctly? Objt.. Profit =E= SUM(Process,(PRICE(Process)-PRODCOST(Process))* PRODUCTION(Process)) - SUM(Resource,BuyResource(Resource)*BuyTerms(Resource,“Cost”)) ; Available(Resource).. SUM(Process,ResourUse(Resource,Process)*PRODUCTION(Process)) =L= RESORAVAIL(Resource) + BuyResource(Resource)*BuyTerms(Resource,“Amount_Per_Unit"); PurchaseLimit(Resource, MinMax)$BuyTerms(resource,"cost").. Sign(MinMax)*BuyResource(Resource)*BuyTerms(Resource,"Amount_Per_Unit") =L= Sign(MinMax)*BuyTerms(Resource, MinMax) ;

  12. Two ways to look at your model structure. • LIMROW and LIMCOL options • GAMSCHK Using LIMROW and LIMCOL options MODELResAlloc /All/ ; OPTION LIMROW =10; OPTION LIMCOL =10; SOLVEResAlloc USING LP MAXIMATION Profit ;

  13. OPTION LIMROW = 10;

  14. OPTION LIMROW = 10

  15. This non-negativity is already specified in the variable specification step

  16. An alternative way to check the model structure is to use GAMSCHKfor examining the model structure and solutions. • DISPLAYCR:Listing selected equations and/or variables • PICTURE: Generating schematics on location of coefficients by sign and magnitude on an individual equation/variable basis • BLOCKPIC:Generating a whole model summary • POSTOPT:Debugging unrealistic optimal solutions

  17. Steps to run GAMS CHECK Here are steps to run GAMSCHK. Step 1: Insert a command line OPTION LP = GAMSCHK ;for LP problem orOPTION NLP = GAMSCHK ;for NLP problem orOPTION MIP = GAMSCHK ;for MIP problem in the model right beforeSOLVE

  18. Step 2: Create a new file with extension*.gck that has the same corresponding name as the program file. If your program file is calledchipprob.gms, then make a new file called chipprob.gck

  19. To create a new file, go to the FILE menu and use the NEW option. You will then get a file called untitled with an empty screen. Then save your program as chipprob.gck using the file SAVE option.

  20. As illustration let’s mess up the model. Here are two alternative data input tables. Which one is right? Alternative A What is the meaning of a positive 64 in the Objt? Alternative B What is the meaning of a negative 64 in the Objt?

  21. DISPLAYCRmirrors LIMROW and LIMCOL, but allows to select specific items to be displayed. B A

  22. A

  23. B

  24. A

  25. B

  26. PICTURElooks at magnitude, sign and location of coefficients.

  27. B A Which one is right, A or B?

  28. A BLOCKPIC is used to look at the whole model summary. Is there anything wrong with this BLOCKPIC?

  29. B BLOCKPIC is used to look at the whole model summary.

  30. Revise maximum labor hours from 600 hours to 1200 hours A POSTOPT :used to debug unrealistic solutions.Row Summing :used to reconstruct equation activity. Is there any wrong with this accounting?

  31. A

  32. B Is this accounting reasonable?

  33. B

  34. A POSTOPT : Budgeting is use to reconstruct reduced costs. Is this accounting reasonable, (SiUiAij – Cj = 0 )? Why Xij = 0?

  35. B Is this accounting reasonable, (SiUiAij – Cj = 0 )? Why Xij = 0?

More Related