fasom hamburg january 17-19, 2007. topics 1.fasom basics 2.fasom equations 3.analyzing fasom...

Post on 21-Dec-2015

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

FASOMFASOM

HamburgHamburg

January 17-19, 2007January 17-19, 2007

TopicsTopics

1. FASOM Basics

2. FASOM Equations

3. Analyzing FASOM

4. Modifying FASOM

I FASOM BasicsI FASOM Basics

Model ScopeModel Scope

• Natural Resources

• Agriculture

• Forestry

• Processing

• Food, Fibre, Timber, Energy Markets

Purpose and ObjectivesPurpose and Objectives

To study and advice policy makers about the agricultural and forestry sector response to

a) Policies

b) Environmental change

c) Technical change

d) Socioeconomic change

Policy ScopePolicy Scope

• Climate and other environmental policies

• Research subsidies

• Agricultural policies

• Trade policies

Simultaneous assessment

Structural ChangesStructural Changes

a) Policies

b) Environmental change

c) Technical change

d) Socioeconomic change (population, preferences)

MethodologyMethodology

• Partial Equilibrium• Bottom Up• Constrained Welfare Maximization• Dynamic Optimization• Integrated Assessment• Mathematical programming• GAMS

Model StructureModel Structure

Resources Land Use

Technologies

Processing Technologies

Products Markets

Inputs

Limits

Supply Functions

Limits

Demand Functions,Trade

Limits

Environmental Impacts

FASOM is a Large Linear ProgramFASOM is a Large Linear Program

jallfor0X

iallforbXa..

Xc

j

ij

jij

jjj

ts

Max

ProgrammingProgramming

Declare and Assign

• Indexes

• Exogenous data

• Endogenous data

• Equations (endogenous/exogenous)

Run Programs and Display Results

Major Indexes (Sets)Major Indexes (Sets) (decl_basicsets.gms)(decl_basicsets.gms)

• Regions

• Periods

• Altitudes

• Species

• Resources

• Cohorts

• Farm sizes

• Farm types

• Technologies

• Products

• Substances

SetsSets

• Identify scope• Efficient, sometimes challenging• Super sets, Sub sets, Tuples (Index maps)

• decl_basicsets.gms• 2_activesets.gms• calc_tuples.gms

Exogenous DataExogenous Data

• Resource endowments

• Technologies (Inputs,Outputs, Costs)

• Environmental Impacts

• Demand functions

• Policies

• Base Year Observations

Exogenous DataExogenous Data

• Parameters (Tables, Scalars)

• decl_parameters.gms

• Data_*.gms

Data SubdirectoriesData Subdirectories

• EPIC

• FINDUS

• FADN + others

• OSKAR

• FAO

• BIODIV

Endogenous DataEndogenous Data

• Land use decisions (control variables), Impacts (state variables), Shadow prices of constraints

• Positive and Free Variables• (Integer Variabales)

• 4_eufasom_model.gms

EquationsEquations

• Understanding them is

• to understand FASOM

EquationsEquations

• Objective Function

• Resource Restrictions

• Technological Restrictions

• Environmental Accounts

• Others

Major ParametersMajor ParametersFOREST_DATA FOREST_DATA (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,AGE,ALLTECH,ALLITEM)(PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,AGE,ALLTECH,ALLITEM)

PEREN_DATA PEREN_DATA (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,AGE,ALLTECH,ALLITEM)(PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,AGE,ALLTECH,ALLITEM)

CROP_DATA (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,ALLTECH,ALLITEM)CROP_DATA (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,ALLTECH,ALLITEM)

ECO_DATA (PERIOD,REGION,SOILTYPE,SOILSTATE,ALLTECH,ALLITEM)ECO_DATA (PERIOD,REGION,SOILTYPE,SOILSTATE,ALLTECH,ALLITEM)

LIVE_DATA (PERIOD,REGION,ANIMAL,ALLTECH,ALLITEM)LIVE_DATA (PERIOD,REGION,ANIMAL,ALLTECH,ALLITEM)

FEED_DATA (PERIOD,REGION,PRODUCT,ALLTECH,ALLITEM)FEED_DATA (PERIOD,REGION,PRODUCT,ALLTECH,ALLITEM)

PROCESS_DATA (PERIOD,REGION,ALLTECH,ALLITEM)PROCESS_DATA (PERIOD,REGION,ALLTECH,ALLITEM)

