Allocation by priority

Use this forum to post Vensim related questions.
Post Reply
Panichel
Member
Posts: 20
Joined: Fri Jan 15, 2010 5:27 pm

Allocation by priority

Post by Panichel »

Hi,
I hold a DSS version of Vensim, but I cant find the "allocation by priority" function. Normally, it should be included in this version.
Can we imported it? or can you tell me why I do not have it in my version?
bob@vensim.com
Senior Member
Posts: 1107
Joined: Wed Mar 12, 2003 2:46 pm

Post by bob@vensim.com »

If you go to the Functions tab in the Equation Editor and select All from the "Show Class" dropdown it should be there. You can also just type it into the equation editor.
Panichel
Member
Posts: 20
Joined: Fri Jan 15, 2010 5:27 pm

Post by Panichel »

thanks bob !! it works
Panichel
Member
Posts: 20
Joined: Fri Jan 15, 2010 5:27 pm

Post by Panichel »

Hi bob,
I have an allocation problem that I am trying to solve using the "allocate available" function. However, after reading the manuals I can't really understand how it works and implement it. This is my problem:

I have to allocate "total available suitable land" between different land uses based on land rents (ppriority) and respecting a hierarchical structure of land-use conversion elasticity. However, I have different levels of allocation based on different land-use categories that are inclusive one into the other, as follows:

Total available suitable land = [unmanaged land; economic use land]
Unmanaged land = [primary forest; grassland]
Economic use land = [agricultural land; managed forest]
Agricultural land = [cropland; pasture]
Cropland = [substitutable crops; other crops]
Substitutable crops = [soybeans; corn; wheat; sunflower; other cereals, other oilseeds]

I have tried to define the allocation function as follows:

Land share[land-use type] = ALLOCATE AVAILABLE (land demand [land-use type],
priority[land-use type ,ptype], available land)

The pprofile is defined based on a constant elasticity function so that ptype=5, ppriority=land rent, pwidth=????, pextra (constant elasticity of transformation-CET)

The CET is an indicator of the difficulty to convert land from one level to the next one. So, when CET=0 no conversion is possible. The bigger the CET the easier the land conversion between levels. CET1>CET2>CET3>CET4 so that it is easier to convert soybean land to corn that to convert primary forest to agricultural land. CET constrains priorities to land share representing the producer behaviour of using first the most productive lands.

Questions:
What does x mean in the constant elasticity function: q(x) = q0 * (x/ppriority)^(-pextra) if x > pwidth
What dose pwidth means?
Land demand is a variable, so, how do I define it as so in the allocation function?
Land rent is also a variable, so, the same problem arises.
I have a problem adding subscripts: when I define the variable as subscripts the variable disappears from the model ! I not sure I am using subscripts in the right way. For example, land demand [land-use type] should be a vector of the sum of the demands of each land-use type of that level (e.g. land demand [managed land]=agricultural land demand + managed forest demand), where agricultural land demand and managed forest demand are variables (inputs to the managed land demand).
Allocation function: do I have to define a single allocation function that allocates the "total available suitable land" respecting the hierarchical structure of land transformation priorities or do I have to define allocation functions for each level and then link them based on the hierarchical structure?

I can post the model and the hierarchical structure if you need.
I hope you have understood and you can help me !!! Thanks a lot !
Luis

[Edited on 1-21-2010 by Panichel]
Attachments
Drawing1.jpg
Drawing1.jpg (20.31 KiB) Viewed 11541 times
bob@vensim.com
Senior Member
Posts: 1107
Joined: Wed Mar 12, 2003 2:46 pm

Post by bob@vensim.com »

From what your describe, constant elasticity is probably not the best choice, but I believe there may be a bigger issue at play. The migration of land from one use to another use occurs over time - the allocation logic needs to be working on the rates that change this level, not on the level directly (unless you are assuming some sort of equilibrium). The difficulty of moving from one use to another should be captured outside the allocation logic, it should actually be an input to the price/priority.

It would probably be useful for you to work through Chapter 17 in the User's Guide to get a better understanding of subscripts. For this particular problem it would appear you need

crop : soybean,corn,wheat,sunflower,OtherCereal, OtherOilseed

The allocation of the crops is then accomplished by using cropland - other crop land requirements as the available supply. Everything else seems like it would be a variable, and not a subscript. You could have allocation at different stages - managed land can migrate from agriculture to forest (both levels) depending on the relative value of the two. Using the ALLOCATE AVAILABLE for this would be possible but might be more confusing than useful.

I hope that is helpful.
tomfid
Administrator
Posts: 3815
Joined: Wed May 24, 2006 4:54 am

Post by tomfid »

It may be possible to solve this problem using the FIND ZERO function to find a vector of prices that achieves some equilibrium condition. However, I agree with Bob that it would be better to be explicit about the dynamics.

