Вопросы по теме 'prolog-setof'

Сетоф: Есть ли способ пораньше остановиться?
Я хочу найти минимальное количество ошибок для множества расписаний. Я составляю расписание, беру его ошибки, сохраняю все ошибки в списке и беру первый элемент (MinError). MinError> = 0, поэтому мне интересно, могу ли я остановить этот процесс,...
41 просмотров
schedule 10.10.2021

Пролог (Sicstus) - не член и набор вопросов
Учитывая следующие факты: route(TubeLine, ListOfStations). route(green, [a,b,c,d,e,f]). route(blue, [g,b,c,h,i,j]). ... Мне нужно найти все пары трубных линий, у которых нет общих станций, и получить следующее: | ?-...
91 просмотров
schedule 19.02.2022

Использование setof/3 с рекурсивным вызовом в GOAL неправильно, почему?
У меня проблемы с использованием setof/3 , отсутствуют некоторые результаты. Контекст: Я загружаю xml-файл, используя SWI-Prolog load_xml(), чтобы получить элемент рекурсивного списка (см. testelement в примере). Затем я хочу найти...
159 просмотров
schedule 16.06.2022

Соберите все минимальные решения из предиката
Учитывая следующие факты в базе данных: foo(a, 3). foo(b, 2). foo(c, 4). foo(d, 3). foo(e, 2). foo(f, 6). foo(g, 3). foo(h, 2). Я хочу собрать все первые аргументы, которые имеют наименьший второй аргумент, плюс значение второго аргумента....
1316 просмотров

Как проверить, существует ли какое-либо статистическое предложение в Прологе, не возвращаясь по всем различным путям?
Допустим, у меня есть следующее: parent(alice, charlie). parent(bob, charlie). parent(bob, diane). parent(alice, diane). parent(bob, eve). parent(alice, eve). % people are siblings of each other if they share a parent % and aren't the same...
426 просмотров
schedule 16.03.2023

Как я могу получить факты из моей базы знаний в список?
Скажем, у меня есть эти факты: person(fred). person(jim). person(mary). is_person(person(_)). Я хотел бы получить список, например: [person(fred), person(jim), person(mary)] но мой запрос с findall/3 не дает ожидаемого результата:...
56 просмотров
schedule 26.03.2023