PRODUCT_DATA (PERIOD,REGION,PRODUCT,ALLITEM)PRODUCT_DATA (PERIOD,REGION,PRODUCT,ALLITEM)

MARKET_DATA (PERIOD,REGION,ALLITEM,SDTYPE,SDITEM)MARKET_DATA (PERIOD,REGION,ALLITEM,SDTYPE,SDITEM)

TRADE_DATA (PERIOD,REGION,REGION,PRODUCT,ALLITEM)TRADE_DATA (PERIOD,REGION,REGION,PRODUCT,ALLITEM)

RESOURCE_DATA (PERIOD,REGION,ALLRESOURCE,SDITEM)RESOURCE_DATA (PERIOD,REGION,ALLRESOURCE,SDITEM)

STOCK_DATA (PERIOD,REGION,PRODUCT,ALLITEM)STOCK_DATA (PERIOD,REGION,PRODUCT,ALLITEM)

LUC_DATA (PERIOD,REGION,SOILTYPE,SPECIES,ALLCHANGE,ALLITEM)LUC_DATA (PERIOD,REGION,SOILTYPE,SPECIES,ALLCHANGE,ALLITEM)

Major VariablesMajor VariablesRESOURCE_VAR (PERIOD,REGION,RESOURCE) RESOURCE_VAR (PERIOD,REGION,RESOURCE)

FOREST_VAR FOREST_VAR (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,OWNER,AGE,FORTECH) (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,OWNER,AGE,FORTECH)

PEREN_VAR PEREN_VAR (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,AGE,CROPTECH) (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,AGE,CROPTECH)

CROP_VAR (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,CROPTECH) CROP_VAR (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,FARM,CROPTECH)

LIVE_VAR (PERIOD,REGION,ANIMAL,LIVETECH) LIVE_VAR (PERIOD,REGION,ANIMAL,LIVETECH)

FEED_VAR (PERIOD,REGION,ANIMAL,PRODUCT,FEEDTECH)FEED_VAR (PERIOD,REGION,ANIMAL,PRODUCT,FEEDTECH)

ECO_VAR (PERIOD,REGION,SOILTYPE,SOILSTATE,ECOTECH) ECO_VAR (PERIOD,REGION,SOILTYPE,SOILSTATE,ECOTECH)

PROCESS_VAR (PERIOD,REGION,PROCTECH) PROCESS_VAR (PERIOD,REGION,PROCTECH)

LUC_VAR (PERIOD,REGION,SOILTYPE,SPECIES,CHANGE) LUC_VAR (PERIOD,REGION,SOILTYPE,SPECIES,CHANGE)

DEMAND_VAR (PERIOD,REGION,PRODUCT) DEMAND_VAR (PERIOD,REGION,PRODUCT)

SUPPLY_VAR (PERIOD,REGION,PRODUCT) SUPPLY_VAR (PERIOD,REGION,PRODUCT)

TRADE_VAR (PERIOD,REGION,REGION,PRODUCT) TRADE_VAR (PERIOD,REGION,REGION,PRODUCT)

Major EquationsMajor EquationsOBJECTIVE_EQU OBJECTIVE_EQU

RESOURCEBAL_EQU (PERIOD,REGION,RESOURCE) RESOURCEBAL_EQU (PERIOD,REGION,RESOURCE)

RESOURCEMAX_EQU (PERIOD,REGION,RESOURCE) RESOURCEMAX_EQU (PERIOD,REGION,RESOURCE)

SOILSTATE_EQU (PERIOD,REGION,SOILTYPE,SOILSTATE) SOILSTATE_EQU (PERIOD,REGION,SOILTYPE,SOILSTATE)

FORINVENT_EQU FORINVENT_EQU (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,OWNER,AGE,FORTECH) (PERIOD,REGION,SOILTYPE,SOILSTATE,SPECIES,OWNER,AGE,FORTECH)

LUC_EQU (PERIOD,REGION,SOILTYPE,SPECIES,CHANGE) LUC_EQU (PERIOD,REGION,SOILTYPE,SPECIES,CHANGE)

LUCLIMIT_EQU (PERIOD,REGION,SOILTYPE,SPECIES,CHANGE) LUCLIMIT_EQU (PERIOD,REGION,SOILTYPE,SPECIES,CHANGE)

