Описание тега constraint-handling-rules
Constraint Handling Rules is a declarative constraint logic programming language.
1
ответ
Представление логических дизъюнкций в правилах обработки ограничений
Я пишу решатель ограничений в Прологе, который реализует простую логическую формулу: "(alive(A) and animal(A)) iff (awake(A) or asleep(A))", Я нашел один способ реализовать его в правилах обработки ограничений, но он гораздо более многословен, чем и…
08 май '17 в 00:04
1
ответ
Как избежать бесконечной рекурсии с помощью правил обработки ограничений
Я написал простой набор ограничений в SWI-Prolog, используя правила обработки ограничений. Он использует два относительно простых правила вывода: %If A means B, then B means A. means(A,B) ==> means(B,A). %If A means B and A means C, then B means …
09 сен '16 в 20:19
1
ответ
Определение ограничений CHR во время выполнения
Я пытаюсь написать программу, которая генерирует новые ограничения во время выполнения в SWI-Prolog. is_true([A,means,B]) предназначен для создания другого ограничения во время выполнения: :- use_module(library(chr)). :- chr_constraint is_true/1. is…
12 авг '17 в 23:12
1
ответ
Использование constraint_handlers в C++
У меня есть код в C#, который использует функцию _set_invalid_parameter_handler. Это специфично для Windows, и я пытаюсь переписать этот код на стандартном C++, чтобы он работал на Linux. Я не уверен, как перевести этот функционал. Мне посоветовали …
11 июл '17 в 13:05
1
ответ
Как вы можете посчитать, количество возвратов в Prolog SWI или CHR Prolog SWI
Я создаю несколько решателей головоломок в Prolog SWI с CHR (Правила обработки ограничений) Все отлично работает, но мне нравится проверять, какой решатель лучший. Поэтому мне нравится выяснять, какой решатель использует наименьшее количество возвра…
30 май '14 в 15:25
0
ответов
Общий метод для переноса кода в Eclipse CLP в CHR
Мой вопрос немного общий, но ответ на мой конкретный вопрос может быть очень полезным. Общий вопрос: "Существует ли какой-либо общий метод для передачи кода в прологе Eclipse CLP в код правил обработки ограничений (CHR)?". Я знаю, что код CHR все ра…
29 апр '19 в 00:47
0
ответов
Ограничение направления в CHR (правила обработки ограничений)
Я знаю об ограничении каналов в контексте программирования ограничений. Кроме того, я могу увидеть некоторые примеры реализации ограничения канализации в EclipseCLP здесь. В качестве примера в EclipseCLP, предположим, что есть две переменные A а так…
09 май '19 в 06:02
0
ответов
Формат заголовков ограничений в CHR
Я новичок в CHR, и мне было интересно, имеет ли смысл иметь функции в качестве аргументов для заголовков ограничений в правиле. Я знаю, что в теле правила это возможно. Например C(X-Y) легально здесь? C(X), C(X-Y), C(Y) => C(X * Y)
12 июн '19 в 17:01
1
ответ
Вывод решения CHR в прологе
Я бегу программу CHR учебник в SWI-Пролог. :- use_module(library(chr)). :- chr_constraint fib/2. f0 @ fib(0,M) ==> M=1. f1 @ fib(1,M) ==> M=1. fn @ fib(N,M) ==> N>=2 | N1 is N-1, fib(N1,M1), N2 is N-2, fib(N2,M2), M is M1+M2. Все идет хо…
04 авг '19 в 22:24
1
ответ
Поведение CHR в прологе SWI для простого и () правила
Я пробовал простую программу в SWI-Prolog с использованием библиотеки CHR. Ответы на вопросы для меня очевидны, но отслеживание сбило меня с толку. Я начал только с одного правила. and(X,Y,Z) <=> Y = 0 | Z = 0. Трассировка имеет смысл ?- and(A…
08 авг '19 в 17:37
1
ответ
Снижение ограничений в Prolog
Одна из недавних задач, связанных с появлением кода, ставит перед мной задачу решить для наименьшего количества входного материала, который я могу использовать, чтобы применить заданный набор реакций и получить 1 единицу выходного материала. Наприм…
16 дек '19 в 00:30
1
ответ
Создание двунаправленного правила в CHR и CLP / FD
В качестве примера. Предположим, что все, что красное, имеет значение 5. Я пишу следующее: :- use_module(library(chr)). :- use_module(library(clpfd)). :- chr_type color ---> red ; blue. :- chr_constraint hasColor(?any, ?color). :- chr_constraint …
29 ноя '19 в 02:54
2
ответа
Правила обработки ограничений в SWI Prolog: существует ли "хранилище ограничений" только на время обработки целей верхнего уровня?
Я внимательно изучаю правила обработки ограничений (CHR), чтобы понять, могу ли я их понять (в том смысле, что здесь вычисляется и как классическая логика и даже линейная логика вписываются в это) и, возможно, применить их. В книге Тома Фрювирта от …
08 дек '19 в 14:08
3
ответа
Решение цепных реакций в прологе
Одна из недавних задач, связанных с появлением кода, ставит перед мной задачу решить для наименьшего количества входного материала, который я могу использовать для применения заданного набора реакций и получения 1 единицы выходного материала. Наприм…
15 дек '19 в 08:17
0
ответов
Есть ли способ изменить порядок правил CHR во время выполнения в прологе?
Я пишу программу на Прологе для художественных целей, сильно полагаясь на большой набор правил CHR. Я хотел бы иметь возможность запускать много раз, но каждый раз выводить разные результаты. Самый простой способ сделать это - каждый раз недетермини…
25 дек '19 в 00:27
1
ответ
Создание ограничений декомпозиции для ограничений
Рассмотрим следующую схему: :- use_module(library(chr)). :- chr_constraint a/1, b/1. % really there will be many of these, possibly 100s % some rules about how to replace as with bs, e.g., a(1),a(1) <=> b(2). % a way to decompose, e.g., b(2) &…
16 дек '19 в 00:41
1
ответ
tau-prolog не будет запускать код пролога, в котором я использую библиотеку CHR, хотя он работает на SWI-Prolog
Я пытаюсь использовать тау-пролог для запуска кода CHR, и он дает эту ошибку throw(error(existence_error(procedure, '/'(color, 1)), '/'(top_level, 0)))хотя он отлично работает на SWI-Prolog это код пролога :-use_module(library(chr)). :- chr_constrai…
30 май '20 в 05:31
0
ответов
CHR в SWI Prolog: Защита правил, содержащая ограничение "только что удаленное", не возвращается, удаляет стек
Небольшой тестовый код без особого смысла: :- use_module(library(chr)). :- chr_constraint foo/1, bar/1, anyone/2. foo(X) \ bar(Y) <=> anyone(X,Y). anyone(_,Y) <=> bar(Y) | writef("bar(%w) exists\n",[Y]). anyone(_,Y) <=> writef("bar…
20 дек '19 в 04:03
1
ответ
Правила обработки ограничений в SWI Prolog: в каком порядке накладываются ограничения на хранилище?
Я изучаю правила обработки ограничений (CHR) в swi-prolog. Я начал с учебного пособия из « Правила обработки ограничений» Тома Шрайверса - Учебное пособие для (Prolog) программистов . Часть путаницы заключается в том, что в каком порядке помещать ог…
26 ноя '21 в 21:04
2
ответа
Правила обработки ограничений в SWI Prolog: ограничение neq не работает
Я изучаю правила обработки ограничений (CHR) в swi-prolog. Я начал с учебника Тома Шрайверса « Правила обработки ограничений. Учебник для (Пролог)-программистов » . На стр. 286 автор привел пример реализации ограничения неравенства. :- use_module(li…
28 ноя '21 в 17:21