Friday, March 9, 2012

A Day at "The Park" with ExtendSim


“Why are you collecting this data?”, I asked. It seemed a reasonable question given my current location. You see my friends and I were hiking to the top of Half Dome in Yosemite National Park, and we were currently about 7 miles from the trailhead. Imagine our surprise when a formally dressed college student (complete with official ID badge) asked us if we were willing to participate in a trail study. We were supposed to be in the middle of nowhere! But there she was sitting off to the side of the trail at a foldout card table that was holding a stack of time cards, a clipboard and some stickers.

“We’re trying to understand the traffic patterns along this route to Half Dome.”, she answered. "Participants show their time cards to officials stationed at various waypoints along the way. The officials will mark your time of arrival at each waypoint. Would you like to participate?”

“Perhaps.”, I said. “This sounds like you’re collecting data for a simulation study. Is that true?”

“Yes.”

“What simulation tool are you using?”, I asked.

“Umm….I think it’s called ExtendSim. Yeah. That’s it. It’s called ExtendSim.”

I smiled and said, “Well, in that case we’d be very happy to participate in your study.” ;-)

So the next time someone asks you, “Where is ExtendSim used?”, maybe the most appropriate response is, “Where is it not used?”

Monday, April 18, 2011

Simulation Master Class


Being a simulation modeler can often be a lonely proposition. Often alone, you are called on to build a model of a complex process, analyze that model, and present the results to management. As simulation modeling is as much an art as a science, we thought applying the musician/artist Master Class concept to simulation would be helpful to our customers. 

A team of simulation experts from a range of backgrounds have been invited to join the Imagine That Inc. technical staff to discuss their simulation techniques, general research, and specific ExtendSim features that they find intriguing. Some of the Master Classes will be specific to ExtendSim while others will be more general and useful to all simulation modelers.

We have a number of speakers lined up. However, if you are interested in presenting at one of our Master Class sessions or simply have some suggestions, let us know. We are looking for speakers who can address the issues of the simulation community as a whole as well as ExtendSim modelers.

Imagine That’s simulation Master Class sessions are open to everyone at no charge. Classes begin May 2011. Check our web site for more details.

Wednesday, November 3, 2010

Reviewing the Review

If you are evaluating simulation software, a third-party review or paper comparing the features of different simulation software programs can be very useful. However, not all software reviews are created equal. Some are truly excellent, well researched, informative, and accurate. Others contain factual errors, use outdated software, and are even sometimes biased by economic considerations of the author.

The gold standard for a comparison is Tom Schriber and Dan Brunner’s perennial “Inside Simulation Software: How it Works and Why it Matters”. This paper does not attempt to recommend one software product over another, but it does give insight into the inner workings of a variety of simulation packages. When Tom and Dan were including ExtendSim (Extend) into their paper, we exchanged nearly 100 emails detailing the precise behavior of our software. The authors have taken care to update the paper as new versions of ExtendSim have come out. There are other good reviews as well. I have not always agreed with their conclusions, but I do respect their methodology.

I won’t reference the paper on the other end of the spectrum. However, I did find 14 obvious technical errors in a little more than a page of text describing ExtendSim. These included the wrong web site, incorrectly stating that there were limitations on the number of levels of hierarchy, and even the product name was incorrect. The author never contacted us or asked us to comment on his review.

So, if you are looking at simulation software reviews, take the following steps to make sure that you are getting a thoughtful, accurate commentary:

  • Contact the author and ask them if the paper was reviewed by the simulation software vendors before publication.
  • Look for obvious technical errors. Generally, this is an indication that the author did not do their homework.
  • Did they use the latest version of the software?
  • Does the author have any connection with a simulation software vendor, currently or in the past?
  • If you can, contact modelers who use the software in the paper. Ask if they agree with the conclusions.

As software developers, you can expect us to be biased towards our own creations. Unfortunately, you cannot always find that even in neutral third party evaluations. Caveat emptor.

Friday, October 1, 2010

Bias block’s use in optimization problems

I feel the bias block does not get the use it deserves and would like to make a case for it.

If you do not use the Rate library, there may be no point trying to understand the Bias block…However, lack of familiarity rather than true functionality might be the reason you’re not using Rate. The ExtendSim manual has a good discussion of ExtendSim AT’s discrete rate capabilities; you may want to read up on it a bit. For now let focus on this little block called the Bias block.

The block is small and simple but carries a powerful concept. The bias block allows the rate of flow through particular model sections to be maximized. In other words, after defining where the flow should “preferably” go, the model optimizes the direction of the flow.

To illustrate my point lets give a practical example:

-Goal: The model purpose is to properly allocate power supply so that each customer gets what they need at the lowest possible cost.

-Setting: 3 different sources of power, 4 pools of users and a distribution network.

-Logic: Each source of power has an associated cost and is linked to the distribution network. Each pool of users needs a certain amount of power and is connected to the distribution network.

Supply information

Maximum Megawatt-hour

Cost per Megawatt

Bias priority

Supply 1

50 MW-h

35 $/MW-h

1

Supply 2

50 MW-h

50 $/MW-h

2

Supply 3

50 MW-h

60 $/MW-h

3

Demand information

Megawatt-hour

Demand

User a

20 MW-h

User b

30 MW-h

User c

20 MW-h

User d

10 MW-h

-Implementation: The modeler will construct the distribution system, the suppliers and the consumers… When all of that is done, the modeler can position a bias block next to each power supply; the lowest cost producer will be given the highest priority and so on…. And that’s it; the model is done and will distribute energy at the lowest cost.

The concept of bias block allows a modeler to look at his model as a global system. What is flowing through the system will follow the preferences provided by the bias block.

