Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


–асширение Prolog дл€ использовани€ в качестве €зыка логического программировани€ в ограничени€х




–ассмотрим взаимосв€зь между €зыком Prolog и задачей удовлетворени€ ограни≠чений. Ѕазовый Prolog сам может рассматриватьс€ как довольно специфический €зык удовлетворени€ ограничений, в котором все ограничени€ имеют весьма жест≠кую форму. ќни представл€ют собой ограничени€ равенства между термами. Ёти ог≠раничени€ равенства провер€ютс€ средствами согласовани€ термов €зыка Prolog. ’от€ ограничени€, установленные между параметрами предикатов, также задаютс€ в терминах других предикатов, эти вызовы предикатов в конечном итоге свод€тс€ к согласованию. Prolog может быть расширен до "насто€щего" €зыка CLP путем введе≠ни€ других типов ограничений, кроме согласовани€. Ѕезусловно, должен быть также усовершенствован интерпретатор Prolog таким образом, чтобы он мог обрабатывать указанные ограничени€ других типов. —истема CLP, способна€ обрабатывать ариф≠метические ограничени€ равенства и неравенства, позвол€ет непосредственно решать задачи составлени€ расписаний, подобные приведенным выше.

ѕрограмма с ограничени€ми интерпретируетс€ примерно таким образом. ¬о вре≠м€ выполнени€ списка целей сопровождаетс€ множество текущих ограничений CurrConstr. ѕервоначально это множество €вл€етс€ пустым. ÷ели в списке целей выполн€ютс€ одна за другой в обычном пор€дке. —тандартные цели Prolog обрабаты≠ваютс€ как обычно. ѕри обработке цели с ограничени€ми Constr множества ограни≠чений Constr и CurrConstr сливаютс€, в результате чего создаетс€ множество NewConstr. «атем процедура решени€ задач в ограничени€х, предназначенна€ дл€ работы с областью определени€ данного типа, пытаетс€ удовлетворить ограничение MewConstr. ѕри этом возможны два основных результата: а) обнаруживаетс€, что ограничени€ WewConstr удовлетворить невозможно, что соответствует недостижению цели и вызывает перебор с возвратами; б) не обнаруживаетс€ така€ ситуации, что ограничени€ MewCor.str удовлетворить невозможно, и эти ограничени€ максимально упрощаютс€ процедурой решени€ задач в ограничени€х. Ќапример, два ограниче≠ни€, X < 3 и X_< 2, упрощаютс€ таким образом, что вместо них вводитс€ одно огра≠ничение Ч X < 2. —тепень упрощени€ зависит от текущего состо€ни€ информации о переменных, а также от возможностей конкретной процедуры решени€ задач в огра≠ничени€х. ќстальные цели в списке выполн€ютс€ с множеством текущих ограниче≠ний, обновленным таким образом.


√лава 14. Ћогическое программирование в ограничени€х



—истемы CLP различаютс€ по типам областей определени€ и типам ограничений, которые они способны обрабатывать. —емейства методов CLP упоминаютс€ под име≠нами в форме CLP(A'), где X обозначает область определени€. Ќапример, з методах CLP(R) област€ми определени€ переменных €вл€ютс€ действительные числа, а в ка≠честве ограничений примен€ютс€ операции проверки на равенство и неравенство, а также операции сравнени€ действительных чисел.   системам CLP(X), используемым в других област€х определени€, относ€тс€ следующие: CLP(Z) Ч целые числа, CLP(Q) Ч рациональные числа, CLP(B) Ч логические области определени€ и CLP(FD) Ч задаваемые пользователем конечные области определени€. ƒоступные об≠ласти определени€ и типы ограничений в фактических реализаци€х в значительной степени завис€т от существующих методов решени€ конкретных типов ограничений. Ќапример, в системах CLP(R) обычно доступны линейные равенства и неравенства, поскольку существуют эффективные методы обработки ограничений этих типов. — другой стороны, нелинейные ограничени€ имеют очень узкую область применени€.

¬ последней части этой главы подробно рассматриваютс€ системы CLP(R), CLP(Q) и CLP{FD), в которых используютс€ синтаксические соглашени€ дл€ CLP в версии SICStus Prolog (см. раздел "ƒополнительные источники информации" в конце главы).





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-10-01; ћы поможем в написании ваших работ!; просмотров: 425 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

Ќеосмысленна€ жизнь не стоит того, чтобы жить. © —ократ
==> читать все изречени€...

1296 - | 1122 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.008 с.