Wednesday, June 10, 2015

Embracing Simulation

Over the last 10 years, more than a thousand students have attended one or more of my simulation classes. I have seen successful and not so successful students. There are ways to help ensure success and here I provide some guidance on avoiding the most common mistakes.

Simulation modeling can be challenging for a beginner.  There is a sharp learning curve not only on the mechanics and nuances of the software, but also with managing a simulation project.  However, there is a magic formula and here it is in a nutshell. Make sure you have…

  • Training on the software
  • Support from a mentor
  • An appropriate first project
  • Support from the rest of the company
    • Access to data
    • Subject matter experts to educate yourself on the process
  • Time to work on the project
  • Time to verify and validate the project
  • Time to measure its success

Training & Mentoring
Get training on the tool as well as a mentor - both are crucial.  The cost of a one-week training class will save two to three months of learning and struggling on your own.  I also would recommend spending some time with a modeling mentor.  If your company has other modelers, buddy up with one of the experts for a couple of models.  If no one else uses simulation at your company, you might want to consider hiring someone to help build the first model.  After the first project, consider hiring that consultant again as a mentor through the next project.  It is difficult for a new modeler to build a good model without knowing what a good model looks like.  I have seen modelers using simulation for years but using the same bad habits they originally started out with because they have never seen it done differently.  So get started out on the right track.

Successful Initial Projects
The first project should be selected with care.  It should be used to help you get comfortable with simulation.  The purpose of your FIRST simulation project should NOT be to create a model that automagically generates the optimal schedule for the factory!  Although that is a lofty goal, first pick a simple project, possibly a subset of what will eventually become part of a larger model.  Start out small.  Pick something that will be successful.  Learn how to manage a simulation project.  Don’t be afraid to make mistakes.  Yes, make mistakes!  We actually learn the most when we make mistakes and correct ourselves. 

Support
Get support from the rest of the company.  A simulation model needs data, often lots of it.  A simulation model needs process knowledge.  As a new modeler, you often do not have either of those within your immediate grasp.  You must go find the information from others within the company.  This information will take resources that you often can’t commandeer yourself.  It takes a certain level of management support to commandeer those resources.  Without this support, you can’t get data plus you can’t get the information you need regarding the process.  So without the right level of management support, the project can’t succeed.

Time
Give yourself time to work on the project.  If you have other responsibilities, quite often your simulation responsibility will fall to the bottom of the task list.  I have seen this way too often.  When a new modeler has other responsibilities and is always starting and stopping frequently; it can be detrimental!  Each time a modeler revisits the model they tend to have forgotten the last few things they had done and waste a lot of time getting back into the groove.  This has a similar effect with experienced modelers, but not to the same extent as a new modeler.

Verification & Validation
Budget plenty of time to verify and validate the model.  A computer will do what you tell it to do, which is not necessarily what you want it to do. While you are building the model, constantly take time to verify that the model is doing what you intended. As you complete stages of the model, validate that it is a reasonable representation of the real system. For validation, you will need the same subject matter experts that helped you understand the process. This step will not only help to ensure that the model is accurate, it will make others more confident in the model.

Measuring Success
This is not easy, but if you can, compare a decision made without the model to one made with the model. Compare the performance of the implemented system with the model. If there are any significant differences, make note of them so that they can be accounted for in the future. If the model proved to be accurate, use this as political capital for future projects.

Here is a link to a paper I co-authored with Dave Krahl (now at Kromite LLC) a few years ago on getting started with simulation.   It is a great read and contains more details. Dave also helped write this post as well, thanks Dave.

Monday, April 27, 2015

Don’t Pay with Pennies


Have you ever been in line behind someone who pays with pennies? It’s not good is it? There’s time for counting, higher chance of error, and not enough space in the cash register to store all of the pennies. However, I see the same technique in simulation models quite often. This is because modelers tend to make a literal translation of the system into the simulation model. With a little thought, it is often more efficient to work with in terms of a group rather than a single item.