If the Bias block gets used more, I have in mind some fun upgrades to make the block even more powerful. Right now, the Bias parameter only authorized priorities between different parts of the model. It would be a fun new development to allow a full “objective function” to be defined which would be either maximized or minimized.

Thursday, July 1, 2010

Simulation and Innovation

I remember, very clearly, the first moment that I saw Extend (now, of course, called ExtendSim). It was at a TIMS (a precursor of INFORMS) conference in 1993. At that moment I realized that I was looking at the future of simulation. This was an amazing program, a quantum leap in simulation technology. You could build a model by dragging and connecting blocks together. You could combine blocks together to create a single block. You could interactively change the model while it was running. You could create your own blocks. You could even program a block to do something when the simulation was not running. Wow!

At that point, I had already worked with a number of simulation programs (Siman, Slam, GPSS and more) but none of them could compare to the capabilities of Extend. What did I do? I asked for a job. After a rigorous interview process (I met everyone at Imagine that and did a little programming) and some pretty tough negotiations (they offered, I accepted), I started work. That was 17 years ago. The most amazing part of this story is that we’re still ahead of the pack. I’m even seeing some new simulation programs that look eerily like Extend did in 1993. I’ve heard some say that there has been no significant innovation in simulation software in the last 25 years. Extend came out in the 1980's - perhaps they are right.

Thursday, February 4, 2010

Sense-itivity Analysis

Today I read a headline that said “75% Probability Apple Stays With AT&T”. That was based on: “"couldn’t find compelling evidence" that AT&T's contract with Apple ends this year. He gives it a 50% chance. Additionally, there's a 25% chance that AT&T would bid for -- and win -- another year of exclusivity. Add them up, you get 75%”.

Whenever somebody adds up probabilities, that sets off an alarm in my head. What if the analyst believed that there was a 60% probability that AT&T would get the new contract? Then the sum of the probabilities would be 110%. That’s a little more than absolute certainty, which never exists in the stock market.

The lesson here is to use a little, what I will call, “sense-itivity analysis”. Plug some plausible numbers in to make sure that the answer still passes a common sense test. We know that the probability must be 100% or less. In this case, it will certainly be less than 100%. So the result of 110% tells us that there is a math problem here. Doing a little “sense-itivity analysis” is a good idea in simulation models as well as the stock market.

For the record, the correct answer is 62.5%. I will let you work out the math.

Thursday, November 19, 2009

Making the Transition from ExtendSim Modeler to ExtendSim Developer

It has been just over a year since I joined Imagine That Inc. to work as an ExtendSim developer. For me, this marks a return to software development after having taken a 15 year sabbatical to become an ExtendSim modeler. During that time, I had several different jobs working for small and large companies and as an independent consultant. Each of these jobs required the use of simulation to provide analysis and decision support for internal and external customers. Quite fortunately, I almost always had the freedom to choose which simulation technology to use. Naturally, I chose ExtendSim. While I had several reasons for choosing ExtendSim, my primary reason was based on the fact that no matter how difficult the problems and/or customer requirements were, I knew I could always find a way to deliver a timely, valid and effective solution using ExtendSim.

As a modeler, I was focused on searching for good problems to model, convincing people of the value of simulation modeling, and translating problems into useful ExtendSim models. As an ExtendSim developer, my focus has shifted from using ExtendSim to building components of ExtendSim. Instead of thinking about how to build re-usable models, I now think about how to create blocks that will make it easier for modelers to build re-usable models. At an abstract level, I see my job as having changed from solving customer problems to helping modelers solve customer problems. Needless to say, my previous experience generated a significant amount of empathy in me for simulation modelers. I understand how they are often required to provide answers for extremely complex problems with little time to construct let alone validate simulation models to solve these problems. I appreciate how modelers are being asked to incorporate increasing amounts of detail and data in simulation models and to integrate their models with other applications, particularly databases and web-based applications. I appreciate how difficult it is to convince organizations to adopt simulation as a viable component of their analytical repertoire. What excites me is being in a position to contribute to the evolution of ExtendSim so that it can better address many of the emerging issues facing today’s simulation modelers.

After working as an ExtendSim developer for over a year, I sometimes find the difference between modeling and developing to be a bit fuzzy in my own mind. Maybe this is because it is difficult for me to develop features in ExtendSim without having the experience of the modeler in mind. The major difference I see between developing and modeling is being feature oriented rather than problem-solving oriented. I like to think of ExtendSim as consisting of a collection of features that make up a “toolbox” of modeling capabilities. Modelers use the “tools” in the toolbox to build solutions for customers. My new job as a developer is to find ways to improve the ExtendSim toolbox. This means my days are focused entirely on designing, developing, implementing and testing software.

While I often spent entire days developing software as a modeler, the process of developing custom software to create features for a model is very different than developing features for ExtendSim, a software product. The main difference in developing ExtendSim features is a significant amount of energy has to be spent developing user interfaces. The vast majority of the software I developed as a modeler usually required either very simple or no interfaces. The situation as an ExtendSim developer is exactly the opposite. In fact, the interfaces I am working on as an ExtendSim developer are extremely challenging to build and test because of the many different possible states they can be in. All of these states have to be explicitly managed in the code. For blocks that require many dialog variables with many different possible settings, a large amount of state-management code must be written. To effectively manage all this code, I find myself relying on the same design principles I did as a modeler. In particular, I use the principle of modularization to look for generic patterns in the code that can be encapsulated in a function or procedure to contain a commonly used set of instructions. As a modeler, instead of looking for code patterns I looked for block patterns that could be encapsulated in hierarchical blocks instead of functions or procedures.

All in all, the transition from modeling with ExtendSim to developing features in ExtendSim has been pretty smooth. I am looking forward to contributing to the evolution of ExtendSim and getting feedback from the modeling community as the new features I work on are used.

Popular Posts