...Monte Carlo Simulation
- Rapid and Robust Models
Flexibility, speed, transparency
and low cost are the defining characteristics of
our Monte Carlo Simulation products.
'baseSim' is our entry-level, general purpose Discrete
Event Simulation Suite.
baseSim is a coherent and comprehensive collection
of add-in components for Borland Delphi, and thus capitalises
on the power and popularity of the Delphi environment
and its trained user base. It provides fully featured,
low-cost Discrete Event Simulation.
The Need for Speed
Simulation (What
is Simulation?) is often used to represent systems
that are large, diverse and complex. These systems
will include random events, such as equipment failures
or varying process times; large number of simulation
runs, with different patterns of random events, are
required to produce statistically sound results.
baseSim is ideal for these Monte Carlo Simulation models – its
incredible speed ensures that results are available
in seconds to minutes, not hours to days!
Speed of execution opens the possibility of a new
and exciting approach - Optimisation.
Models are generally run in a 'what-if', iterative
mode, where the user defines the input, runs the model,
analyses the results, adjusts the input, and re-runs
the model. This process takes the user nearer and nearer
to a 'best' solution, and often continues until time
or money run out.
An optimiser searches a defined range of input values
to find the set that most closely matches the defined
goal (e.g. minimum cost), and may involve running a
model millions of times. With baseSim's extraordinary
speed, this becomes a practical possibility.
The Products
An evaluation
version of baseSim is available. This requires
Borland Delphi v.6.0, v.7.0, 2005 (Win32 Personality),
2006 (Delphi Win32 Personality) or 2006 (C++Builder
Win32 Personality) is already installed on the target
computer. This version is limited to the design environment
of Borland Delphi (requires that Delphi is running)
and will expire after 30 days.
Additionally, there are a variety of Demonstration
Models, which may be downloaded for evaluation. These
are compiled as stand-alone executables and do not
require Delphi to be installed.
Features
The main features and benefits of baseSim are detailed
below:
High Speed, fully Compiled Execution
Every effort has been expended to ensure that the
baseSim Simulation Components have been Designed and
Implemented with 'need for speed' held firmly in mind
(Monte Carlo Simulation). We understand that decision
makers in Industry require not only accurate information,
but also timely information.
Coupled with the fact that baseSim models are compiled
using Delphi's highly optimised, native 32-bit Windows
Compiler, you can be assured that complex Models and
Software Applications will run quickly and efficiently.
This results in compiled
simulation and produces very fast simulation models.
Easy to Use and to Develop
The baseSim suite of Simulation Components has been
designed and implemented to ensure that Complex models
can be built easily and quickly by any Delphi competent
user.
Rapid 'Drag and Drop' Development
The baseSim suite of Simulation Components has been
designed and implemented to make use of Delphi's 'Rapid
Application Development' environment.
This means that building Simulation Models and Applications
is as straightforward as 'dropping' Simulation Components
on a SimulationPanel, connecting them together and
clicking on the 'Run' button.
Ability to build Complex,
Flexible and Standalone Models
baseSim builds on Delphi's flexible and comprehensive
Development environment. By using Delphi you will be
able to connect your Simulation Models/Applications
to dispersed databases, legacy IT systems and other
manufacturing systems, such as SAP.
Additionally, as Delphi produces highly optimised
standalone code, you can distribute your Simulation
Model within the Enterprise or across the Internet.
N.B. The boundaries of what you can do with baseSim
are limited not by the Simulation Components themselves
but by the version of Delphi being used e.g. to build
a Client/Server Simulation Model to be deployed across
the Internet, you would probably need to have purchased
at least the Delphi 'Professional' version.
Suite of Delphi Components
The baseSim Simulation Components have been implemented
as standard Delphi
Components and as such they can be compiled into
and used from the Delphi Visual Component Library (VCL).
This enables Components to be 'dragged and dropped'
onto a SimulationPanel at Design-time.
Example Component Libraries:

baseSim 'Control' Library

baseSim 'Capacity' Library
Close Integration
to Delphi (e.g. Design-time and Run-time Component
Editors)
Enhanced Component and Property Editors
are available at Design-time to assist the Simulation
Modeller to Develop the Model e.g. the SimTable Object
has a Component Editor to facilitate the inputting
of Data at Design-time.

