Programs to Solve Decision Trees


This web page reviews computer programs to solve decision tree models. Each program file is straight text (ASCII) which you can compile to generate an executable file.

Decision tree solver example

MARKET.PAS (3,512 bytes) is the Pascal program discussed in C. W. Kirkwood, "Implementing an Algorithm to Solve Large Sequential Decision Analysis Models," IEEE Transactions on Systems, Man, and Cybernetics, Vol. 24, No. 10, pp. 1425-1432 (October 1994). This program is from the Appendix to that article, and it illustrates how to solve decision tree models. The program is in Standard Pascal, and it should compile using any Pascal compiler.

Probability distribution calculation example

PROBCALC.PAS (4,590 bytes) is the Pascal program discussed in C. W. Kirkwood, "Recursive Calculation of Probability Distributions for Sequential Decision Analysis Models," IEEE Transactions on Systems, Man, and Cybernetics--Part C: Applications and Reviews, Vol. 28, No. 1, pp. 104-111 (February 1998). This program is from the Appendix to that article, and it illustrates how to calculate probability distributions for decision tree models. The program is in Standard Pascal, and it should compile using any Pascal compiler.

Research and development example

RAND.PAS (8,435 bytes) is the Pascal program for the research and development decision model discussed in C. W. Kirkwood, "An Algebraic Approach to Formulating and Solving Large Models for Sequential Decisions Under Uncertainty," Management Science, Vol. 39, No. 7, pp. 900-913 (July 1993). The model in this program would have 25,272 endpoints if it were drawn as a decision tree. It took 0.32 seconds to solve the model on a 133 MHz Pentium computer running Windows 95 using an executable file generated by Borland International's Delphi for Win32 compiler, Version 9.0. The code is generally Standard Pascal. However, if you use another Pascal compiler, you may have to remove the first two comment lines and the type declaration line "real = double." In addition, the program uses the special Borland Pascal function TimeToStr to determine the time needed to execute the solution procedure. If you use another compiler, you may need to remove the lines near the bottom of the program which use this function, as well as the line "uses SysUtils;" near the top of the program.

Models with continuous variables

SYNFUEL.C (22,379 bytes) is the C program for the synfuels model discussed in J. S. Stonebraker and C. W. Kirkwood, "Formulating and Solving Sequential Decision Analysis Models with Continuous Variables," IEEE Transactions on Engineering Management, Vol. 44, pp. 43-53 (1997). This program was compiled using Microsoft Quick C, Version 2.5. However, it should require few, if any, changes to compile with any Standard C compiler. 


  Return to ASU decision analysis resources page.

Last updated August 1, 2001.