OR/MS Today - October 2004|
TK Solver 5.0
Time-tested mathematical modeling software boasts many new features.
By Jeff Bracht
TK Solver from Universal Technical Systems (UTS) is practical, time-tested mathematical modeling software, combining an intuitive rule-based language with procedural programmability and a nice collection of prepackaged tools and links to popular programming environments. TK Solver models can be as simple as a handful of equations or as complex as parameter estimation in fitting a solution to simultaneous differential equations to sample data. As an example of special interest to the O.R. community, UTS teamed with Donald Gross and the late Carl Harris, authors of the Wiley & Sons textbook "Fundamentals of Queuing Theory," to produce a queuing application using TK Solver.
TK Solver was one of the first general-purpose problem solvers for desktop PCs, originally released in 1982 and dubbed as an equation solver. Since then, the product has steadily matured. Reviews in the mid- to late-1980s applauded its unique iterative solving and backsolving powers but consistently criticized its multi-sheet, multi-level text-based interface as being too confusing for occasional users. Since the interface was completely overhauled in the 1990s to run on the Windows platform, navigation and use of the program have been simplified. They are much more intuitive, and once the user becomes familiar with the program's structure and tools, its well-organized system for model-building and problem-solving is not difficult to use.
The current version, TK Solver 5.0, strives also to be a useful tool for application developers through links with Excel, browsers, Microsoft Visual Basic, .NET and other popular programming environments. It's a simple task, for example, to incorporate the variables from several TK Solver models within a single, dynamic Excel application. Clearly, today's TK Solver is much more than an equation solver.
Interface and Navigation
Most math-related software programs give you an interface where you progressively build a document with each line relying on those prior to it. At the end of the document, you see the final solution. This approach has proven very effective for problem-solving at various levels, as well as for preparation of student homework and thesis papers.
TK Solver takes a completely different approach, making the assumption that the model builder will often desire to reuse it to solve related problems that may not follow the original sequence of steps. With this in mind, all the variables are summarized on a single work sheet. Variables can interchangeably be defined as inputs or outputs. The same concept applies for other types of objects in the model. There are separate sheets for storing functions, lists, tables, plots, unit conversions, numeric formats and hyperlinked comments. All these sheets are accessible in a variety of ways, with the most prominent being a Navigation Bar on the left edge of the screen.
The program includes Wizards for all sorts of activities, from using built-in functions to generating tables of plots, to importing unit conversion factors. The unit conversion library is extensive, and engineers should be able to find what they need there. If not, it is simple to add whatever additional conversions are required.
I can see how reviewers 20 years ago may have gotten confused by having to memorize a series of keystrokes to find their way in and around all of these sheets. But Windows has been kind to TK Solver the interface is easy to work with.
As the equations are entered on a single line like you would in Visual basic or C they're instantly displayed in MathLook view on the screen as well as in the reports. That helps you immediately check if you entered the equation correctly. A Greek palette is also available for entering those characters.
A Variables Window displays all the variables in the model, and this is where you supply input values, units and descriptions. Figure 2 displays the Variables Window for this example with sample inputs provided along with the results after solving.
The same model can solve many different problems. Suppose you want to reduce the expected waiting time in the system (W) from 18 minutes to just five minutes. What must the new service time (st) be? With TK Solver, it's as simple as blanking the value of st, changing W to an input of 5, and solving (Figure 3).
It really is that easy. This is completely different from how such problems must be solved with procedural languages, spreadsheets and math packages. Such alternatives require you to invoke a special solver or optimizer, adding to the complexity and difficulty in application development.
There is a lot more to this program than initially meets the eye. There are Flash Tutorials to introduce you to the interface and features. The Help Utility is easy to access and use, too. For example, I found that all the Procedure Language constructs were concisely summarized with examples, and I was able to find this information within a couple of clicks from the function I was building. Browsing the Help Utility is one way to learn more about the software's potential.
One can also learn a lot by visiting the TK Solver Library Menu. This Library contains a collection of tools and examples written in TK Solver. For example, there are functions for finding roots of polynomials, sorting lists or interpolating within tables. There is also an extensive set of routines covering probability and statistics. It really helps to be able to see and understand how these functions were written. This is also the case for the numerous examples in the TK Solver Library. The examples for curve-fitting, optimization and integration of differential equations are vital for understanding these features. Faculty members in particular will find this facility quite helpful in their teaching.
The UTS Web site also includes case studies for some of the more complex modeling issues. There are two case studies on differential equations. I would like to see more of these specifically targeting O.R. topics.
Solution Optimizer. The Solution Optimizer is essentially a shell around the TK Solver rule-based language. Once a mathematical model is created, you can invoke the Solution Optimizer to solve it within whatever constraints you have. Those familiar with the Excel Solver will feel at home with the Solution Optimizer, as UTS licensed the technology from Frontline Systems, the developers of the Excel Solver. One important difference with this implementation is that TK Solver handles the iterative solution of simultaneous equations on its own, freeing up the Solution Optimizer to independently focus on other, more complex optimization issues.
As mentioned earlier, the TK Solver Library includes a collection of examples to get you familiar with the potential of the Solution Optimizer. Several of them are classic O.R. problems including sales force allocation, facility location, inventory costs, gas blending and portfolio optimization.
There are two options for setting up your Solution Optimizer constraints. UTS decided to include one interface that looks very similar to that of the Excel Solver for those already familiar with it. The other is a more elaborate, step-by-step wizard that walks you through the entire process.
Decision variables can be declared as continuous, integer or binary integer. The program differentiates between "bounds" and "constraints" in the solving process. Bounds are limits beyond which the Solution Optimizer should not attempt to search while constraints can be violated during the optimization process. For example, a global bound can be set that specifies that no decision variables can be negative. Both the constraints and bounds can be set and dynamically updated based on values of other variables in the model.
Figures 5, 6 and 7 are the Optimization Wizard forms.
TK SolverExcel Link Packager for Distribution. The Packager makes TK Solver attractive for application developers or anyone who wants to share a math model with others. It lets you dynamically link any number of TK Solver models to your Excel spreadsheet to act as subroutines within it. Furthermore, the Packager lets you bundle the models with the spreadsheet and send the file to another Excel user. The recipient does not need to have TK Solver installed to "run" your spreadsheet. A free utility TK Solver Player for Excel can be downloaded from the UTS Web site similar to the way Adobe distributes their player for reading PDF files. However, the Player runs entirely behind the scenes once it is downloaded. It was a two-minute job to link my queuing model to Excel and package it. This is a nice feature.
These models come with a 250+-page manual with commentary from Gross and Harris plus sample problems. Unfortunately, while the TK Solver interface has dramatically improved with its adaptation to Windows, the Gross and Harris manual is a relic of the DOS world. While the outdated manual does not prevent using the QTK package or limit its usefulness, it is disappointing to find it included in a premium software package.
The models are easily loaded in to TK Solver, and from there it's just a matter of entering your inputs. Of course, these models can also be linked with Excel spreadsheets and used as subroutines with more elaborate applications.
You can highlight one or more Excel cells, click the MathLook icon, and all your formulas appear in 2D format. One particularly useful feature is formula expansion for cell dependencies. It's possible to create some rather impressive looking equations. All in all, pretty handy if you ever need to audit or document formulas. The tool also includes a grid for naming cells. Anyone working with a lot of Excel formulas shouldn't be without this low-cost utility.
The Monte Carlo simulation feature in StackSoft makes it possible to assign different distributions to the tolerances of various part dimensions in an assembly to assess the overall effect on various production quantities. A classic example might be the valve train assembly in an engine, which involves two dimensional tolerance analysis involving both linear and angular dimensions. With the kind of precision today's engines demand, the tolerance analysis can play a critical part in the design and manufacturing of valve train components.
StackSoft is very easy to use and has its own interface overlaid on TK Solver, so that knowledge of TK Solver is not needed. No extensive knowledge of statistics is required, either. With minimal training and some guidance, designers can create models of tolerance stacks for most assemblies.
I was also fortunate enough to have the privilege of testing UTS's Simulation Wizard. The Simulation Wizard is another TK Solver application that permits the creation of Monte Carlo simulations involving combinations of variables that are more complicated than the simple addition/subtraction available in StackSoft. I found the Simulation Wizard to be the perfect tool for analyzing the relationship between the orientation of machined surfaces and bearing clearances on a shaft assembly something that StackSoft could not do. While the Simulation Wizard is not commercially available, if UTS can be convinced to offer it, it would be another extremely powerful tool to add to the TK Solver libraries.
Jeff Bracht is an engineer at Kohler Co.
OR/MS Today copyright © 2004 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 2004 by Lionheart Publishing, Inc. All rights reserved.