Two Ice Cream Vendors

=Problem definition=

Consumers are randomly distributed along a let's say one mile long beach. They all like ice cream the same and dislike walking the same. Prices are regulated and equal for every vendor. There are only two vendors and each is on the other side of the beach. That means that both have almost same profit - half customers go to left side and half to right side. They decide to take customers from the other vendor by moving to another position.

Second extended option is with more than two vendors. There are up to five vendors and customers prefer one more thing - price. So agents try to find nearest and cheapest solution. Or let say some kind of compromise.

=Method=

For my purposes is the best simulating method NetLogo version 5.0.3. I decided to use this tool because I have some experience from earlier subject in school. This program is quite easy to use, user friendly, free and provides really decent service for this problem. Agents are moving randomly such as in reality people on real beach. They do not buy ice cream continuously but only under certain contition. Vendors in standard option have their default positions. In more than two vendors option they are distributed ramdomly on the beach and have different prices.

=Model=

Interface

 * setup - prepare model
 * go - run the program/code
 * number of vendors - with this slider used can adjust number of ice cream shops displayed
 * vendor-position - user can choode from five posibilities I described earlier
 * number-of-people - here user can set number of customers displeyed
 * show-vendor-visit - swithches if number of ice cream shops visits is visible
 * show-price - swithches if price of ice cream is visible
 * show-hunger - swithches if hunger of customers is visible

Agents
There are two breeds of agents. Each has different role and behavior in the model: In case there are more than two vendors, customer has to decide which vendor he pick. There are two factors which influences his way - distance and price. He is facing to the nearest but also wants low price. So if posible he pick the cheaper vendor. So in the model is not possible situation that only one vendor who has clients is the cheapest. All have visits but there are bigger differrences in visits then if price would be the same. I choosed this method because the beach which vendors selling on is long and narrow so in reality they would move like this anyway. Main reason why they started moving from startind positions on side was vision of higher profit. The first one realized that when he move his shop closer to the center, he will take some customers from his competitor because people he left behind still have longer way to go elsewhere and customers he did not reached before now have one more option where to go buy ice cream so he has higher probability to gain more profit.
 * customers - randomly distributed. Maximum number of customers on beach is 500. They get hungry when they reach certain level of hunger which is influenced by moving. Every step increases hunger. In the moment hunger is over the limit, customer goes to buy ice cream. He tries to find the nearest shop. This is the only preference while the prices are equal.
 * vendors - in standard option with two vendors there are five default positions for them: 1. both on each side 2. one on side and second moved closer to the center 3. the one on the side moves on same spon as the second previous step 4. one move to center, other is on same spot 5. both are in center.

=Results=

Standard two vendors situation
These conclusions I have deduced from observation of model behavior. Model does not provide posibility to minitor values interesting for my problem. BehaviorSpace tool count turtle occurence and I need visits divided for each turtle seperatly which i was not able to get from this tool. So here is what I think model does:


 * 1. position - both vendors are on sides. Both have almost same amount of visits
 * 2. position - left one on side, right one on half way to center. The one who moved has significant increase in visits
 * 3. position - both on half way to center. Both have similiar amount of visits
 * 4. position - right one in the center, left one stayed. Similiar to position 2.
 * 5. position - here it is pretty much like in position 1 and 3 but it seems that both have higher amount of visits than in other cases when they had same distance from center.

More than two vendors
Here I observed that after several repeats most visits have the cheapest. Not that the cheapest has the most in all cases, but almost never the most expensive had significant profit. If there was condition onl for price, customers shopped only in one vendor - totally unrealistic. After adding second contition, visits spreaded between all vendors while cheaper have more and expensive less visits.

=Conclusion=


 * Standard two vendors situation - despite fact vendors had similiar profits when they had same distance from each other, the most expedient position is when they are right next to each other in the middle of the beach.

This fact a little bit corresponds with conclusion from the first situation where the nearby position of both vendors was paradoxically the best for them.
 * More than two vendors - here was not the position the main factor to be succesful. If there are for example four vendors, certain advantage is when two of then are next to each other. it is quite interesting because I would say that if there are two same shops on same places they have lower profits. But the near position of two vendors affect cumulating of more customers in one place and they more buying in this area. So even the cheapest one, but separated, does not have much visits.

=Code=