STOCK_EQU (PERIOD,REGION,STOCK)STOCK_EQU (PERIOD,REGION,STOCK)

EMIT_EQU (PERIOD,REGION,SUBSTANCE)EMIT_EQU (PERIOD,REGION,SUBSTANCE)

PRODUCTBAL_EQU (PERIOD,REGION,PRODUCT) PRODUCTBAL_EQU (PERIOD,REGION,PRODUCT)

MINFEED_EQU (PERIOD,REGION,ANIMAL,NUTRIENT) MINFEED_EQU (PERIOD,REGION,ANIMAL,NUTRIENT)

MAXFEED_EQU (PERIOD,REGION,ANIMAL,NUTRIENT) MAXFEED_EQU (PERIOD,REGION,ANIMAL,NUTRIENT)

Managing the Model ScopeManaging the Model Scope

• 2_active_sets.gms– index elements on/off

• decl_scope.gms– components on/off

FASOM File StructureFASOM File Structure

• Main directory (full access)• Data subdirectories (restricted access)

– Agriculture (FADN) – Crop environmental impacts (EPIC)– Bioenergy (ENFA)– Nature Reserves (HABITAT)– Forest Stands (OSKAR)– Forest Industry (FINDUS)– FAOSTAT– Dynamics

FASOM File Naming (Main Dir)FASOM File Naming (Main Dir)

• Data files (data_*.gms)• Declaration files (decl_*.gms)• Input calculation files (calc_*.gms)• Program files (#_*.gms)• GAMSCHK files (*.gck), Solver option files (*.opt)• Report files (rep_*.gms)• Special program files (z#_*.gms)

* = description# = 1,2,...,k

FASOM Sub DirectoriesFASOM Sub Directories

• Store original data files in provider format

• Convert data to FASOM format (names, resolution, unit consistency)

• Automated programs, slow, infrequent use

• Protect main FASOM directory from information floods

• Confidentiality (FADN), IPR

FASOM ExecutionFASOM Execution

• 1_load_data.gms (primary data files)

• 2_active_sets.gms (determine model size)

• 3_precompute.gms (calculation files)

• 4_eufasom_model.gms (equations)

• 5_base_report.gms (base solution report)

• 6_scenario.gms (repeated solves)

• 7_results.gms (scenario differences)

Save / RestartSave / Restart

When using GAMSIDE, each program segment must restart from previous one and save for the next

• 1_load_data.gms (save .\t\a1)• 2_active_sets.gms (restart .\t\a1 save .\t\a2)• 3_precompute.gms (restart .\t\a2 save .\t\a3)• 4_eufasom_model.gms (restart .\t\a3 save .\t\a4)• 5_base_report.gms (restart .\t\a3 save .\t\a4)• ...

1_load_data.gms1_load_data.gms

* Indexes$include decl_basicsets.gms$include decl_foresttuple.gms$offlisting* Load Data$include data_crop2000.gms$include data_faowood.gms$include data_faocrop.gms$include data_faoworldcrop2002.gms$include data_oatsprice.gms$include data_feed.gms$include data_land.gms$include data_cropsupply.gms$include data_averagecropemission.gms

$include data_euepic.gms $include data_euluc.gms$include data_uscrops.gms$include data_peat.gms$include data_forprocess.gms$include data_forproduct.gms$include data_formarket.gms$include data_treelog.gms$include data_rotlength.gms$include data_forestrent.gms$include data_forest_set.gms$include data_forest_nor.gms$include data_forest_lrg.gms$include data_forest_sml.gms

2_active_sets.gms2_active_sets.gms

• Define active set elements• Region• Period• Product• Cohort

• Can limit model scope to 1 Region, 1 Period, 1 Product

3_precompute.gms3_precompute.gms

• Assumptions and Definitions (Discounting)• Deal with Data Gaps• Calculations (Data, Tuples)• Checks• Calibrations (Zero Marginal Profits!)• Experiments

• Check whether statements can be moved to subdirectory

4_eufasom_model.gms4_eufasom_model.gms

• Variable declarations

• Equation declarations

• On/off switches for some equations

• FASOM equations (see part II)

• First solve statement

• 4_eufasom_model.gck

5_base_report.gms5_base_report.gms

• Declaration of report indexes and parameters

• Display of FASOM base solution– Current period (?=? observation)– Future periods (?=? econometric forecast)

6_scenario_loop.gms6_scenario_loop.gms

• Define scenarios – Number (Set)– Assumptions (Parameters)– Declare report

• Loop over scenario set– Restore all parameters to original values– Implement scenario assumptions– Solve – Save solution

7_scenario_report.gms7_scenario_report.gms

• Display scenario results

• Comparison between base line solution and scenario solution

8_scenario_graphs.gms8_scenario_graphs.gms

• Display scenario results graphically

• Need gnupltxy installed

II FASOM EquationsII FASOM Equations

4_eufasom_model.gms4_eufasom_model.gms

Understanding FASOM EquationsUnderstanding FASOM Equations

a) GAMS code (indexed equation block)

