How to Run UMCP


After you load UMCP and a domain, you can run UMCP by (search-for-plan goal-tn) where goal-tn is a goal task-network. When the variable *run-to-finish* is set to T, UMCP generates a plan using the default refinement strategy to guide the search. If you are using GUI, you can do this by clicking "run to finish" button.


Guide the search with GUI

When the parameter umcp::*display-win-flag* is set T, SEARCH-FOR-PLAN automatically open three GUI windows. SEARCH-FOR-PLAN will open three windows.

Windows

The biggest window on the top is the task-network window. The left sub-window inside the task-network window show the task-network as a top down graph where tasks are represented by nodes. Non-primitive tasks are in white and the bold fonts are used. For primitive tasks, the node is in yellow and the fonts are in normal style. The right sub-window displays all the information about the task-network which is currently showing on the left-side. At the top of the right sub-window, the task-network field is a editable text field which allows a task-network name to be put in. By typing in a different task-network name, the whole task0network window will switch over to the specified task0-network when the enter key is presented. At the bottom part of the left sub-window, the navigating buttons for navigating through the search tree are shown.

Whenever the window is displaying the current task-network, users can simply click on one of the tasks to expand the task. However, if the task-network window is showing a task-network which is not the current task-network, or the selected task is primitive, the system will not do anything even if it is being clicked. At the top left-hand corner of the task-network window, there is a button labeled PRINT. When clicked, the whole task-network window, including the left, right, and the bottom sub-windows, will be printed to a PostScript file named "UMCP-htn-output.ps"

The window below the task-network window is the refinement window. On the left side of the refinement window, it displays the suggested refinement by UMCP and the previous refinement performed. On the right side of the window, the current task-network is displayed and there are buttons to control the next refinement. One can click on either "yes" or "no" and then hit "go" to have UMCP perform the refinement . If neither "yes" nor "no" is selected but "go" is clicked, the default action is a "yes". Besides the radio button "no", there is a pop-up menu for all the possible refinements that the user may have. When choosing not to accept the suggestion, one can select different action to perform via the pop-up menu. When "expand task" is selected, a window with the labels of all the available tasks will be opened and the user can simply click on the window to have desired task expanded. If Enforce Constraint or Refine Constraint is selected from the pop-up menu, a message dialog box is created and the user can type in the constraints in the text field. Below the pop-up menu, there are two buttons called "run to finish" and the other one labeled "stop". By pressing on the "run-to-finish"

** At this time, the user interface may have some problem with best-first search. We are currently trying to fix the problem.


Search Methods

UMCP provides three major search methods; 1. Depth-first search (dfs), 2. breadth-first search(bfs) and 3. best-first search(bestfs). The default method is depth-first search. You can specify the search strategy when you are calling search-for-plan by giving :strategy argument to search-for-plan. For example, (search-for-plan goal-tn :strategy :bfs) will generate a plan for goal-tn using breadth-first search. In case of best-first search, the search node (task-network) selection is done by the evaluation function stored in the variable *eval-tn-func*.

Go back to Main Page