I would expect that you'd want stocks of land in each category - perhaps explicitly modeled, rather than in an array. Then you'd calculate the rent on each land category, given supply and demand. The rents can be used to identify the desired share of land in each category (perhaps anchoring and adjusting from the current shares). The actual land allocations adjust toward the desired allocations over some time, reflecting the time it takes to notice the opportunity, plan, and implement the change. With that kind of structure, you can have as much hierarchy and asymmetry in the choice process as you want.
Panichel
Member
Posts: 20
Joined: Fri Jan 15, 2010 5:27 pm

Post by Panichel »

Hi Bob and Tomfib !

Bob: I have tried with ALLOCATE AVAILABLE but I applied it to the whole “managed land” because I did not knew how to allocated land between the other land uses then. I have defined an aggregated stock of "managed land" where land shares of the “managed land expansion rate” for each land-use type are defined based on priority [land-use type](land rent*transformation elasticity), “demand[land-use type]” and “managed land expansion rate”). However, "managed land" increases at the rate "unmanaged land" is reduced, so, it is not constant. The Alloc available function should allocate "managed land expansion rate" between different land-use types aggregated in "managed land". The problem is how to determine the “managed land expansion rate"?? This should be a function of market pressure on agricultural land expansion. In fact, I do not think I am getting what I want with this formulation.
What I want to model is the relative land-use change between different land-uses (i.e. if soybean land expands, where is that land taken from and where is the displaced land relocated?) I was thinking to define a land-use types*land-use types matrix of relative priority and treat the problem as a market share allocation problem, where “managed land” is a variable increasing over time based on market pressure for new agricultural land. But, as “unmanaged land” don’t have a land rent, I am not sure how to model agricultural land expansion. What do you think?
In any case, here is the model with Alloc Available applied to the aggregated managed land. I have a problem with this: I get an error (expecting an operator) in “land rent” and “managed land attractiveness” I have defined a pprofile subscript to define attractiveness that is the same for each land-use type, with exception of the priority. I have chosen a Normal ptype function.
I could not make the model run yet because of this problems (expecting an operatior, incomplete number of subscripts, subscript rage do not appear on the left), so I couldn’t analyse behaviour. Can you please take a look to this problem?

Tomfib: Yes, I want to have stocks of each land-use type, that is (soybean, corn, wheat, sunflower, OtherCereal, OtherOilseed, OtherCrops, Pasture, Managed Forest, Grassland and Primary Forest). That is the independent land-use classification. Then I can aggregate for example, grassland and primary forest in "unmanaged land". Then, based on land rent of each land-use type and transformation elasticity (measures the elasticity of land conversion between different levels) I want to estimate land-share for each land-use type. So, now I will try to disaggregate "managed land" in the different land-use types.
I am not familiar with the Find Zero and Anchoring and Adjusting function. Can you further explain please?

Thanks a lot !!
Luis

[Edited on 1-22-2010 by Panichel]
Attachments
LUC_Biodiesel SCH-Economic Managed-Unmanaged land.mdl
(11.83 KiB) Downloaded 340 times
bob@vensim.com
Senior Member
Posts: 1107
Joined: Wed Mar 12, 2003 2:46 pm

Post by bob@vensim.com »

You can only use constants separated by commas when defining multiple values in a single equation. It might be sensible to read through Chapter 2 of the reference manual.

If you are interested in Anchoring and adjustment you might want to download and study the documentation for the molecules - some of this is also covered in the book Business Dynamics.
Panichel
Member
Posts: 20
Joined: Fri Jan 15, 2010 5:27 pm

Post by Panichel »

ok, so, as much as I see I cant use "allocate available" with variables. I will try developing a market share structure based on relative attractiveness, because I need demand and attractiveness to chage over time.
LAUJJL
Senior Member
Posts: 1427
Joined: Fri May 23, 2003 10:09 am
Vensim version: DSS

allocation by priority

Post by LAUJJL »

Hi

What is the nature of your work? Are you a student, a consultant or working for an organisation? What is your need?
JJ
Panichel
Member
Posts: 20
Joined: Fri Jan 15, 2010 5:27 pm

Post by Panichel »

Hi,
I am a PhD student at the Swiss Federal Institue of Technology and I am developing a SD model for my thesis to study land-use changes is soybean-based biodiesel production in Argentina.
tomfid
Administrator
Posts: 3815
Joined: Wed May 24, 2006 4:54 am

Post by tomfid »

You can use ALLOCATE AVAILABLE with variables. The issue in the model posted on 1/15 is that

attractiveness[Corn,pprofile]=
3,corn priority,0,0 ~~|

mixes constants and auxiliaries.

You need to reorganize your subscript equations, for example as:

attractiveness[land use type,ptype] = land use ptype~~|
attractiveness[land use type,ppriority] = land use priority[ppriority]~~|
attractiveness[land use type,pwidth] = land use pwidth~~|
attractiveness[land use type,pextra] = 0~~|

land use priority[Corn] = corn priority~~|
land use priority[Soybeans] = ...

land use ptype = 3~~(better to pull this out as a separate constant so it's easy to change)|
land use pwidth = ... ~~(must be >0)|

Hope that helps.

Tom
Panichel
Member
Posts: 20
Joined: Fri Jan 15, 2010 5:27 pm

Post by Panichel »

great tom ! that works ! thank you very much !!!
Post Reply