Decision making in Vensim

Use this forum to post Vensim related questions.
Post Reply
hendrikstouten
Junior Member
Posts: 9
Joined: Mon Jun 25, 2007 9:13 am

Decision making in Vensim

Post by hendrikstouten »

Hello,

I am currenlty encountering some problems related to functions in converting a Ithink model to a vensim model.

I am buidling a model about sea fishery fleet dynamics, more precise: How fishermen allocate their fishing efforts and how they invest.

In allocating their effort, fishermen are searching the BEST place to fish. Presently, in my model that best place is where they catch the most fish (= the highest Catch per unit of effort CPUE).

This CPUE is a function of the vessel type their using combined with the fishing ground they are choosing (= a two-dimensional array).

So, now I am searching a function in Vensim which allows me to 'scan' this matrix, and give me for each vessel type (row) the ID (of the colom) of the fishing ground witch is the best (= highest CPUE). In Ithink there is a build-in function ARRAYMAXID which makes that possible.

I have a second question about functions: I have integrated fish quota as stocks in my model. These stocks are declining over the year due to catches of the fishermen. But, after 365 days these quota need to be set again to the level of their initial value. Is their an easy way to do this? In Ithink, I used a pulse function in combination with a counter. The counter counted to 366 days. On 365 days, the quota where resetted to 0 fish, and on 366, the new quota where launched (by pulse) in the stock (quota).

If someone can help me out, it would mean al lot to me.

Kinds,

Hendrik Stouten
bob@vensim.com
Senior Member
Posts: 1107
Joined: Wed Mar 12, 2003 2:46 pm

Post by bob@vensim.com »

To find the place to fish use the VECTOR_SORT_ORDER function with a negative order argument - the first subscript value of the returned array is the max. The number of boats fishing at a spot is then the SUM with and IF THEN ELSE(bestlocation[vessel]=location!,1,0) inside of it.

To reset a stock use IF THEN ELSE(Time = MODULO(Time,265),restocking targe/TIME STEP,0) as the inflow.

Hope that helps.
hendrikstouten
Junior Member
Posts: 9
Joined: Mon Jun 25, 2007 9:13 am

Post by hendrikstouten »

Thanks for the respons,
But I am a beginner and not following completely.

VECTOR SORT ORDER†(vec,direction): Your advice is to use this VECTOR SORT ORDER function with a negative order argument. But what is a negative order argument? It has to do with the 'direction', but which values can you put in, and what do you need to do to make it a negative argument?
If this function is put into practice, it will convert matrix A into matrix B (where VT = vessel type and FG = fishing ground)

Matrix A: Catch per unit of Effort

FG1 FG2 FG2
VT1 200 100 50
VT 2 100 200 50
VT 3 50 200 100

Matrix B: the VECTOR SORT ORDER function
FG1 FG2 FG2
VT1 2 1 0
VT 2 1 2 0
VT 3 0 2 1


Is this correct?
Wilson
Administrator
Posts: 51
Joined: Thu Mar 06, 2003 5:05 am

Post by Wilson »

Hi Hendrik,

Have a look at the little attached model, I think from your description this is what your trying to do.

I have broken the method down into a model structure rather than use the Vector_sort_order function, as when I started doing things like this the function wasn't around.

Beware however, if more than one fishing ground has the same maximum CPUE you'll get the wrong answer. If the CPUE matrix is always integer, you could just add something like 1/FG ID[FG] to each of the CPUE scores to make them unique.

Hope this helps. I've just delivered a fishery model of the North Sea this afternoon, good to see someone else working in this field using Vensim.
Attachments
fishing ground.mdl
(2.21 KiB) Downloaded 346 times
hendrikstouten
Junior Member
Posts: 9
Joined: Mon Jun 25, 2007 9:13 am

Post by hendrikstouten »

Dear Mr Wilson,

Your attached model is indeed what I am looking for. Thank you very much, it helps me a lot.
If possible, I am interested in you model about the North Sea. I am from Belgium and currently working in Sea Fisheries, so the North Sea is my major reseach area.

Hope to hear more from your work.
I do not know the options for getting in touch with you, since posting emails on a forum in not the smartest thing to do.

Hendrik
Post Reply