b) DISPLAYCR output (individual equations)

c) Display equation components

Condition(al)sCondition(al)s

• Restrict cases (very important, many indexes)

• Use GAMSCHK to check

PRODUCTBAL_EQU(REGION,PERIOD,PRODUCT)

$ PRODUCT_TUPLE(REGION,PERIOD,PRODUCT)..

• calc_tuples.gms

Constrained OptimizationConstrained Optimization

Max z = f(X) ... objective function

s.t. G(X) <= 0 ... constraints

FASOM = Large Linear ProgramsFASOM = Large Linear Programs

jallfor0X

iallforbXa..

Xc

j

ij

jij

jjj

ts

Max

Objective FunctionObjective Function(Normative Economics)(Normative Economics)

Maximize

+ Area underneath demand curves

- Area underneath supply curves

- Costs

± Subsidies / Taxes from policies

Maximum equilibrates markets!

Alternative Objective FunctionAlternative Objective Function

To get „technical potentials“ from land use for alternative objective u, simply use

Maximize

u s.t. all constraints

Examples: u = Carbon Sequestration, Wheat production, Mire area

Is FASOM linear?Is FASOM linear?

• Input prices increase with increasing input use (scarcity of resources)

• Output prices decrease with increasing output supply (saturation of demand)

• Hence, FASOM has non-linear objective function but is solved as Linear Program using linear approximations

Linear Approximation?Linear Approximation?

• For well behaved functions: yes– Concave benefit / convex cost functions– Decreasing marginal utilities– Increasing marginal costs

• For ill behaved: no, need integer variables– Fixed cost (Investment)– Minimum habitat requirements (Biodiversity)

Linear Approximation in FASOMLinear Approximation in FASOM

• Use step variables (xi) ... with i steps• Convexity Restriction

Sum(i, xi) = 1

• Identity RestrictionSum(i, aixi) = x

DEMAND_VAR(REGION,PERIOD,PRODUCT)DEMAND_STEP(REGION,PERIOD,PRODUCT,STEP)DEMAND_CONVEXITY(REGION,PERIOD,PRODUCT)DEMAND_IDENTITY(REGION,PERIOD,PRODUCT)

How many steps?

How many steps?

Correct Convex Combination?Correct Convex Combination?

Model will automatically choose closest neighbor points

q 100q-0.5q^2 Share Share2 198.0 0.53 295.5 0.54 392.0 0.55 487.5 0.5

Welfare 343.75 342.75Quantity 3.5 3.5

ConstraintsConstraints

PRODUCTBAL_EQUPRODUCTBAL_EQU

• Very important

• Multi-input, Multi-output

• Negative coefficients - Inputs

• Positive coefficients - Outputs

RESOURCEBAL_EQURESOURCEBAL_EQU

• Sum resource uses over all technologies, species, farm structures into an accounting variable

RESOURCE_VAR(REGION,PERIOD,RESOURCE)

RESOURCEMAX_EQURESOURCEMAX_EQU

• Represent resource limits (endowments)

RESOURCE_VAR(REGION,PERIOD,RESOURCE)

RESOURCE_DATA

(REGION,PERIOD,RESOURCE,”Maximum”)

LUC_EQULUC_EQU

LUC_EQU(REGION,PERIOD,SOILTYPE,SPECIES,CHANGE)

$ LUC_TUPLE(REGION,PERIOD,SOILTYPE,SPECIES,CHANGE)..

• Land use accounting equation

• Combines individual and aggregated accounting

LUCLIMIT_EQULUCLIMIT_EQU

