ORMSwareTM Suite is a product of Ushar Enterprises Inc, Littleton, Colorado, USA

Objects in this document may appear out of sequence if not viewed with Internet Explorer

Home Examples Hands-on tutorial and ORMSware downloads
ORMSware Network-Structured Modeler

ORMSware Suite's Network-structured Modeler component (NMOD) is a limited version of its network-structured discrete event simulator. The objective of NMOD is to facilitate visual expression, and easy implementation and communication of quantitative business and engineering models by formulating them in terms of performance of entities traversing hierarchical logical networks.

NMOD users are expected to have some programming experience, at least having written a few nontrivial macros with one or more commonly known office tools. Almost all of the content and control logic inside ORMSware network objects are common to all languages, such as if-then-else, do, and case constructs. The user will, of course, need to know the right ORMSware syntax. One learns this pretty much by osmosis while going through NMOD Primer and Hands-on Tutorial.

As far as variables go, it helps to know about data types, arrays, etc. Those who know something about derived types and other advanced concepts will be able to use them in their models, whenever it is clear that it will be advantageous to do so. You will see this demonstrated when you go through the Examples. While one can start using NMOD with very limited knowledge of programming, it does serve as a subtle device for pulling users at their own speed into learning advanced programming and modeling concepts and capabilities.

Since ORMSware language is a superstructure built on top of ANSI standard Fortran 95, it packs the power of modeling with an object-oriented tool while offering a short learning cycle. Fotran 95 was chosen to support the ORMSware language strictly to avoid the unnecessary headache of developing a macro language from scratch for ORMSware Suite. The language chosen could have easily been C++, Delphi or Visual Basic for the same reason. The power of NMOD is in its paradigm, not the underlying compiler that turns NMOD models into executable machine language instructions.

Target Audience

Though NMOD networks are easily understood by any stakeholder of a problem, it's nuts-and-bolts use is intended for analysts who are adept at modeling advanced business and engineering problems. A NMOD user should have experience in writing at least a few nontrivial macros/procedures in Excel, Access, etc., and have the ability to grasp abstract concepts.

People who are most likely to be attracted to NMOD are power users who develop large scale models for solving engineering problems and/or advanced scientific models for solving business problems in defense and aerospace sectors, and at universities and national labs. Organizations constrained by complex spreadsheets for supporting operations, who are actively looking for a lucid solution structuring environment, are also likely to be attracted to NMOD. 

Features

Features listed below should give you a good overall understanding of the nature of NMOD and prepare you for the Examples, Primer, and Hands-on Tutorial sections at this site, should you wish to know more.

Time tradeoff: The illustration at the beginning of this page shows relative advantages of NMOD, higher order programming languages, and spreadsheet environments depending on the complexity and size of problems. Chapter 21 (Expressing spreadsheets in terms of logical networks) in NMOD Primer explains the relationship between spreadsheet models and logical networks, and Chapter 6 (Converting spreadsheet model to NMOD model) in Hands-on Tutorial explains how to convert spreadsheet models to NMOD models.

One of the reasons why implementing models in NMOD is much faster than developing code from scratch is that most of the basic and repetitive programming tasks are already built into NMOD. Another reason is that NMOD enables analysts to think more at problem level than at code level.

Chunking, Ready-Shoot-Aim: As you may have read in In search of Excellence, people who get things done and get them done well tend to conquer complex problems using the "chunking" and "ready-shoot-aim" approach. With NMOD's paradigm and visual modeling interface it is easy to change and rewire a model to evolve towards the right solution as the analyst(s) iteratively gain(s) deeper understanding of a complex problem.

Structural strengths: Key strengths of logical network structures are their all-encompassing nature and lucidity. These strengths, combined with the fact that models are visual help all stakeholders involved in solving a problem communicate quickly, easily, and accurately with each other about what is being modeled and how it is being modeled. Since ORMSware networks can be structured from logical perspectives rather than just physical perspectives, problem formulations can be at a higher, more flexible and powerful level of abstraction.