Let’s look at some examples of paying with pennies in simulation models:

  • Processing a batch of parts one-at-a-time. Typically this is breaking the batch into individual units processing them and re-batching them into a single unit for transport to the next operation.
  • In Logistics we WANT to model supply chains where every case represents an item.  We WANT to see every case / pallet get moved around and individually placed on the truck for the shipment.  The model should really only care about the fact that it took X minutes to load the truck and X, Y, and Z amounts of inventory was removed from the warehouse.
  • Allocating an array one row at a time. If you are storing results in an output table or an array it is tempting to add results one row at a time as you generate the results. However, this will cause the simulation software to allocate memory in small chunks. And, memory allocation is a relatively slow process in the simulation model. I do know that if you allocate one row in an ExtendSim database table, space is reserved for more rows should you need them, but this is still much less efficient than adding all of the rows that you will need once at the start of the simulation.
When building a model, look for opportunities to group actions together. Consider the work that the CPU will have to go through to simulate the model that you built. When you can:


  • Group items together and process them as a single unit. Use math and attributes to calculate model features such as delays and yield rates.
  • Track information in tables instead of individual items. For example inventory can be represented by a series of linked database tables.
  • Perform operations once, at the start of the simulation. This works well for setting up arrays and tables.
  • Use discrete-rate simulation to model high speed processes such as bottling and filling lines.

While I use ExtendSim, the above techniques would be useful for any simulation software. Considering methods for reducing the number and type of calculations will yield benefits both in modeling and run time.

I would like to thank Robin Clark for his comments and input on this topic.

Thursday, December 11, 2014

A Peak into the Future of Script Editing in ExtendSim


In my last blog, I listed some of the new features we are incorporating into ExtendSim 10.

In this blog, I would like to add a list of new features that are specific to the script editing environment within the ExtendSim block editor that have been added to the application since that blog was posted.

A while ago, we had an internal meeting here in the office where the in-house block developers presented to the application developers a wish list of features they would find useful in the ExtendSim block scripting environment. The open source software package Notepad++ was used as an example to show some of these proposed features. After the meeting, we did a little research and found that Notepad++ is based on an open source software package called Scintilla. Well, one thing led to another and ExtendSim 10 will now include a powerful new code editing environment.

New features for the scripting environment in ExtendSim 10 include:

  • More sophisticated code colorization, including the ability to customize colors
  • Code folding
  • Regular expressions in searching
  • Find in files capability
  • Brace matching
  • Show white space option
  • User customizable code completion
  • Call tips (show arguments during code completion)
  • Zoom/reduce in script window
  • Auto indentation
  • Indentation guides
  • Smart highlighting
  • Word wrap (sometimes known as line wrap)
  • Show end of line characters
  • And many more improvements

As mentioned in my last blog, we still don't have an official release date for ExtendSim 10, but we're looking forward to it as much as you are. We are waiting eagerly for the time when we can say more than it'll be ready 'When it's done.'

Friday, March 21, 2014

Business Intelligence

If you do a web search for the term "business intelligence" or "BI", you'll get two points of view - one is focused on how to gather and transform raw data into information and the other is focused on the process of analyzing and utilizing the information for strategic planning. Two parts of a whole, really, since there is no point gathering a ton of data unless you can somehow put it to use. Plus it's tough to make decisions about what your company/department/process should do unless you have enough information to support those decisions.

That got me thinking again about how important it is that ExtendSim has an internal relational database capability for storing and managing data. An internal database serves as a bridge between the simulation model and external data repositories, both to supply data to the model and to report model outputs. It also helps that ExtendSim has robust tools to facilitate the exchange of data with external sources. For example, its ADO (ActiveX Data Objects) capability allows ExtendSim to perform high speed data exchanges with external databases such as Microsoft Access and SQL Server. And the ExtendSim DB Add-In for Excel allows analysts to fully specify an ExtendSim database in Excel, including parent/child relationships, formatting, and data validation, and then retrieve useful information from the model without having to learn anything about simulation or even how to use ExtendSim.

