main | about us | download | faq | readings | blogs | support | tutorial | *

    Tutorial Contents
  1. Introduction

  2. Samples & Instructions
  3. A Simple Example
  4. ABS Brake Example
  5. A Business Example
  6. Conclusions

A Simple Example
PSM32 and DSM Tutorial

This example presumes that, either, 1) you have downloaded our samples database or, 2) have followed the instruction for downloading and installing the examples (see the table of contents to the left).

In this simple example we will make up a small problem to get a quick overview of how PSM32 works.

What does the matrix mean?

The first row implies that item 1 depends upon items 2 and 4.

The second row implies that item 2 depends on item 3.

The third row implies that item 3 does not depend on any other item.

And so on.

The red cells just show the diagonal.

Simple1.gif (11165 bytes)

You can create this matrix by clicking on the New Problem Wizard on the tool bar.

TB_NEW.gif (24459 bytes)

In the box that appears, type the name of your problem as Simple Example. Enter the number 6 for the number of rows. Click on Next.

In the new box, click on each row and enter the name of the row. Do that for each row. Don't include the 1!, 2! etc. Then click on Finish.

Then you can enter the 0's by double clicking in the appropriate cells of the matrix. Double clicking in a cell will put the last number used in that cell. Initially this is 0. To put a specific number is a cell, click on that cell and type the number.

To add the 1!, 2! etc., right-click somewhere in the item name area, select Row, and then select Number. This numbers the rows. After reordering the rows by various other operations, you can always return to this order by clicking on Reset Matrix to Numbered (Control+1 (one)) Order as follows:

 TB_123.gif (24463 bytes)


You partition the problem by clicking on Partition All (Control+A).

TB_PART.gif (24463 bytes)

This gives you the following:

Simple2.gif (9472 bytes)

The rows have been reordered and the columns reordered in the same way.

Item 3 can be done immediately as it has no predecessors. Then items 2 and 6, which have 3 as a predecessor,  can then be done in parallel.

Items 1, 4 and 5 all depend on each other so there is no place to start. We call this a ‘block’.
Note that except within a block, all the marks occur below and to the left of the diagonal.

Principal Circuit

To see where to make tears by using assumptions we can generate the principal circuit and tearing advice by clicking anywhere in the block and clicking on Generate Principal Circuit and Tearing Advice (Control+T) as follows:

 TB_TEAR.gif (24460 bytes)

This gives the following:

Simple3a.gif (9637bytes)

The Yellow Squares (with + signs) form the principal circuit. This is the result of the program trying to find a long circuit. It tries to get the very longest circuit, but might not succeed. The tearing advice window (below) gives us details about the block we intend to tear as well as advice on where to tear. The rows in this window appear in the order you go around the principal circuit. (The circuit is completed by going from the bottom item on the list back up to the top item.)

Simple3b.gif (18378bytes)

To tackle the block of items 1, 5, and 4 we must find somewhere to introduce an assumption so as to break the circuit. We ultimately want to break all circuits, but may need add more tears before we succeed. An assumption tears the use of an information item by temporarily removing its mark from consideration. This says that instead of using an item that had been determined previously, we use an assumption. Assumptions are used to break circuits so we can find a place to start. The Tearing Advice helps us decide where might be the best places to introduce the assumptions, i.e., make tears. How to use the Tearing Advice will be discussed later.

Principal Circuit and Shunt

simple4.gif (9823 bytes)

The yellow marks in the matrix correspond to the circuit above, i.e., 1 goes to 5 goes to 4 goes back to 1.

The mark in row 5 column 4 in the matrix corresponds to the shunt in the diagram above, i.e., 4 goes to 5. A shunt crosses from one node in the principal circuit to another.

If we tear between 4 and 1, or between 1 and 5, a circuit remains, i.e., 5 goes to 4 and 4 goes back to 5 via the shunt.

If we tear between 5 and 4, corresponding to the cell with the number 5 in the matrix, we, in this case with one attempt, break all circuits. If any blocks were to remain, we would tear them similarly.

To indicate that a tear is to be made here, in the Tear Advice window we double click in the [ ] box next to item 5. Generally we get good results by choosing to tear a row where WS is .000. If more than one row has WS = .000, tear the row where S is lowest.

Click on the Column button above if you wish to tear marks in a column so the torn item will go to the bottom. Click on the Row button if you wish to tear marks in a row so the torn item goes to the top.

Click on the number in the number bar that you wish to use to identify the tear. Here we arbitrarily use 5.

Sample5a.gif (6133 bytes)

This replaces every mark in the chosen column within the block with the chosen number, in this case 5 as follows:.

Tear Marked with a 5

Simple6.gif (9171 bytes)

We could replace the 0's in the marks in various cells signifying where we want to tear by using larger digits than 0, i.e., from 1 to 9.

On partitioning, the program will first partition considering all the marks, then temporarily remove the higher numbered marks and repartition before removing the next lower numbered marks and partitioning again, and so forth. This can result in smaller blocks within larger blocks.

To see the effect of this tear, click again on the Partition All icon.

Here the program will only remove the 5 mark and repartition, and finally restore all the marks. This gives us the new order in the matrix shown below.

Repartitioned With Tear

Simple7.gif (8124 bytes)

Now that the matrix has been partitioned and the block torn, we see that the only mark(s) above the diagonal is within the block and is where we have chosen to tear. Since there are no 0's above the diagonal within the block, we can conclude in this case that the tear we chose breaks all the circuits. If this were not the case, click on the remaining blocks and repeat the process.

Next: ABS Brake Example

Updated: 7/07/2004

main | about us | download | faq | readings | blogs | support | tutorial | *

Problematics Ideas!
1995-2015 Problematics

Contact us via email at:

| Site Design by Wonderlane Studios |