Compressing time: NMOD compresses the time necessary to take a model from inception to implementation as well as time required for model maintenance. It is ideal for modeling problems that are too complex for spreadsheets, especially when the problems are highly discipline-oriented. NMOD obviates the need for extensive and expensive programming support from IT professionals who may not have the subject matter expertise to comprehend the problem quickly enough to be productive.

Mitigating modeling risks: With NMOD, customers and management do not have to blindly trust black boxes developed by modeling and programming teams. From a reverse perspective, technical teams can bring their customers as deep inside the modeling world as they desire to enter, to scrutinize and understand the model without undue burden on either side. Such validation and verification capability closes common communication gaps, reducing risks of major errors in problem formulation and/or costly delays in solution implementation. 

Creative uses of Events Queue and time dimension: Because NMOD is a limited version of ORMSware's discrete event simulator, analysts can leverage its time functions and events queuing capability to gain considerable modeling ease, flexibility and power. Several examples in this document take advantage of NMOD's Events queue. For example, in Example Problem 1, time attribute of Events queue is treated as cost attribute to automatically order solution alternatives from lowest to the highest cost. In combination with appropriate network labeling, shortest path, longest path and maximal network flows and other network optimization algorithms can also leverage Events queue in similar ways.

Hierarchical modeling: With NMOD's hierarchical modeling capability, a modeling team can rapidly put together cursory, high level models. As the team goes through each learning cycle with a model, [sub]networks with more details can be developed and referenced in higher level nodes. Analysts can prevent execution thread from traversing a [sub]network by simply changing the referencing node's Type property from Network to Normal or any other relevant Type.

Even when a node's Type property is Network, it still functions as a Normal node once execution control returns to it from the [sub]network it references. This is a useful feature for modeling large scale problems where model granularity can be controlled by simply changing the Type property of network reference nodes.

Any node in any network can reference any other network in a model. The number of nested [sub]network references is limited only by memory of the computer on which the model is running. Recursive referencing is totally within analyst's control and does not have to be declared explicitly.

Optimization through response surface search: NMOD is a descriptive (what-if) modeling tool. However, it does have certain prescriptive (normative/optimization/if-what) capabilities such as Golden Section and Fibonacci searches for one-dimensional optimization of real and integer control/design/decision variables, and successive bisection search for goal-seeking. A trivial looping procedure is also provided for mindless searching for optimal answers. Though trivial, this procedure is handy for quickly demonstrating to concerned customers that answers found by non-naive optimization search procedures are indeed optimal.

Spreadsheet to NMOD transition: Since moving a model from spreadsheet to NMOD is a simple, systematic process, it may be prudent to test a math/logical model in a spreadsheet during initial model development phase. If spreadsheet boundaries begin to hamper the effort as the model grows, development can be migrated to NMOD using our transformation methodology.

In many cases it may be obvious from the outset that spreadsheet will be a constraining environment for the problem at hand. In such cases it is better to go straight to NMOD. Spreadsheets and databases can still be part of the total solution to the problem as those environments are ideal for entering and maintaining elementary data, performing preliminary calculations, and displaying results.

Chapter 21 (Expressing spreadsheets in terms of logical networks) in the NMOD Primer at this site contains an overview of how this is done. Chapter 6 in Hands-on Tutorial (Converting spreadsheet model to NMOD model) goes further, taking participants through the whole process of moving a model from spreadsheet to NMOD.

Integrated solutions: If a modeling effort in process has to be moved from spreadsheet to NMOD, most, if not all, tables can be kept in the spreadsheet (Excel) environment and referenced from NMOD. Currently, NMOD is capable of reading Excel 2000 worksheets (not workbooks) saved in html format (see left). With the planned implementation of ODBC interface using f90SQL from Canaima Software, it will be possible to both read from and write to Excel workbooks and Access databases directly from NMOD.

Mixed language solutions: NMOD also provides users with access to all of the functions and power of the Fortran 95 programming language. If the platform of choice is PC, and if the Fortran 95 compiler on the analyst's PC has the facility, NMOD models can be linked dynamically and/or statically to Visual Basic, Visual C++ and Delphi code. If the analyst has Lahey/Fujitsu Fortran 95 (the processor used for NMOD development), this is a given. 

