Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Prolog] GNU Prolog, помогите найти решение 
:(
    Опции темы
war
Дата 19.6.2007, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 19.6.2007

Репутация: нет
Всего: нет



Надо реализовать дейсвия на gnu prolog, как это сделать на вижул прологе понятно, а как перевести на гну нет. Может что-нить подскажите.

Код

DOMAINS
Name= coffee; coffeegrinder;ground(Name);water;coffeemachine;dresser; shop;home;
 man;range; have(Name); nohave(Name);near(Name); far(Name);in(Name,Name); noin(Name,Name); 
 on(Name,Name); noon(Name,Name)
State=state(Name, Name, Name, Name);state2(Name,Name)
Action=put; take; buy; go

PREDICATES
act(State,Action,State)
st(State)
canweld(State)

CLAUSES

act(state(on(man,home), nohave(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range)),
go,state(on(man,shop),nohave(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range))).

act(state(on(man,shop),nohave(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range)),
buy,state(on(man,home),have(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range))).

act(state(on(man,home),have(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range)),
go,state(near(dresser),have(coffee), in(coffeegrinder,dresser),  noon(coffeemachine,range))).

act(state(near(dresser),_,in(coffeegrinder,dresser),_), take,state(near(dresser),_,have(coffeegrinder),_)).

act(state(_,have(ground(coffee)),_,_),go,state(near(range),have(ground(coffee)),_,_)).

act(state2(noin(water,coffeemachine), noin(ground(coffee), coffeemachine)),put,
state2(in(water,coffeemachine), in(ground(coffee), coffeemachine))).

st(state(_,_,_,on(coffeemachine,range))):-st(state(near(range),_,_,_)),st(state2(in(water,coffeemachine), 
in(ground(coffee), coffeemachine))).
st(state(_,have(ground(coffee)),_,_)):-st(state(_,_,have(coffeegrinder),_)).

canweld(state(_,_,_,on(coffeemachine,range))).
canweld(State1):-act(State1,_,State2),canweld(State2).
GOAL
/*canweld(state(on(man,home), nohave(coffee), in(coffeegrinder,dresser), noon(coffeemachine,range))).*/
/*canweld(state(on(man,home), nohave(coffee), noin(coffeegrinder,dresser), noon(coffeemachine,range))).*/
canweld(state(_, nohave(coffee), noin(coffeegrinder,dresser), noon(coffeemachine,range))).


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.