Additionally, all Component Editors are
available at Run-time, and form an important part of
the baseSim Simulation Interface.
Model Hierarchy
Enables the creation of hierarchical models in which
lower levels can be observed by double-clicking a SimulationForm
Object in the current level. This allows the creation
of an Object-Oriented Hierarchical Simulation Model.
Additionally, SimulationForms used in this manner
may be reused many times within the model and are a
way of encapsulating building blocks, such as the SimSingleProcess
and SimMultiProcess into a 'Superclass', which can
be used to represent more sophisticated Model behaviour
e.g. a whole warehouse could be built in a SimulationForm
- the top-level 'Industrial Park' could then create
many instances of the Warehouse Object.
Movable Objects can seamlessly 'travel' into and out
of the Model Hierarchy.
Multi-threaded EventController
The baseSim Event Engine runs in a separate 'background'
Thread to the main application. This ensures that the
user is still able to interact with the application
(e.g. scroll around the SimulationForm) and view the
graphical animation, whilst the Simulation Model is
running.
Statistical Distributions for Model Experimentation
Most of the recognised Simulation Statistical Distributions
have been included in our baseSim Simulation Components.
Additionally, it is possible to add User defined Distributions
to the Distribution set:
|
Continuous
|
Includes: Uniform, Normal, Negative Exponential,
Triangle, Weibull
|
|
Discrete
|
Includes: Binomial, Poisson, Integer-Uniform
|
|
User Defined
|
Includes: an Object Pascal framework in which
the User can insert their own Distribution functions
|
These allow for Model Experimentation, Sensitivity
Analysis and Monte Carlo Simulation experiments, to
be carried out.
Graphical Distribution Editor
Interactively refine Statistical Distributions
with immediate visual feedback. The Distribution Editor
also provides useful information regarding the distribution,
such as Mode, Mean and Variance.

Disruptions and Failures
It is possible to configure Material Objects to 'fail'
at specified intervals in (Event) time.
When a Material Flow Object has failed then any Movable
Objects trying to enter or leave will be blocked. The
processing time for any Movable Objects contained in
the failed Object will be recalculated accordingly.
The Interval and Duration of the 'fails' can be specified
in the associated SimDistribution Object.
Blocking Behaviour
Ensures the Simulation Model does not 'stagnate' i.e.
if a Movable Object cannot move onto the next Material
Flow Object (e.g. because it is full) then it is registered
with that Object's 'Blocking List' so that the 'move'
is retriggered when the problem has been resolved.
An icon change can be assigned to this problem so
users can see the 'bottlenecks' and 'build backs' associated
with their Model.
Flow Decision Control
The Component Suite incorporates a SimFlowControl
Object, which enables the routing of Movable Objects
through a Simulation Model to be dynamically Controlled
e.g. a part moving through a production line may require
rework if it fails a Quality Control check. The SimFlowControl
Object can be used to provide this functionality.
The decision logic can be set at Design-time or Run-time
e.g. Movable Objects can be routed randomly or by user-defined
procedure (using a SimAction Object or a standard Delphi
Event Handler).
Automatic Statistics Collection
Simulation Objects can associate themselves with SimStatistics
Objects so that State changes can be captured and recorded
e.g. the time a SimSingleProcess was 'occupied' (for
the given Simulation 'Run').
Each State change may be given a User defined name
e.g. for one Object a 'failure' may be defined as a
'breakdown', however for another Object it may be defined
as an 'off shift' State.
Additionally, it is possible to log the
State changes to a text file or database, so that the
Objects State changes over time may be analysed later.

Animation of Material Flow and Movable Objects
Movable Objects can be shown to 'move'
across their 'container objects' (Material Flow) -
their icon can be changed to reflect their current
status e.g. 'Operational' or 'Blocked'.

Material Flow Objects can change their icon representation
to change their current status e.g. 'Operational' or
'Failed'.
Icons can be loaded in and the current icon can be
specified at Design-time or Run-time.
It is possible for the user to 'drag' Simulation Components
around the Simulation Panel by dragging the Object
with the 'left mouse button', whilst depressing the
'ConTRol' key.
Graphical Connector Lines between Objects
MaterialFlow Components can be connected
together. The visual representation of this is the
Connector Line.

The Connector Line may be broken down into a number
of Connector Nodes (i.e. the line can go round corners).
Additionally, it is possible to change the colours
and thickness of the Line.
Smooth Scrolling & Zooming of Simulation Forms
SimulationForms can hold SimulationPanels
(panels upon which Simulation Components may be placed)
that are larger than the form itself. A smooth and
efficient Scrolling and Zooming mechanism has been
implemented to allow the User to 'navigate' around
the Model and to magnify areas of interest (mouse 'wheel'
compliant).

All Simulation Objects, including Connector
Lines, that are placed on a SimuationPanel are Scalable
and Scrollable.
Model Object Browser
The Object Browser allows the Model Hierarchy
to be navigated at Run-time.

