Вопросы по теме 'logic-programming'

Как реализовать nth(X,List,Item) GNU Prolog?
Я пытаюсь использовать API, который в основном совместим с GNU Prolog. К сожалению, предиката GNU Prolog nth(X,List,Item) здесь нет. Как бы вы реализовали nth, используя предикаты ISO? Описание: nth(X,List,Item) оценивается как true, если X-й...
5123 просмотров
schedule 28.05.2022

Пролог: циклы, управляемые отказом
Я использовал следующий цикл, управляемый ошибкой, чтобы перечислить все без использования точки с запятой. happiness(fred,5). happiness(john,3). happiness(grace,2). someGoal(X) :- happiness(X,Y), write(Y), tab(4), fail. В режиме...
1618 просмотров
schedule 28.04.2023

Пролог: показать список, содержащийся в списке
В настоящее время у меня есть следующие факты, определенные в программе Prolog: hobbies([jarrod, [gaming, running, boxing]]). hobbies([james, [programming, gaming, drawing]]). Какой запрос может отобразить список увлечений Джаррода? (т.е....
108 просмотров
schedule 30.05.2022

Расширение core.logic для пользовательских типов
Я экспериментирую с core.logic и хочу, чтобы мой собственный тип данных участвовал в логические выражения: (deftype Expression [node vars] ....) В основном это представляет собой узел в дереве математических выражений, содержащий дерево...
185 просмотров

Считаются ли проекции в двух направлениях реляционными в core.logic?
Я понимаю, что project в core.logic не является реляционным. Однако кажется, что я могу получить реляционное поведение, проецируя в обоих направлениях внутри conda , например: (defn lifto-with-inverse "Lifts a unary function and its...
134 просмотров

Программирование логики ограничений с наборами на Прологе
clpfd — это библиотека программирования ограничений для целых чисел в SWI Prolog. Есть ли аналогичная библиотека для наборов? Если нет, знаете ли вы какие-либо статьи, полезные для реализации такой библиотеки? Это вообще выполнимо? На самом деле...
238 просмотров

Вселенная Хербранда и Модель Наименьшего Хербранда
Я прочитал вопрос, заданный во вселенной Herbrand, Herbrand Базовая модель и модель Хербранда бинарного дерева (пролог) и данные ответы, но у меня немного другой вопрос, больше похожий на подтверждение, и, надеюсь, мое замешательство прояснится....
2495 просмотров
schedule 09.04.2023

Почему создание отношений в pyDatalog, кажется, дает мне неправильный ответ?
Я новичок в концепциях Datalog и изучаю его с помощью pyDatalog. Я экспериментирую с преобразователем единиц измерения. Итак, учитывая факты о том, сколько дюймов в метре, например, он должен быть в состоянии сказать мне, сколько метров в дюйме....
296 просмотров
schedule 02.07.2023

Перечисление бинарных деревьев в Прологе
Я пытаюсь создать правила Prolog для перечисления «двоичных деревьев» в форме списка в Prolog. Я новичок в Prolog. Дерево с 0 узлами - это пустой список: [] Дерево с 1 узлом: [[],[]] Дерево с двумя узлами имеет 2 возможности:...
617 просмотров

Как работает эта контекстно-свободная грамматика, использующая списки различий в Прологе?
Я читаю этот учебник по контекстно-свободным грамматикам в Прологе, и в нижней части страницы упоминается реализация контекстно-свободной грамматики в Прологе с использованием списков различий со следующим блоком кода: s(X,Z):- np(X,Y), vp(Y,Z)....
668 просмотров

Как мне получить список из списка ассоциаций в Прологе, а затем либо добавить к нему, либо создать его, если он не существует?
Извиняюсь за запутанный заголовок, но суть того, что я пытаюсь сделать, заключается в том, что у меня есть хеш-таблица/список ассоциаций с кучей ключей, каждый из которых соответствует списку. Моя проблема заключается в том, что я в основном хочу...
645 просмотров
schedule 07.06.2023

Почему компилятор Münster считает, что соответствие шаблону в ++ недетерминировано?
Недавно я установил компилятор Münster Curry, чтобы заменить гораздо более медленный PAKCS, который я использовал. Первое, что я хотел проверить, это то, могу ли я использовать некоторые функции сопоставления шаблонов из PAKCS, потому что я знаю, что...
96 просмотров

Смелое/Осторожное рассуждение в клинго
В руководстве Clingo есть два режима, называемых осторожным и храбрым, которые представлены следующим образом: смелый Вычислите смелые последствия (объединение всех наборов ответов) логической программы. осторожно Вычислить...
356 просмотров

Как определить несколько штрафов, чтобы свести к минимуму в целом в Clingo?
Я пытаюсь использовать clingo для создания распределения турнирных игровых комнат: player(1..20). room(1..4). played(1..20, 0). rank(1..20, 1). played(1..20, 1..20, 0). 0 { used_room(R) } 1 :- room(R). 3 { game(P, R) } 4 :- used_room(R),...
73 просмотров

Эффективное сокращение пространства поиска в clingo
Я изо всех сил пытаюсь масштабировать проблему ограничения (она не работает для больших значений и / или если я пытаюсь оптимизировать, а не просто искать какое-либо решение). Я предпринял некоторые шаги, чтобы сократить пространство поиска,...
60 просмотров