Rosenberg S. Programming medical rosters in Prolog.
MEDICAL INFORMATICS = MEDECINE ET INFORMATIQUE 1988;
13:187-98. [PMID:
3185023 DOI:
10.3109/14639238809010099]
[Citation(s) in RCA: 1] [Impact Index Per Article: 0.0] [Reference Citation Analysis] [Abstract] [MESH Headings] [Track Full Text] [Subscribe] [Scholar Register] [Indexed: 01/04/2023]
Abstract
The Logic Programming language, Prolog, is used to schedule the medical duty roster for a French psychiatric hospital. Each of the seventeen doctors participating is asked to fill in a form indicating his preferences (prefers, can or cannot) for the slots (days and weekends) of a roster covering a period of three months. An algorithm has been designed which seems to produce an optimal solution, in the sense that as many participants as possible are satisfied. First of all, the program fills in the 'preferred' slots, then the 'possible' slots and finally the 'not-impossible' slots. A number of constraints are applied: two consecutive roster slots are not allowed and the number of allocations is limited for each person. If more than one person is a candidate for a given slot at a given preference level, then a probabilistic conflict resolution procedure is put into action. Prolog, which is modular and easily modifiable, seems, with its declarative interpretation and backtracking mechanism, to be well adapted to the solution of such problems.
Collapse