OR/MS Today - August 2002|
Geared toward the business planning and simulation market, unique product from River Logic boasts plenty of power and flexibility
By Thomas W. Knowles
Enterprise Optimizer (EO) is an interesting and unique software product. EO is based on the Ph.D. research of Dr. Robert Whitehair, president and founder of River Logic, Inc. EO is oriented toward the business planning and simulation market, according to Whitehair. EO is best applied in operations/supply chain management environments. Because the underlying methodology is multiple-time-period, mixed-integer linear programming, deterministic decision environments are most appropriate. If the uncertainty is at the heart of the decision problem, solving a deterministic model is not adequate. However, there are many decision problems that have small uncertainties for which solving a deterministic model can give extremely useful results. Continuous process industries fit this very nicely so early users of EO have included forest products, petroleum, steel and chemical companies. Adopters range from large companies that want to consolidate their business planning to small companies looking for a strategic advantage. Although manufacturing operations predominate users, EO can be used in many other business planning situations, e.g. medical or other professional services.
Two aspects of EO are unique. First, models are built using icons. Thus, the user never has to create the underlying mixed integer LP model symbolically; no defining decision variables and no building constraints. Instead, the user builds the model by dragging and dropping icons onto a window, connecting them with links, and populating data tables for the objects (and links, which are a special type of object).
The second unique aspect of EO is its ability to create financial reports based on the optimized results. The financial reports include Profit and Loss, Balance Sheet, Cash Flow Statement and others that can be downloaded from EO Online. Also, users can create their own custom reports and dashboards, and export the reports to Excel for additional analysis.
River Logic perceives its competition as Excel and homegrown systems built on top of an optimizer. The typical user wants the financials associated with planning. Although some might think of ERP systems as EO's competition, River Logic does not. According to Whitehair, EO is a strategic tool, not a tactical tool, although some users find it useful for tactical problems. Organizational responsibilities of users include CFOs, strategic planners, product management, plant managers and internal consulting groups.
Before we discuss the graphical model building, we need to examine system objects, particularly the Enterprise Object. The browser window accesses Reports, Dashboards, Queries, System Objects, Objects (the actual objects representing components of the system) and Relations. The Enterprise Object is a system object and is where the number and duration of the time periods is specified. For example, a one-year time horizon could be represented as three one-month periods and three one-quarter periods. The model would contain six periods, with the first three being of duration 1 (month) and the last three of duration 3 (months). Also, the Enterprise Object is where you specify whether a facility is open, closed, or let the model decide.
The objects/icons available to build a model representing the enterprise include Purchase, Conversion, Inventory, Sales and Transport as well as the Link (sometimes called a Relation) Object, which must connect each of the other objects. Three other object types are Financial Report, Source of Funds and Use of Funds. You specify the characteristics of an object by populating its tables. For example, the Purchase Object can be used to represent a supplier of raw material(s). For that object there are tables for Purchase Activity, Adjustment Data, Analysis Results, Volume Discount Data, and Transaction Drivers.
Let's discuss some of these tables to illustrate the general table structure of other objects. The data inputs for the Purchase Activity table include name, cost/unit, other costs/unit (useful for segregating costs for reporting purposes), minimum and maximum units/period, and minimum and maximum units (over the time horizon). As is true in many of the object tables, the per period inputs in the Purchase Activity table can be used to initially populate the tables for each of the periods in the MTP (multiple time period) tables to reduce the required data entry. Of course, these values can be changed using the Adjustment Data table to reflect differences between the periods. Also, the tables can be populated from data that resides in external databases or spreadsheets.
The Volume Discount table gives the quantity discount information. If no quantity discount exists, there are no rows in the table. If there are multiple discounts depending on volume, there will be one row in the table for each discount step. The data inputs include item name, discount point (in units), discount price/unit, percent discount, retroactive (i.e., all-units or incremental discounts) and fixed discount. The fixed discount could be used to model a rebate received if the total volume exceeds the discount point. Note that you can specify the discount either as a price/unit or as a percent of the price in the Purchase Activity table.
Inventory Objects, as you would expect, contain materials obtained from Purchase Objects for use in Conversion Objects. Or, they contain materials yielded from Conversion Objects for disposal in Sales Objects. Inventory Objects also allow for beginning and ending inventories, and the ability to constrain the volume of material carried over from one time period to the next.
Conversion Objects enable a representation of any process in any industry, e.g., a manufacturing facility. Two important aspects of the Conversion Object are processes and resources. Often a resource represents a machine. The Resource Activity table contains a row for each resource/machine. The data inputs include minimum and maximum straight time hours/period, minimum and maximum overtime hours/period, minimum and maximum straight time and overtime hours for the time horizon, labor cost/hour, and the fixed cost/period of the resource and percent downtime.
The Process Activity table of Conversion Objects defines processes and their characteristics. More than one resource may be used in a process. The data inputs include process units/hour, cost/unit, cost/hour, setup time, setup cost, minimum and maximum units/period and total over the time horizon. As you would expect, if the volume of the process is greater than 0 in a period, the setup cost and setup time are incurred once in the period. No sequencing is done within a period.
Similar to Purchase Objects, a Sales Object's primary function is to sell or dispose of material. Transport Objects are especially useful for network models when many ship-from and ship-to points exist, where they allow for a much simplified model structure.
A Plant Location Example
Consider a plant location problem with three plants and five marketing regions. The plant data is shown in Table 1. Table 2 contains data for the marketing regions, including a minimum and maximum required for each. The shipping costs per unit from each plant location to each marketing region are in Table 3.
The problem is to choose which plant locations to use, how much to produce at each plant, and how much should be shipped from each plant to each marketing region so that profit is maximized. The amount shipped to each marketing region must be between the minimum and maximum required. It is assumed that there is a single product.
There are many EO representations of the problem to be solved. Figure 1 shows one EO representation of the plant location problem. We illustrate this with a single time period. However, by making additions to the Time Period Definition table of the Enterprise Object, we could make it a multiple time period model. Figure 1 also shows the object palette for our example. Figure 1 contains one Conversion Object for each plant. A Sales Object represents each marketing region. Note that an Inventory Object is required between any objects of the Purchase, Conversion, Sales and Transport types. Consequently, an Inventory Object follows each plant and an Inventory Object precedes each marketing region. A Transport Object connects the plant Inventory Objects to the Marketing region Inventory Objects.
Figure 1: Representation of the plant location problem.
The first step in building the EO model is to drag-and-drop the icons from the object palette to build the visual model as in Figure 1. After having inserted the other objects, the user adds the links between them. For example, the link from an Inventory Object to a Sales Object can be either sort or mix type. A sort type is a one-to-one relationship: a material is taken from inventory and sold. A mix type is a one-to-many relationship: multiple materials are defined as a group and sold together.
Let's focus on the Conversion Object, Plant A. Its important information includes the capacity, fixed cost and variable manufacturing cost/unit. Plant A could be represented in much more detail than the problem description provides. For example, there could be multiple products, multiple machines at Plant A, and multiple processes that have different yields of the multiple products. Because of the simpler problem, there are many places where it is not necessary to specify input values and you can accept EO's default values. If necessary, a blank row in a table is inserted and the table values are entered. First, in the Resource Activity table, define Machine A as a resource. Then, specify "Minimum ST/period" and "Maximum ST/period," where ST refers to straight time (as opposed to overtime). The Process Activity Table could contain a line with table headings and entries as follows: Process Description|Line A; Resource|Machine A, $/unit|15; Max Units/Period|5000; Process Units/hr|10,000. The "15" is the variable manufacturing cost/unit. The "5000" is the capacity (if Plant A is open). The Process Units/hr value is chosen arbitrarily so that the Maximum ST/period constraint on Machine A is certain to be nonbinding. This EO formulation associates the limited capacity and manufacturing cost with the process, not the resource. In the Facility Definition Table of the Enterprise Object, Plant A's fixed cost is specified and the Decision Switch is set to "Decide."
Another set of inputs is associated with the selling price and requirement amounts for the marketing regions. These inputs are specified in the Sales Objects. The Sales Object for Marketing Region 1 has a Sales Activity table. Among the table headings and entries are: $/unit|40 (the selling price); Minimum units/period|2000; Maximum units/period| 3000. Note that there could be an input for Discounts, Returns and Commission Rate the default is 0. Also, the Minimum Total Units (default 0) and Maximum Total Units (default 10,000,000) would be limits on the total over multiple time periods.
In Inventory A, "Product" is the material defined in the Inventory Activity table. The link from Plant A to Inventory A specifies that one unit of "Product" results from each unit of the Process named Line A. The only table for the link from Inventory A to the Transport Object is Transfer Activity. The shipping costs per unit are entered in the Cost Definitions table for the Transport Object. There is one table row for each route from a Conversion Inventory Object to an Inventory Object for each Sales Object. The display follows the standard EO convention of black table entries being inputs and blue table entries being derived from the optimized solution. The links leaving the Transport Object have a single table, Transfer Activity. The Inventory 1 Object has an Inventory Activity table. Because this problem is a single-time period, most of its columns are not relevant, but some are listed to indicate some of the capabilities for a multiple time period problem: Minimum Begin Units, Maximum Begin Units, Minimum End Units, Maximum End Units, Minimum Carryforward Units, Maximum Carryforward Units and Holding Cost/Unit. Note the "End" values refer to the end of the time horizon whereas "Carryforward" refers to other end of period inventory levels.
The optimal solution from EO is the same as obtained by solving the integer linear programming model using LINGO from Lindo Systems, Inc.
Figure 1 shows that financial reporting entities have been created for each of the plants, the combined marketing regions and the company. To build a financial reporting entity for Plant A, you give the value "Plant A" to the facility variable name for the Conversion Object and its Inventory Object. Then you drag the Financial Report icon, drop it onto the window, and give the same value to its facility variable name. All the Marketing Regions were given the facility variable name of Marketing Region so they were reported together. The Company entity is a special report type called a "Rollup Facility." Links connect the other reporting entities to the Company, which combines the information from each of them to a composite report. One of the useful attributes of EO is that the user can select the level of aggregation for financial reporting. Among the pre-built financial reports is "Profit and Loss by Facility MTP." To populate the report, chose the Generate Report menu item from the available reports. Figure 2 shows the Profit and Loss statement for the Company. The reports for the entities that were rolled up to create the Company are in the same report. The reports can be easily exported to Excel.
Figure 2: Profit and Loss statement for the company.
The user can customize the chart of accounts. Transaction drivers specify the accounting treatment of transactions, e.g., account debited or credited and when it is reflected (this period or later) for transactions. For example, the user can specify the relative proportions that go to cash and accounts receivable for a Sales Object. For an MTP model, creating a cash source/use report and a balance sheet for each period can give information in a form very familiar to top management. The default is an unconstrained balance sheet, but EO has the ability to impose constraints on ratios and balance sheet items associated with debt covenants.
Dashboards allow the user to create, view and print summary across more than one object of the EO model. Dashboards also can be used to display data in customized formats. The user can create custom dashboards or download pre-built ones from EO Online. Figure 3 shows the result of using a pre-built dashboard to display the Sales results for the plant location example.
Figure 3: Result of using a pre-built dashboard to display the Sales results for the plant location example.
River Logic licensed the basic mixed integer LP solver from the Russian Academy of Science and improvements continue. No speed benchmarking was done, but the vendor claims that the solver is competitive with other optimizers on models that have the structure resulting from EO. Examination of the solution log shows that standard branch and bound steps are used: preprocess the model, solve the continuous problem using a simplex solver, then branch and bound. Solver parameters that the user can control include the optimality tolerance, iteration limit and memory allocated. Sometimes a decision problem has several possible choices, and choosing one eliminates the possibility of choosing any other choices in the set. EO defines these Constraint Sets at the enterprise level. The solver treats these as special ordered sets.
Implementation and Usefulness to OR/MS Community
EO is technically sound. Installation was via the Web as was the acquisition of the unlock key. Installation was smooth and error free. Telephone customer support was excellent. EO has a huge number of attractive features. EO has been averaging a new release each year. Each release brings a host of new features. Relative to EO 3.1, EO 4.0 added many new financial reporting capabilities (including Economic Value Added), other cost buckets on all links for cost segregation, inventory shrink rate, unit conversion factors on all non-financial links, and integer or continuous variable specifications for purchase, conversion and sales decision variables.
The documentation is well designed. EO has an extensive help system that runs about 500 pages if printed. Also, a Web-based "Introduction to Enterprise Optimizer" course leads the user through the steps of building a simple example model.
EO has great potential for the OR/MS community. Licensed users can download example models, pre-built dashboards and reports from EO Online. The implementation is very high quality. There is no size limitation on the models that can be solved, given sufficient memory.
EO is easy to use, once its structure is understood. For example, experienced model builders recognize that users often make data-entry errors or are too aggressive in the constraints they want to impose. Either way, the result can be that there is no feasible solution and debugging the reasons can be difficult for the user. EO has extensive data checking capabilities that can identify the fact that there is no feasible solution before the model is optimized. For example, the user might forget to include a row in an Inventory Object table that should use a process defined for a Conversion Object in another table. Data checking would catch this. This is particularly important because of the necessity to make entries in so many tables.
EO has tremendous capabilities. For example, the objective need not be maximization of the net income (i.e., profit maximization) although that is the default. Maximizing NPV is easily done. You can imagine that the diagram could be extremely complicated with multiple products, machines, processes, sales regions, raw material suppliers, etc. It is possible to assign a collection of objects to a metanode to simplify the appearance. Then, by drilling down you can see the results at the detailed level.
EO also provides "Opportunity Values" that OR/MS professionals call reduced costs and dual prices. A useful report gives the 10 most positive and 10 most negative opportunity values; these are used to identify bottlenecks. Of course, opportunity values should be used with great care for models with integer decision variables.
There are many other EO representations of the plant location problem. You could use a Purchase Object before or instead of the Conversion Objects. Also, you could represent the problem with just five objects (C -> I -> T -> I -> S) by using macro objects. Even simpler, the Transport Object could have been eliminated.
EO will not replace optimizers and modeling languages. There certainly are decision problems that will not fit in the EO format. Often, the trick of using a system with a designed format is exploiting its capabilities in unintended ways. For example, EO assesses inventory costs based on the end-of-period inventory. If you desire to use another assessment scheme, you must keep within EO's structure, but you may be able to accomplish the other assessment by subtle exploitation of EO's capabilities.
Because EO has so much power and flexibility, a casual user will not be able to use it effectively without help. The surface has only been scratched in this review. Even more, subtleties of primary versus secondary flows, development of custom dashboards and reports, customization of icon appearance (use your own bitmaps) and column headers, facilities versus locations, tariffs (e.g., duty drawbacks), taxes and transfer prices between countries, Standard versus Macro objects, autofill versus MTP, etc. are not easy to grasp. River Logic is developing channel partners that assist in developing planning models. These include accounting firms, people with expertise in the process industries and consultants both external and internal. You can expect to hear more about this powerful system.
Thomas W. Knowles is a professor of Management Science and Operations Management at the Stuart Graduate School of Business at Illinois Institute of Technology. His teaching and research focus on optimization methods and applications. He has more than 20 years of experience as a consultant on optimization-based planning systems. He is the author of a management science textbook and numerous papers.
OR/MS Today copyright © 2002 by the Institute for Operations Research and the Management Sciences. All rights reserved.
Lionheart Publishing, Inc.
506 Roswell Rd., Suite 220, Marietta, GA 30060 USA
Phone: 770-431-0867 | Fax: 770-432-6969
Web Site © Copyright 2002 by Lionheart Publishing, Inc. All rights reserved.