PubMed Health⌕ Search

PubMed · 3185023

Programming medical rosters in Prolog.

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.

Explore related subjects

Keep this discovery

Explore connections, maps & timelines

BibTeXRIS

S Rosenberg. Programming medical rosters in Prolog.. https://doi.org/10.3109/14639238809010099

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related citations

A note on a generalized single step theory for any number of hierarchical genomic matrices.

BACKGROUND: The Single Step algorithm allows combining information from genotyped and un-genotyped individuals, provided they are connected by a pedigree. However, current single step theory is limited to a single list of markers. RESULTS: We present a generalized single step (GSS) method that can accommodate any number of hierarchical molecular datasets (e.g. sequence, high and low density arrays) and pedigree, avoiding imputation. We prove that a similar efficient inversion algorithm exists. The method is recursive, starting with the highest marker density scenario. We illustrate the method with simulation and show that GSS can increase predictive accuracy compared to standard single step. R code is provided so that custom scenarios can be easily compared, either with simulated or real data. CONCLUSION: The method developed generalizes extant single step theory to any number of hierarchical molecular relationship matrices, broadening the scenarios where single step can be applied. A topic of particular interest can be ecology field data or human populations where pedigree is not available, but where samples sequenced and genotyped at different densities can exist. GSS can also be a useful tool to optimize allocation of genotyping and / or sequencing resources.

Algorithms↗

cgDist: Nucleotide-level distance calculation from cgMLST allelic profiles.

Bacterial genomic surveillance requires balancing computational efficiency with genetic resolution for effective cluster investigation. cgMLST distance calculations treat all allelic differences as equivalent units, obscuring nucleotide-level variation. Furthermore, single nucleotide polymorphism-based pipelines provide finer resolution at substantially higher computational cost, which limits their routine deployment in surveillance laboratories. We present cgDist, an algorithm that calculates nucleotide-level distances directly from cgMLST allelic profiles, providing finer resolution than allele-count distances by leveraging within-allele nucleotide variation. The cache architecture stores alignment statistics, enabling distance calculation modes without computation and supporting both dataset-specific and schema-complete cache generation. This design enables incremental surveillance analysis, with performance benefits as laboratories accumulate alignment data. cgDist functions as a precision 'zoom lens' for the investigation of clusters identified through initial cgMLST screening. Rather than restructuring population relationships, this targeted approach concentrates enhanced resolution where it is most informative. The algorithm ensures that cgDist distances are greater than or equal to corresponding cgMLST distances, preserving epidemiological interpretability while adding genetic discrimination. By increasing resolution within identified clusters, cgDist may also support outbreak investigation, a potential application that remains to be evaluated on outbreak-derived data.

Algorithms↗

Theseus: fast and optimal affine-gap sequence-to-graph alignment.

MOTIVATION: Sequence-to-graph alignment is a central problem in bioinformatics, with applications in multiple sequence alignment (MSA) and pangenome analysis, among others. However, current algorithms for optimal affine-gap alignment impose high memory and computational requirements, limiting their scalability to aligning long sequences to complex graphs. Practical solutions partially address this problem using heuristic strategies that ultimately trade off optimality for speed. RESULTS: This work presents Theseus, a novel, fast, and optimal affine-gap sequence-to-graph alignment algorithm. Theseus leverages similarities between genomic sequences to accelerate the alignment computation and reduces the overall memory requirements without compromising optimality. To that end, Theseus processes only a subset of the dynamic programming cells, using a sparse-data strategy that enables efficient sequence-to-graph alignment. Moreover, our algorithm supports optimal affine-gap alignment on arbitrary directed graphs, including those with cycles. We evaluate Theseus on two key problems: MSA and pangenome read mapping. For MSA, we compare it against SPOA, abPOA, and POASTA. Theseus is 1.6× to 17.6× faster than POASTA, and 7.3× faster, on average, than SPOA, both optimal aligners. Compared with abPOA, Theseus ensures optimality and scales to the largest problems. For pangenome read mapping, we benchmark Theseus against the alignment stage of the mapping tool vg map, along with the alignment kernels of SPOA, abPOA, and POASTA. Theseus outperforms the other methods, showing a 1.9× to 16.9× speedup on short reads. Moreover, Theseus is 1.5× to 36.3× faster than vg when aligning against synthetic cyclic graphs. AVAILABILITY AND IMPLEMENTATION: Theseus code and documentation are publicly available at https://github.com/albertjimenezbl/theseus-lib.

Algorithms↗