@@How Problem Views Work

* @The Basics@The Basics of Problem Views@

* @The Details@The Details of Problem Views@

* @Future Plans@Future Plans for Problem Views@


@@The Basics of Problem Views

A problem view is for controlling and monitoring the computations
which are brought to bear in an attempt to solve a problem.

The way Magnus manages the computations associated with a problem may
be unfamiliar to users of other mathematical software.

Each of the computations may be given zero or more Abstract Resource
Credits (ARCs). These represent (very roughly) the amount of
computation to be done without intervention by the user. You will
certainly notice that some computations use ARCs faster than others;
an ARC is not a unit of time. When a computation uses all of its ARCs
before finding the desired result, it becomes idle until the user
gives it more. Thus a computation which may be non-terminating, or
just too big for the machine, can be kept under control.

You may enter the number of ARCs you want to allocate to a problem by
typing it into the corresponding box, or by using the slider. The
slider goes only from 0 to 100, but larger numbers may be typed in.

Start the problem going by pressing the Start button. While the
problem is going, you are prevented from changing ARC values, but you
can suspend the problem at any time. When a problem is suspended, you
can change ARC values, and resume the problem.

While the problem is running, the ARC values are lowered as they are
used up, and the display of the total amount used increases. A light
on the problem icon also blinks green.

When a problem is definitely doing nothing, the light on its icon is
red. In some cases, a problem may be aware that it can not work
towards an answer at the moment, possibly because it depends on
another computation which has used all of its ARCs. In this case, the
light turns yellow.  Since there are many ways that a computation can
come by ARCs (the word problem and the order problem, for example, may
both allocate ARCs to, say, Knuth-Bendix), a problem with a yellow
light may be able to answer after all, if someone else pays for what
it needs.

All information discovered which might be relevant to the problem is
written to the log. The log is editable, so you can make notes or
delete things you don't want. You can save the contents of the log in
a file, using the File menu.

The Cancel button closes the view window, and discards any changes you
made to ARC values or the log. It does not delete the problem, or
change its state. The Close button does the same, except that it saves
any changes.

The Terminate button halts all activities of the problem, withdraws
the ARCs which it has given to computations (which may be @shared@The
Details of Problem Views@), and frees all resources (such as memory)
used exclusively by the problem. It does not delete the problem object
(use the delete item in the Tools menu), so you can still browse the
log, etc.


@@The Details of Problem Views

Magnus is multitasking. That is, it cycles through a task loop in
which it checks whether you told it to do something, and if not, it
chooses a computation and informs it that it may consume one ARC. All
computations get their turn eventually.

Many computations compute things which may be useful in solving other
problems. Therefore, any computation is automatically shared by all
problems which want it. As a result, when you allocate ARCs to a
computation, they are marked as coming from a particular problem; if
you suspend or terminate the problem, only the ARCs allocated through
that problem are frozen or withdrawn.


@@Future Plans for Problem Views

We intend to augment the ARC slots in a problem view with a way to
limit the amount of memory used by a computation, and to see how much
it is using.