LUCLIMIT_EQU(REGION,PERIOD,SOILTYPE,SPECIES,CHANGE)

$(LUC_TUPLE(REGION,PERIOD,SOILTYPE,SPECIES,CHANGE) AND

LUC_DATA(REGION,PERIOD,SOILTYPE,SPECIES,CHANGE,

"MAXIMUM"))..

• Land use change limits

• Should be based on land characteristics

• Currently uses rough assumptions

FORINVENT_EQUFORINVENT_EQU

• Forest distribution this period depends on forest distribution in last period and harvest activities

• Note:– Oldest cohort transition– Initial distribution– Harvested forests can immeadiatly be

reforested

INTIALFOREST_EQUINTIALFOREST_EQU

• Thinning regime cannot be switched

• Initial thinning distribution unknown

• Let model decide, which thinning regime to use for initial forests

REPLANT_EQUREPLANT_EQU

• Restricts tree species that can be replanted after harvest (can have agricultural break inbetween)

• Regulated by tuple SPECIESSEQU_MAP(OLDSPECIES,SPECIES)

• Currently restrictive

SOILSTATE_EQUSOILSTATE_EQU

• To portray important unstable soil properties

• Carbon sequestration effect depends on soil carbon level

• Equations are implemented, EPIC data are not yet established

SOILSTATE_EQU(REGION,PERIOD,SOILTYPE,SOILSTATE)

SOILSTATE_EQUSOILSTATE_EQU

• To portray important unstable soil properties

• Carbon sequestration effect depends on soil carbon level

• Equations are implemented, EPIC data are not yet established

SOILSTATE_EQUSOILSTATE_EQU

• Contains soil state transition probabilities

Probability_Data(REGION,SOILTYPE,SOILSTATE,SPECIES, OWNER,COHORT,ALLTECH,POLICY,OLDSTATE)

• Transition probabilities are calculated from EPIC based carbon functions

Soil Carbon Transition ProbabilitiesSoil Carbon Transition Probabilities

SOC1 SOC2 SOC3 SOC4 SOC5 SOC6 SOC7 SOC8

SOC1 0.81 0.19

SOC2 1

SOC3 0.09 0.91

SOC4 0.31 0.69

SOC5 0.5 0.5

SOC6 0.74 0.26

SOC7 1

SOC8 0.04 0.96

No-till Wheat Fallow

Soi

l Org

anic

Car

bon

(tC

/ha/

20cm

)

5

10

15

20

25

30

35

40

45

0 10 20 30 40 50Time (years)

Wheat-Lucerne 3/3

Wheat-Lucerne 6/3

No-till wheat-fallow

Tilled wheat-fallow

Carbon FunctionsCarbon Functions

STOCK_EQUSTOCK_EQU

STOCK_EQU(REGION,PERIOD,STOCK)

$(STOCK_TUPLE(REGION,PERIOD,STOCK) AND

STOCK_DATA(REGION,PERIOD,STOCK,"DecompRate"))..

• Represents dynamics of dead wood (14 types)

• Linked to emission accounting

PRODUCTINVENT_EQUPRODUCTINVENT_EQU

PRODUCTINVENT_EQU(REGION,PERIOD,PRODUCT)

• Represents different product life span of forest products

• Linked to carbon emissions from forest products

EMIT_EQUEMIT_EQU

EMIT_EQU(REGION,PERIOD,SUBSTANCE)

$ EMIT_TUPLE(REGION,PERIOD,SUBSTANCE)..

• Accounting equation

• Contains direct emissions and emissions from stock changes

POPULATION_EQUPOPULATION_EQU

• Computes the number of wild animals on suitable habitats

POPULATION_EQU(REGION,PERIOD,ECOSYSTEM,ANIMAL) $ HABITAT_DATA(REGION,PERIOD,ECOSYSTEM,ANIMAL,"DENSITY")..

POP_VAR(REGION,PERIOD,ECOSYSTEM,ANIMAL)

- HABITAT_DATA(REGION,PERIOD,ECOSYSTEM,ANIMAL,"DENSITY") * ( HABITAT_DATA(REGION,PERIOD,ECOSYSTEM,ANIMAL,"MINIMUM")* HABSIZE_BINVAR(REGION,PERIOD,ECOSYSTEM,ANIMAL) +HABITAT1_VAR(REGION,PERIOD,ECOSYSTEM,ANIMAL))

