| ||||||||||
| MINERVA superseeded IF/Prolog.
Please see
http://www.ifcomputer.co.jp/MINERVA
for details.
We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008. This example concerns the planning of a simple project. Tasks are only dependent on the completion of other tasks. Further analysis reveals the ``critical path'' - those tasks in which a delay would be critical to the completion of the project on time. The tasks A through G comprise the planned project. Each task requires a certain amount of time to complete and is dependent on the completion of other tasks according to the following diagram:
:- import(const_domain). In the IF/Prolog program, inter-dependencies between the jobs (A...G) are represented as arithmetic constraints, for example D ?>= B + Dd can be read as Job D is completed after the start and duration of Job B. The constraints themselves (?>=/2) do not activate to determine a solution to the variables they contain, until they are passed to one of the solver predicates which then solves the complete problem. The label/1 predicate finds values for all variables in the list Jobs. In the above, label/1 is quickly able to determine that a value for variable A exists as its start time and duration are fixed. Then, through ``constraint propagation'', values are calculated for the remaining variables.
| ||||||||||
|
| Back> |
|