This can be used to find a specific Simulation Object
(the Component dialogue can be launched by double-clicking
on the relevant entry), or to view an Object's property
values.
Model Integrity Checker
Provides automatic checking of the models integrity
- i.e. has the model been developed sufficiently well
to avoid Run-time errors.

This provides the Developer with a powerful tool to
ensure that their Model/Software Application has been
implemented correctly.
The Integrity Checker is run automatically when the
Simulation Model is initialised. This feature can be
enabled/disabled via the EventController Component
Dialogue.
Data Tables, Stacks and Queues
Tables, Stacks and Queues provide a convenient and
efficient storage mechanism for storing, processing
and retrieving large amounts of multi-typed information.
Data can be entered into the tabular structures:
- By hand - data can be input and manipulated
at Design-time.
- Through a database connection - can be
used as an intermediary storage area between the
database and the application. This provides a speed
boost as it is quicker to read in the data, work
on the local 'copy' in memory and then to write the
data back (when finished), than to read and write
the data directly from the database (which may be
being accessed via a network).
- Save and Load data to/from formatted (user
defined) text files.
Can Place User Actions on the Event List
The Component Suite incorporates a SimAction Object,
which can be used to encapsulate standard Delphi Events
handlers (e.g. OnPaint, OnClose etc.). The SimAction
can be 'called' from an Event on
the Event List, or be called from another Object such
as a SimDistribution Object, where user defined code
is required.
This means that users can place events on the Event
List, along with a number of parameters, to be actioned
at a specific time. When the Event is 'triggered' the
appropriate SimAction is called, which in turn causes
the user's code to be executed.
Genetic Algorithms / Scheduling
baseSim now has a Genetic Algorithm component. Genetic
algorithms (GAs) are numerical optimisation algorithms
based on natural selection. They can be applied to
a wide variety of problems and offer several key advantages
over other, more traditional, techniques.
Our Genetic Algorithm component has been optimised
to work with high running speeds of baseSim. This allows
simulation models to be developed in order to evaluate
the 'fitness' of each generation, therefore allowing
complex problems to be evaluated quickly.

A typical use of the GA would be to create a scheduling
optimisation tool based upon a simulation model of
a manufacturing plant.
The use of GAs benefits from baseSim's ability to
produce very fast simulation models.
3D Simulation VRML Interface
The major feature of this release is the introduction
and full integration of our 3DVRML Add-on module. This
combines OpenGL and VRML technology to provide a 3D
replacement interface to the current 2D Scene (or an
addition to) and free-format 3D modelling capabilities.

This allows for the creation of high speed, fully
compiled 3D Simulation Models.
Integrated Help (Design-time and Run-time)
Help is available both at Design-time and Run-time, by
clicking on the help button/menu in an Object Editor
or in a Simulation Form. Users can specify whether to
display the standard baseSim help or to provide their
own. Help has been implemented using the Microsoft® HTML
Help standard.
On-line Technical Support
Free access to the iBright Developer Technical
Information, Support and Tips 'knowledgeBase'.
Also, free access to baseSim Developer
Programmers, via e-mail.
Plus all the Benefits of the Delphi Environment
Borland Delphi is a feature rich development environment
offering:
- Rapid Application Development (RAD).
- Fast and robust 32-bit, optimising, native (Microsoft® Windows)
compiler.
- Easy to learn and use environment.
- Built in Editor and Debugger.
- Reusable and customisable suite of visual and non-visual
components.
- etc.
For more information on Borland and Borland Delphi
see: http://www.borland.com/us/products/delphi/
System Requirements
Most modern PCs have resources that are more than
adequate to develop applications using Delphi and baseSim,
and to run Monte Carlo Simulation Models. A minimum
specification would be:
|
Processor
|
Pentium II 450 MHz (or higher)
|
|
Operating System
|
Microsoft Windows '98
Microsoft Windows NT 4.0 (Service Pack 3)
Microsoft Windows 2000 (Required for Delphi 2005)
Microsoft Windows XP (Required for Delphi 2005)
|
|
Memory
|
Minimum: 256Mb of RAM
Recommended: 512Mb of RAM (or higher)
|
|
Video
|
Minimum: 800x600 at 8 bpp
Recommended: 1024x768 at 16 bpp (or higher)
* 3D Accelerator card supporting OpenGL is recommended
when using the 3DVRML Add-on module
|
|
Hard Drive
|
Minimum: 120Mb free space
Recommended: 520Mb free space (or higher)
|
|
Programming Language
|
Borland Delphi: v.6.0, v.7.0, 2005 (Win32 Personality),
2006 (Delphi Win32 Personality) or 2006 (C++Builder
Win32 Personality)
Microsoft Visual Studio: 2008
|
|