=L= 0;

HABITAT0_EQU, HABITAT1_EQUHABITAT0_EQU, HABITAT1_EQU

• See presentation in wetland sub directory

Other EquationsOther Equations

• Crop mix

• Calibration constraints

III Analyzing FASOMIII Analyzing FASOM

Why Large Models?Why Large Models?

• Land use is diverse and globally linked

• We want both high resolution and large

scope

• More computer power tempts larger

models

• Data availability better

Large Model EffectsLarge Model Effects

• Indexed data, variables, and equations

• Dimensions need to be carefully conditioned

• More things can go wrong

• Less intuition in model drivers

• Causes of misbehavior difficult to guess

• Higher probability that some errors are not discovered

Pre-Solution AnalysisPre-Solution Analysis

• Generic variable and equation checks

• About 30 different types

• Easy in GAMS through use of GAMSCHK, possible with other software

ExampleExample

• Nonnegative Variable Xj occurs only in <= constraints

• All aij coefficients are nonnegative

• All objective function coefficients (cj) are nonpositive

Optimal Xj = 0! (Maximization problem)

More Generic ChecksMore Generic Checks

Generic ErrorsGeneric Errors

Caused by:• Missing/misspecified data• Missing/misspecified conditions• Missing/misspecified equations

Correction (rule of thumb):• All individual variables need the same

condition in all individual equations

Generic ChecksGeneric Checks

• Large models frequently reveal unchecked generic errors

• Errors may or may not impact optimal solution

• Correction always increases model speed

• Detection and correction of generic errors also applicable to non-linear models

Post-Solution AnalysisPost-Solution Analysisof “Misbehaving” Solutionsof “Misbehaving” Solutions

Infeasible equations

empty solution

Unbounded variables

objective reaches infinity

Non-sensible solutions

InfeasibilityInfeasibility

• Very easy to detect

• Easy to fix

• Use artificial variables

• Analyze equations with non-zero artificial variables

• Look for constraints with high shadow prices

Unbounded SolutionUnbounded Solution

• Very easy to detect

• Easy to fix

• Add artificial bounds

• Look for high variable levels

• Examine equations coefficients of unbounded variables

Non-sensible solution valuesNon-sensible solution values

• Detection requires context knowledge

• Problem analysis more challenging

• Large deviations easier

• Must employ post optimality checks

• Start at the symptom

• Go backwards alternating between variables and equations

Linear Program DualityLinear Program Duality

i allfor 0 U

j allfor caUs.t.

ZbUMin

i

ji

iji

iii

jallfor0X

iallforbXa..

ZXc

j

ij

jij

jjj

ts

Max

Reduced CostReduced Cost

j

ji

iij X

ZcUa

Shadow prices

TechnicalCoefficients

ObjectiveFunctionCoefficients

Complementary SlacknessComplementary Slackness

*' *

*' *

0U b AX

0U A C X

Reduced Cost Opt. Variable Level

Shadow Price Opt. Slack Variable Level

Reduced Cost EqualityReduced Cost Equality

• Links variables with individual equations

• Positive aij*Ui costs (Maximization)

• Negative aij*Ui benefits (Maximization)

Ex: Reduced Cost Computation

Ex: Row Summing

Fixing Non-sensible ModelsFixing Non-sensible Models

• Zero/large variables: look at cost and benefits of these variables in individual equations

• High shadow prices: indicate resource scarcity (check endowments, technical coefficients, units)

• In general, analyst needs a combination of mathematical and context knowledge

ConclusionsConclusions

• Large mathematical programming models are not necessarily black boxes

• Drivers for individual results can be traced and understood

• Generic misspecifications can and should always be corrected

• Systematic post-optimality analysis is by far better and faster than intuition and guesswork

IV Modifying FASOMIV Modifying FASOM

Possible ModicficationsPossible Modicfications

• Data updates

• Data calculations

• Scenario anaysis

• Equation modifications

Easy

Difficult

DocumentationDocumentation

• Write log of changes in text file

• Place comments on purpose of programming statements in FASOM code

• Put „????“ where you make preliminary modifications

Frequent ErrorsFrequent Errors

• Units (Ex: 5 vs. 1 years)

• Inconsistent conditions

• Ignorance of GAMSCHK

top related