Составители:
Рубрика:
28
Одной из часто встречающихся практических задач является задача
составления расписаний. Рассмотрим пример подобной задачи (взятый
из журнала “Наука и жизнь”):
«Пять студентов должны посещать лекции всю неделю, но по опре-
деленным ими установленным правилам, а именно:
1. Если пришли Андрей и Дмитрий, то Бориса быть не должно, но
если Дмитрий не пришел, то Борис должен быть, а Виктор быть не
должен.
2. Если Виктор пришел, то Андрея быть не должно и наоборот.
3. Если Дмитрий пришел, то Григория быть не должно.
4. Если Бориса нет, то Дмитрий должен быть, но если нет также и
Виктора, а если Виктор есть, Дмитрия быть не должно, но должен быть
Григорий.
5. Каждый день студенты должны приходить в разных сочетаниях.
Какие это сочетания?»
Для решения этой проблемы может быть предложена программа:
Программа 19
DOMAINS
s=symbol
PREDICATES
st_A(s) st_D(s) st_B(s) st_V(s) st_G(s)
ogr1(s,s,s,s,s) ogr2(s,s,s,s,s)
spisok(s,s,s,s,s)
norm1(s,s,s,s,s) norm2(s,s,s,s,s)
norm3(s,s,s,s,s) norm4(s,s,s,s,s)
CLAUSES
st_A(A):-A=andre; A=net.
st_D(D):-D=dmitri; D=net.
st_B(B):-B=boris; B=net.
st_V(V):-V=victor; V=net.
st_G(G):-G=grig; G=net.
ogr1(andre,_,_,net,_). ogr1(net,_,_,victor,_).
ogr2(_,dmitri,_,_,net). ogr2(_,net,_,_,_).
norm1(andre,dmitri,net,_,_).
norm2(andre,net,boris,net,_).
Страницы
- « первая
- ‹ предыдущая
- …
- 28
- 29
- 30
- 31
- 32
- …
- следующая ›
- последняя »