Independent execution: Unlike most modeling environments, every model developed with NMOD is a standalone program. Therefore, once a model is developed, it can be executed independently on machines that do not have installed copies of NMOD.

Model scalability and portability across platforms: NMOD translates logical networks built with ORMSware objects, notation and language into Fortran 95 source that complies with strict ANSI standards. Hence, the source is directly portable to any platform, from PCs to supercomputers, with an installed Fortran 95 processor.

All numerical constants and variables in NMOD are defined using Fortran 95's KIND attribute so that integrity of NMOD design in terms of precision and range of variable values is preserved regardless of the underlying architecture of a customer's chosen platform. This same feature makes it possible to scale models easily to maximum possible size and precision on user's platform of choice.

Control of memory allocation increments: ORMSware uses dynamic memory allocation for all arrays that may have to be expanded during execution. Expansion increments for key arrays are within the control of analysts so that they can take advantage of potential opportunities to optimize execution of large scale models. This may not a significant feature to most analysts, but it is there in case it makes a difference to some. 

Hands-on Tutorial

If you are a professional who develops quantitative models for a living, getting your hands on this tutorial is critical to evaluating the benefits NMOD will deliver in terms of your work velocity, reliability of your results, leisure time with your family, and time available for life-enriching activities.

All of the downloads at this site are located in Chapter 1 of the tutorial.

We invite you to download everything and discover the joy of modeling and communicating your solutions using ORMSware.

Examples

Examples included in this document are small and simple. They are scaled-down, simplified versions of real problems, but they do help readers gain quick understanding of the nature and capabilities of NMOD.

It is our hope that the range of examples included here, in the primer and the hands-on tutorial is sufficient to stimulate readers to think of many modeling challenges that could be tackled with NMOD. If you have any scaled-down examples of real problems that will be ideal for extending the range demonstrated here, please contact us at ormsware@ushar.com.

At least three of the examples included here can be programmed fairly easily using any higher order language (HOL), especially if the language has good intrinsic array/matrix functions and procedures. However, as these models grow to become more comprehensive, you will see that NMOD will do better in terms of total cycle time, more learning cycles during each project for creating better problem comprehension, and much better model clarity and reliability.

We recommend that you go through these problems in sequence, since explanations in some parts of a problem may refer to concepts introduced in previous problems. However, this is certainly not a hard and fast requirement.

Before you look at NMOD model formulation of each problem, it may also be helpful to take a little time to reflect on, and perhaps map out on paper, how you would model that problem with Microsoft Excel or other useful modeling tools.

Click on Examples subheading above to go to the Examples section, but we recommend that you read the section below about the primer before going to examples.

Primer

NMOD is one of those tools that becomes intuitively appealing once one gets over an initial familiarity barrier and develops a cursory understanding of its basics. This is especially true for professionals who actually do hands-on modeling.

Executives and customers of modeling professionals will to get through the modeling examples with little difficulty even if they do not have in-depth knowledge of NMOD. The reason is that stakeholders who do not get into the nitty-gritty of modeling tend to seek a higher level of understanding of a model. Practitioners on the other hand are likely to want to know what is going on underneath it all inside the tool. 

If you are likely to be a hands-on user of NMOD, you may want to proceed simultaneously on all fronts. When you feel the need to understand the underpinnings of what you see in examples, you can find out the details from the primer. And when the primer starts to get too abstract, you can go as far as you can with the hands-on tutorial. Chapters 2-12 of the primer spend a lot of time on NMOD concepts and principles. When you feel the need to take a break from them, you may want to jump to the tutorial or the examples.

If you download all of the required components (ORMSware NMOD, UltraEdit browser and the compiler), and get Visio 2002 Trial from Mircrosoft, you will be able to touch and feel NMOD as you go through the details. It will enable you to create EXE files of models presented at this site and/or create your own models, and execute them on your computer.