But the storage, management, and transfer of data is only one part of the story. What is even more important is that the data gets used in a meaningful manner. And that is where simulation comes in. Simulation is a low cost, high reward method that allows you to analyze existing processes and explore the effect of changes. Likewise you can get assurance when designing completely new systems and processes since you've simulated their behavior or performance in advance. An intelligent way to do business.

Monday, February 10, 2014

A Peek into the Future of ExtendSim

With ExtendSim 10, under development now, we are updating and overhauling every aspect of the ExtendSim® application.

The development of this new version of the ExtendSim application uses industry standard IDEs (integrated development environments) for development on both Windows and Macintosh platforms. On Windows we're using Microsoft Visual Studio for our compilation and coding, and on the Macintosh we’re using Apple’s Xcode. Of course, as it has been for previous versions, the development language used for ExtendSim 10 is C++.

Another aspect of our development process that we are very excited about is we are using a cross-platform application framework call Qt. Using Qt gives us a huge advantage in that we can leverage all the existing features of the Qt framework and quickly take advantage of any new features the developers of Qt add to future versions. This means we can get new features out to you, our end users, more quickly.

A partial list of the new features planned for ExtendSim 10 that will come to you with the help of these new development tools are:

  • Multiple Notebooks
  • Docking tool palettes
  • Tear-off tabs in dialogs and worksheets
  • Multiple undo
  • Improved zoom
  • Anti-aliasing
  • Scaled text – editable while scaled
  • Object grouping
  • Object free rotation
  • Object transparency/translucency
  • Polygon – add/remove points (alt click on a segment.)
  • Improved dialog editor
  • Code completion improvements
  • Graphics objects on the dialog box
  • Thermometer column tag
  • Multiple animation objects moving at the same time
  • Improved Help system
  • Ability to run on all current Windows and Macintosh operating systems.
  • And many more improvements.
Of course posting information like this always leads to the inevitable question, 'when will it be available?' At this point, our best response to that is it'll be available when it's done.

Tuesday, December 24, 2013

Coveted Emmy Award for Architect of ExtendSim

When watching live television, we don’t think twice about how the images we see on the screen are manipulated and morphed together. In the early days, live television shows would simply cut from one video to the next. So you would see a newscaster report on a story, then the screen would cut to a video of that story.

In 1974, prior to fulfilling his dream of creating a simulation application that would allow individuals in any discipline to use simulation, ExtendSim architect Bob Diamond and colleague Steve Rutt invented the Video Repositioner - a device to reposition broadcast quality video in real time.
With this Video Repositioner, television and film apparatus could finally alter the position of a video image without rescanning the originally generated image. So a newscaster could report on a story and you could see the video running in real time within the same screen.

Pretty cool invention!

This Video Repositioner was the impetus to the creation of image processing devices such as the Quantel DPE-5000 (motion adaptive line interpolation allowing both field and frame information to be used according to picture content), Grass Valley Kaleidoscope (for digital effects such as wipes, keys, recursive effects, mosaics, etc.), and Ampex ADO (digital special effects which allow rotation and perspective of video images) used by television stations and production companies including the CBS Television Network and EUE/Screen Gems.

40 years later, this groundbreaking invention will be recognized at the 65th annual Technology & Engineering Emmy® Awards - honoring development and innovation in broadcast technology and breakthroughs that have a significant effect on television engineering. The National Academy of Television Arts & Sciences (NATAS) awards Emmys to those involved in engineering technologies which either represent so extensive an improvement on existing methods or are so innovative in nature that they materially have affected the transmission, recording, or reception of television.

The 65th Annual Technology & Engineering Emmy awards will be presented on January 9, 2014 in Las Vegas, NV as part of the International Consumer Electronics Show. Imagine That Inc. President Bob Diamond is honored to be recognized by the NATAS for his Pioneering Analog Video Repositioner.


For more information on the Technology & Engineering Emmy Awards, please go to http://emmyonline.com/tech_65th_recipients.

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?”