Assignments WS 2015/2016
Please, put here your assignments. Do not forget to sign them. You can use ~~~~ (four tildas) for an automatic signature. Use Show preview in order to check the result before your final sumbition.
Please, strive to formulate your assignment carefully. We expect an adequate effort to formulate the assignment as it is your semestral paper. Do not forget that your main goal is a research paper. It means your simulation model must generate the results that are specific, measurable and verifiable. Think twice how you will develop your model, which entities you will use, draw a model diagram, consider what you will measure. No sooner than when you have a good idea about the model, submit your assignment. And of course, read How to deal with the simulation assignment.
In order to avoid possible confusion, please, check if you have added approved in bold somewhere in our comment under your submission. If there is no approved, it means the assignment was not approved yet.
- 1 Assignments
- 1.1 mand01: Chemicals manufacturing process simulation
- 1.2 mand01: Aircraft boarding methods
- 1.3 knam00:Heating system simulation
- 1.4 Christmas market
- 1.5 Fastfood restaurant
- 1.6 xsedd07: assignment
- 1.7 xtomp36: assigment
- 1.8 Predator-Prey simulation
- 1.9 xhudj17: assigment
- 1.10 xzimm00: Smart car traffic optimization
- 1.11 Maze Solving Robot Simulation
- 1.12 Simulation of Aqua park
- 1.13 Otakar Trunda: The Ultimatum Game
- 1.14 ZCH webshop simulation
Oleg.Svatos (talk) 15:35, 29 November 2015 (CET) Just to warn you in advance - topics like roulette, lottery and other simulations based purely on uniform randomnes will not be accepted as Monte Carlo simulation.
mand01: Chemicals manufacturing process simulation
The simulation shows how pharmaceutical companies' manufacturing process is held. In this case manufacturing process is a chemical batch production process which has shared resources. There are two basic systems included: Ordering system and Production systems. The first one generates orders of chemicals to be produced with different demands on a production. As this simulation is for educational purposes, I have decided to simplify the model to 2 types of drugs produced. The production system is assigning reactors to a particular order and processing it. We have shared resources and one of the main shared resource is a reactor. One reactor processing one order. Once an order is received we align each per order and then production begins, which include several steps as adding water, heating water, adding particles, stiring and draining. After all production steps we release the reactor for the next order.
This model explores how to solve resource allocation problem.
We need to process 100 orders (60 orders for drug A and 40 for drug B) in a month. Reactors works 12 hours a day. We obtain 5 reactors, we can add water to two reactors simultaneously and heat two reactors at a time.
Drug A: adding water 2 hours, heating 3 hours, adding particles 1 hour, stiring 3 hours and draining 3 hours
Drug B: adding water 1 hour, heating 2 hours, adding paticles 30 min, stiring 5 hours and draining 3 hours
Do we need an additional reactor to acomplish this task?
Tool to be used - Simprocess
As stated here, for discrete event simulations a real problem from real business with real data is mandatory.
mand01: Aircraft boarding methods
This simulation explores different methods of aircraft boardings. Airports serves thousands of people every day and one of the main problems they meet is the efficiant boarding of passengers.
Exists several methods of boarding:
- random (which is widely used, the most common): people just taking their seats without any specific order
- WMA (Windows-Middle-Aisle) - boarding is divided into three groups: seats near the windows, middle seats and aisle seats. The first boarding group is windows then middle and finally the aisle group.
- Back-front WMA: we divide groups in the same way as in WMA, but the only difference, that we sort passengers in decreasing order. For each group boadring starts from back of the plane.
To simulate different boarding scenarious and try to find out the optimal one.
Agents: passengers (row number, seat number, isSitting, isMoving, luggage, luggageLoadTime, orderingNumber)
Simulation ends when all passengers are sitting (isSitting == true). Every agent is independent, random number of passengers are with luggage, luggage has the same size.
For simulation we can chose the boarding method, probability of passengers with luggage. Other parameters are fixed. Plane: 18 rows x 6 seats (3 per each side).
knam00:Heating system simulation
Most households in the Czech Republic have mains gas central heating. This is a so-called ‘wet system’, which means a gas-fired boiler heats water to provide central heating through radiators and hot water through the taps in your home.
Some houses that aren’t connected to the gas network can use electrical heating or liquid petroleum gas (LPG) or heating oil, which work in a similar way to gas central heating, although LPG and oil are delivered by road and stored in a tank, which you may have to buy or rent from your supplier.
Gas is a highly efficient fuel, so you get a good return on every unit of energy. Modern condensing boilers, which use hot flue gases that are wasted in a standard boiler, have very high efficiency. Some are now 90% or more efficient.
There are 6 people using this flat. Each person periodically comes and leaves. Pair 1 comes on monday and leaves on wednesday Pair 2 comes on monday and leaves on friday There are also 2 boys sharing another room - The first one stays here for the whole week and the second one leaves on saturday and comes on monday.
We own 25kW condensing boiler with 95% efficiency. Boiler is controlled with thermostat.
Thermostat is placed in the living room - it is set to 22 degrees Celsius from 7:00 to 23:00 and to 19 degrees Celsius from 23:00 to 7:00.
There are 3 separated rooms used privately, one living room, kitchen, bathroom, storage room and toilet. He have high ceilings, so volume of rooms is really big.
Private rooms - 84mˆ3 x 3 Living room - 168mˆ3 Kitchen - 84mˆ3 Bathroom - 21mˆ3 Storage room - 21mˆ3 Toilet - 21mˆ3
We have old radiators made from cast-iron. Each part of this radiator is 600mm high and 200mm deep, its surface is 0,31mˆ2, its capacity is 1,7L. Each room (except storage room) has its own radiator. In total, there are 5 radiators with 30 parts and 2 radiators with 15 parts.
Consists of radiators and tubes. Total amount of water inside heating system is 255L (5 big radiators) + 51L (2 smaller radiators) + 61L (Amount of water inside tubes - 108m of tubes in total) = 367L.
Water inside heating system gets heated - it takes 4181J to heat up 1L of water to 1 degree Celsius. Then radiators are heated (416J for 1kg of cast-iron to heat-up to 1 degree Celsius), then air is heated according to Stefan-Boltzman law. Heat is distributed among the flat. According to the people in the flat, radiators are turned on or off. Thermostat is inside the living room a living room gets 30% of heat from rooms connected to it. Thermostat stops heating system when requirement are satisfied. Accumulated heat stays in heating system and slowly degrades. I would like to measure amount of gas used for heating system for the period 4 months.
The system i describe doesn't count with using hot water for shower.
I would like to ask you for software recommendation - not sure if i should use simprocess or vensim.
Martin Knapovský, email@example.com
- This could be an interesting topic, but please, finish the assignment. Tomáš (talk) 02:44, 13 December 2015 (CET)
I´m thinking about simulation of Christmas market, on some square as place for vendors. There will be two kind of vendors – with refreshments and with decorations. There will be two entities – vendors and customers. In first round I want place there some number of customers (for example twenty) and some number of vendors. Each customer has to buy at least one decoration as a present for somebody. In next rounds each customer can decide if he want to leave a market, buy other present or buy something to eat/drink. Each customer can buy no more than five presents. Every minute will come five new customers. There will be a temperature as global variable. If the temperature is too low, customer will decide, if he/she wants to go home or buy something to eat/drink to get warm. If customer is on a market for so long, he/she needs to buy something to eat or drink either. Because there will be more than one vendor of each kind of goods, customer will preference vendor by the distance.
My goal is to find an optimal number of vendors and its structure based on the given temperature.
For my simulation I decide to use NetLogo.
- This could be interesting if you would use real data. Otherwise it is kinda academic exercise. And by the way, it seems to be rather a discrete event simulation than an agent model. Tomáš (talk) 21:52, 15 December 2015 (CET)
I want to simulate service in fastfood restaurant during one day. For this simulation I have some real data from my friend who works there.
Opening hours: 06:00 – 02:00
Capacity of restaurant: 106
Number of cashier's desk: 5
I can get some real data about how much employees are in the kitchen/at cashier's desk and number of transactions for each hour in day.
During lunch 35% of customers at average take their food away. On the other side during night time 65% of customers at average take their food away.
One order take at average 1 minute to finish. If there is some special order and it´s not completed from the kitchen yet, it takes kitchen employees to complete this order about 3 minutes in average. Customers with special orders don´t wait in queue, but they sit down and wait for it at the table. So, employee at cashier desk can service next customer.
For my simulation I would like to use Simprocess.
Goal of my simulation is to see if there is enough cashier´s desks, capacity of restaurant and employees.
- That's pity you didn't remind me. Unfortunately, this topic is too simple. It is something like we solved as a class example. Please, try something more sophisticated.
- It is hard to say in general, what level of complexity is expected. What you have proposed is very similar to the task we did during our classes. For seminal paper, more complicated problem is needed. The appropriate level of complexity could be perhaps apparent from the approved assignments. In the case of your problem, in order to make it meaningful, you could e.g. simulate the whole day with real customer flow. It means much more complex data input reflecting changes during the day. It is perfect that you have someone who can provide real data. Try to get the records from cash registers (just times of transactions are enough) and load them into Simprocess. Next, if you obtain real cost structure, you can build cost model. I would say in the case of orders, it depends on the kind of ordered meal. And what about production part of the whole thing (kitchen) - does it have any influence on the capacities of the restaurant? Etc. Of course, you can also try to suggest something completely different. Tomáš (talk) 02:35, 3 January 2016 (CET)
- I was talking to my friend and he told me that he unfortunately cannot provide me times of transactions, because there is some sensitive data also. But I can have number of transactions during each hour of whole day. So if I will simulate whole day it would be better? He cannot provide me cost structure neither. Maybe I can add to simulation how customers wait for their specials orders. Xhejk15 (talk) 19:29, 5 January 2016 (CET)
- I am afraid that in such a situation, the assignment is so artificial that I don't consider it appropriate. Just to explain - I generally don't expect complicated assignments, however, what you have proposed, is really simple and too much resembling the tasks that have been solved during our lessons. That's why I asked for real data in order to make it more meaningful. If they are not available, I would prefer another assignment. Really, what you have proposed could be solved during one afternoon. This is not what I would expect from a term paper. Thanks for your understanding. Tomáš (talk) 22:41, 5 January 2016 (CET)
Conference and meeting center layout in NetLogo
This simulation would display how the crowds (and individuals) would behave within a conference center. The building would have a set plan, what would be changing could be the exits, the information desks, the buffets, the bars, the exhibitions, the lectures, the meetings, the benches and the free space. The visitors and participants would move around based on a schedule and free will, at this point I am not sure to which extent is it wise to design an AI which would control each person as an individual. Hopefully such AI can be made with NetLogo spending just reasonable effort. The simulation extent (regarding total amount of people, rooms...) will be adjusted so that it can be easily overviewed but not yet too simplified.
The layout will be transformed multiple times, its efficiency will be judged by density of the crowd and queues. Individual buffets, bars e.t.c. should not be abandoned while the others are flooded. Simulation will include staff and toilets to make the environment look more real. At the moment I am open to implementing a possible terrorist attack, which could also be an alternative for this assignment.
The simulation should track the number of people in lecture halls, in queues and in any otherwise interesting state such as boredom or stress.
- I would make it simpler. Don't bother simulating all the day, simulate just as people are coming for the particular event/presentation. Simulate how crowd are assembling at doors, toilets, how people avoiding each other to get their seats. Etc. Just the time let's say +-10 minutes around the beginning of the event. Of course, you need to simulate relative intelligent movement of agents. If you agree, then it is approved. Tomáš (talk) 21:58, 15 December 2015 (CET)
Hosting load-balancing simulation
A hosting company with it’s own infrastructure is using so called "load balancing" to distribute the overall load between multiple servers (hardware) and “high-availability” to minimize service down-time.
Possible hosting services
- Web hosting
- Communication server (TS 3)
The simulation should also consider critical situation like off-line server or unavailability (for example due to D-DOS attack) of the entire server location (datacenter). In with case the traffic should be re-routed to another location (there are two hosting locations).
I am going to use real data from my own hosting environment.
- Number of web servers
- Number of storage servers
- Presence of anti-dos device
- Load-balancers and DB server
In addition there are other devices necessary to enable LB and HA, like a switch. In case of HA enabled there must be at least two same switches at one time to achieve redundancy.
Few weeks ago a came across an interesting article about deer overpopulation and how this is slowing down forest succession or natural establishment. 'The study was conducted on Cornell land near Freese Road in Ithaca,' as stated in the article.
I would like to make a simulation of the predator-prey concept on this topic. We would be able to simulate the growth of deer, wolf population, the state of the 2 types of vegetation in the forest and how many deers and wolves would be optimal to keep the original forest vegetation from disappearing.
Basically there will be total of 4 entities - 2 agents and 2 patch types:
Deer - agent, consuming the native forest flora,
Wolves - agent, the predator specie that hunts the deer specie,
Forest vegetation - native forest flora that deer specie prefers to consume,
Foreign vegetation - the more the deers eat the native forest vegetation the more this foreign flora thrives.
NetLogo will be used for this simulation. I understand it might be a little more complex because this simulation would not be simulating only the deer population but the predator (wolves) as well. It would also simulate the interactions between deer and the native forest flora, wolves hunting deers and the foreign flora taking over the forest until there is little or none of the original forest vegetation.
There will be some global variables such as the initial number of deers and wolves; deer, wolf, forest and foreign flora reproduction rates and rules of interaction for these entities.
There is already so many predator-prey simulations (e.g. in Netlogo itself is at least one or two) that I am a bit reluctant to approve another one. Or please, let me know what is different on your particular case? 22:03, 15 December 2015 (CET)
This simulation should simulate trafic (cars and trams) and pedestrians on crossroad of roads Sokolovska, Jecna and Legerova located on I.P.Pavlova square in Prague.
The simulation should try to optimize the trafic lights to reach lowest waiting times possible and to secure safety and fluency of the trafic.
- Propability of incoming cars from each direction
- Probability of incoming pedesterians
- Probability of incoming trams
- Light intervals
The crossroad is combining 3 main streets and 3 smaller streets with several pedestrians crossing and two tram crossing. There are 2 separate trafic lights to controll the traffic.
Jan Hudecek, XHUDJ17, 14/12/2015 13:50
xzimm00: Smart car traffic optimization
The model presented by this paper is simulating the situation of car multi-lane merging.
The primary goal of the simulation is to create a plausible real-world model of car traffic jams caused by agents operating in an inefficient way and environment that does not make the best of today's technologies that could help control the traffic flow, and to measure the possible improvement if smarter systems were employed. The author takes into account the inefficiencies of the agents (human error...) and compares this with a (possibly better) solution using automated driver agents, always utilizing an (ideally) optimal (precomputed) traffic flow.
- Car inflow (cars/minute, distributed across the lanes)
- Number of lanes (starting and final, after the lane merge)
- Car speed (varying across the different road segments - i.e. max speed may be limited after the merge because of a traffic obstruction, for example a car accident or roadworks)
- Agents' merging strategy preference (i.e. late vs early merge)
- Agent inefficiency factor (reactions time, premature slowing down, wrong merging strategy used, varying speed, overcautiousness...)
- Amount of kept safety factor (for both human-based and automatic computer-based agent driven cars, so called 'defensive driving', expecting a failure of the others - i.e. mainly the distance kept between the cars)
- Software used: NetLogo
Based on the results of the simulation, it should be possible to measure the possible improvement (%) if automated car-driving agents were employed in place of humans in different critical situations of lane mergers.
Maze Solving Robot Simulation
The primary goal is to create an autonomous robot, which is able to find way out of the maze. The robot will be programmed and his movements cannot be interfered after he starts. The robot must be driven by a non-trivial algorithm that will include randomly generated numbers. The robot must be able to find a way out of maze in a finite time. It means he should not get into an endless cycle of no return.
Secondary objective will be to determine what is the difference between a primitive robot and the robot uses a smarter algorithm. Primitive robot is e.g. such a robot who moves only straight forward and if he encounters an obstacle turns left.
For simulation will be used NetLogo software (2D version).
Robot will be able to move up, down, left and right (viewed from above). He should be able to find the way out without any intervention. Robot will be able to move in any environment (maze) where exists at least one posible way out.
Environment will be represented by the World in NetLogo. The World will consists of black, grey and green patches. Black patches will represents the path where robot can move. The grey patches will represent walls, robot cannot enter them and finally the green patches will be the door out of the maze.
More than one enviroment will be provided. Environments will vary to prove that the robot is able to avoid an infinite loop situation.
Simulation of Aqua park
The purpose of this simulation will be representation of Aqua park with indoor and outdoor pool. The swimmers will have random preferences and they will go to swim in one of two pools. With the pools gradually filling with swimmers it will have negative effect on motivation of each swimmer and it will show change of their preferences. Based on weather and temperature swimmers will also change their preferences between outdoor and indoor pool. Next parameter could be water purity, with high level of contamination produced by swimmers their motivation will lower and on the contrary.
Simulation will be set for period of one calendar year and at the end we can compare, if its profitable for Aquapark to have both pools open for a whole year. It will be cheaper to run outdoor pool, but bad weather will have much higher impact on outside swimmers. Next goal will be confirmation of assumption, that in summer people prefer outdoor pool and on the contrary in winter indoor pool.
--- How about simplification in a way, that agents will produce "dirtyness" and there will be fix line, after which pool will be so dirty that nobody wants to swim in it. Indoor pool will have regular cleaning maintaince wich will lover level of dirtiness, but outside pool will only be cleaned after crossing this limit. It will take some time, lets say day or two to clean it, and then swimmers could go in again. xjanj58 (talk) 9:56, 16 December 2015 (CET)
- But, again, how do you turn this into specific numbers? How you will measure it? How do you know how quickly a pool gets dirty? And mainly, how will you measure the feeling of people about the quality of water. Those soft parameters are always a pain. Tomáš (talk) 19:52, 16 December 2015 (CET)
- --- I was thinking that agents will have parametr called e.g. "mood", and it will be interval between 0 and 10. Then for every new swimmer in the pool will this parametr go down and when it hit 0, then this particular agent will exit the pool. For dirtines, i was thinking thet pool will have some limit, for example 100, and every fifth move of the agent in the pool will fill this parametr by 1. When it reaches 100, the pool will be dirty. xjanj58 (talk) 20:17, 16 December 2015 (CET)
- Yes, I understand. This is exactly what I call "an academic exercise". How do you know that 0-10 is a correct interval to measure mood? How do you know that this is a linear function? Why it should go down by 1 (and not by 3 or 5 or 0.5) and why it should be the same for everyone? The same for the quality of water. Sure, you can make your model this way. But, will it be still in touch with reality? And if not, what's the point then? Tomáš (talk) 21:01, 16 December 2015 (CET)
- Ok,so how to add at least some randomnes in to model by include the random multiplier in agents formula.That way changes woudnt be constant and it can nicely represent diferences between human decisionmaking.
Otakar Trunda: The Ultimatum Game
Agent-based simulation to analyze the socio-economical experiment known as The Ultimatum Game.
The rules can be found at . During the game two players interact in order to divide certain amount of money (e.g. $1000 000) between them. At the beginning, the first player proposes the ratio of division (like $900 000 for himself and $100 000 for the other player, or any other ratio). Then the second player has two choices - he can either accept - in which case the players receive the agreed amounts of money, or he can reject - in which case no player receive any money.
There are several questions that can be studied about the Ultimatum Game. For example:
- how would people behave? (assuming the players don't know each other)
- what amount of money should the first player propose to the second? (to maximize his own profit)
- what amount of money should the second player accept?
- is it rational for the second player to reject any proposal? Why?
- if the game is played repeatedly and different players use different strategies, what strategy maximizes agents' long-run profit?
- if agents' strategies can evolve in time, can altruistic strategies emerge?
- are there evolutionary stable strategies? Which ones?
In the system there will be agents representing players, each of them will play according to his strategy. The strategy of the player tells how much he will offer (should he be the first player in the game) and what is the least amount he will accept (should he be the second player in the game). In each simulation step, two agents will be selected randomly and play the game. Their score will be adjusted by the result of the game (i.e. if the second agent accepts, they will gain money according to the proposal, otherwise the score remains unchanged). Agents' successfulness is determined by their score.
After a large number of simulation steps (like 1000 000 of more), we should be able to determine how the strategy affects the final score of agents (i.e. what strategies are good).
Evolution of strategies
The system can be modified such that agents' strategies will change during the simulation to emulate biological evolution. In this case, successful agents will multiply in the system (i.e. more agents will use good strategies) and non-successful agents will die-out. During the reproduction of agents, their strategies will be slightly modified - the offspring will use a slightly different strategy then the parent. This way, the system should evolve to some kind of equilibrium where either all agents use very similar strategy (static equilibrium), or different strategies survive to compete with each other (dynamic equilibrium).
After a large number of simulation steps, we should be able to observe whether altruistic strategies emerge (strategies, that offer "fair" amounts and reject small offers) and determine the existence of stable strategies (strategies that can't be taken advantage of by "parasitic" strategies).
Tailor-made in C# using Visual Studio.
The problem is well known. However, you will probably struggle with simulating irrationality and some other particular problems. The model will tend to be either pretty complex, almost hard to manage or too trivial. I would think twice and explain how exactly you will e.g. deal with the particular strategies. Also, why do you want to use C# instead of a certain agent framework? Tomáš (talk) 22:39, 15 December 2015 (CET)
I guess it is a well-known problem, but it seems interesting and I don't know of any similar problem that wouldn't be already well known. Can you perhaps recommend some? How to deal with strategies: the strategy will be a pair of real numbers, lets denote them A and B from <0,1>. A will denote how much the strategy offers (e.g. A = 0.4 means that the player will offer 40% of the total amount to the second player) and B denotes how much at least the strategy accepts (e.g. B = 0.2 means that the player will reject any offer smaller than 20% of the amount and accept offers that are 20% or larger). Then the evolution can be done by a simple genetic algorithm on these pairs, fitness of the agent would be determined by its score. I hope this setting is not too trivial, it can be further extended by adding a "space dimension" meaning that agents will only play the game with agents that are near them and during the reproduction the offspring will also be created near the parent. In this case there should emerge localized groups of agents using the same strategy, some groups should successively expand, others diminish. I could use NetLogo, but I think it will be easier to do in C#. For example I would need to visualize the performance of the strategies - the score based on numbers A and B (mentioned earlier). This can be done in a form of a 3D graph, which I can create in C# easily using the proper library. I will also need to compute various statistics of the agents' scores to properly interpret the results (like moments and p-values) which again can be done easily using proper C# framework. It might be able to do these in NetLogo as well, but that would take me much more time :) Trunda (talk) 16:35, 16 December 2015 (CET)
- Good. According to what you have mentioned, you will also need to deal with irrationality. How you will do that? Tomáš (talk) 19:56, 16 December 2015 (CET)
- It depends on what do we call irrationality. I would like to think that any observed strategy would be "rational" in a sense that it evolved by maximizing the long-term profit. If an altruistic strategy evolves, then it means that our notion of rationality is too narrow and short-sighted and from the long-term perspective, altruism is rational. If it doesn't evolve on its own, we can at least set the altruistic strategy by hand and see if it survives in the environment (i.e. if it is stable). Furthermore, the successfulness of the strategy depends on the strategies used by other players so it is difficult to call a strategy rational or irrational without knowing the environment (strategies of its competitors). Trunda (talk) 21:48, 16 December 2015 (CET)
- Good. According to what you have mentioned, you will also need to deal with irrationality. How you will do that? Tomáš (talk) 19:56, 16 December 2015 (CET)
ZCH webshop simulation
WHAT WILL I SIMULATE
I sell DVD movies on my own web shop on AUKRO. I sell DVD titles on a daily basis. The purchase price is CZK 20,- and the DVDs are sold for 35,- CZK (in average).From my sales report I deduced that the demand has probability distribution from 100 to 150 pieces. When there is an interesting title, the demand rises up to 200-250 pieces (once per 10 days in average). This event can not be predicted! Order is made every day. As per our agreement with my dealer If I can not sell any title I can return 30 pieces of it and I do not need to pay CZK 20,- for these DVDs.
THE GOAL OF THE SIMULATION
The main objective of this simulation is to find the optimum number DVD order in whichthe average gain will be maximized.
THE TYPE OF SIMULATION / TOOL / METHOD
Monte Carlo simulation method / MS Excel 2013.