Här ges exempel på hur du skapar kontovariabler och med restriktioner kan styra produktion och utfall av olika nyttigheter.

 

<%EXTOGGLE%>Kontovariabel: Areal gammal skog

Här skapar du en kontovariabel som

1.Lägg till en ny variabel som heter ArealGammalSkog med periodindex Periods (p) och RangeType = non-negative. Se kontovariabel.
2.Skriv in definitionen i syntaxfönstret:

optModel_GamSkog

 

 

forall <p> in periods :

 

sum <i,j> in TreatmentUnits*Alternatives with

 

 altIncluded[i,j] == 1 and mAlder[i,j,p] >= 100 :

 

  area[i]*x[i,j] == ArealGammalSkog[p] ;

 

prod_tip       Tips - modellparameter istället för "hårdkodning"!

Istället för att ange siffran 100 som krav för gammal skog, kan du skapa en parameter som du kallar t ex "minAlder" av typen "Konstant värde", ge den värdet 100, och byta ut 100 i definitionen ovan mot "minAlder". Denna typ av parametrisering underlättar om du använder ett visst värde på flera ställen i en modell.

 

<%EXTOGGLE%>Restriktion: Krav på andel gammal skog

Scenario: Du vill lägga in ett krav på att minst 10 % av arealen ska bestå av 100-årig skog eller äldre, i varje tidsperiod.

 

Förutsättningar:

Du har skapat en kontovariabel med namnet "ArealGammalSkog" (se ovan) för areal skog som är minst 100 år.
Du har skapat en formel-parameter med namnet "SummaAreal" för summan av beståndens areal.

 

 

1.Högerklicka på "Constraints" och välj "Lägg till ny restriktion".

OptModel_addConstraint

2.Skriv in ett namn, t ex "MinArealGammalSkog" och klicka på OK
3.Välj restriktionen och skriv in definitionen i syntaxfönstret.

OptModel_addConstraintMinAreaGamSkog

 

 

forall <p> in periods :

 

ArealGammalSkog[p] >= 0.1 * SummaAreal;

 

 

 

tog_minusAreal som blädas

Scenario: Du vill analysera vad det skulle innebära att tillämpa blädning på minst 10 % av arealen, och låta optimeringsmodellen bestämma i vilka bestånd som blädningsbruk ska tillämpas.

Förutsättningar:

Du har kört TPG med där både blädnings- och trakhyggesbruksalternativ tagits fram för 30 % av bestånden. Se steg 1-7  under Blädning/hyggesfritt (PlanVis).
1.Om det inte redan är gjort, så lägg till en parameter för vilken kontrollkategori som har använts för ett visst skötselprogram och ett visst bestånd.
2.Lägg till en variabel som heter "ArealHyggesfritt", (eventuellt med periodindex p om generation 1 och 2 kan skötas med olika kategorier) med följande definition:

sum <i,j> in TreatmentUnits*Alternatives with altIncluded[i,j] == 1 and trmtCategory{i,j,0] = 2 : area[i]*x[i,j] == ArealHyggesFritt ;

 

Anmärkning: Här antar vi att kontrollkategorin "Blädning" har löpnummer 2. För att ta reda på faktiskt nummer högerklickar du på parametern trmtCategory[i,j,t] i modellträdet, väljer Visa definition, väljer den TPG-simulering som avses, och då visas vilket nummer som motsvarar vilket kategori:

Klicka för att förstora

3.Lägg sedan till en restriktion som heter "MinArealHyggesfritt", t ex med definitionen

ArealHyggesFritt >= 0.1 * SummaAreal;

Där SummaAreal är en "Formell"-parameter som summerar totala arealen (se exempel på just SummaAreal), och vi antar att högst 10 % av denna ska skötas med hyggesfritt.

 

 

 

Se även:

Author: Peder Wikström. Created with Help & Manual 6 and styled with Premium Pack Version 2.31 © by EC Software