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.

Popular Posts