Арены, где доминирует core.logic [soft]

Сообщество Вики

Меня не волнуют очки репутации, мне просто нужны хорошие ответы. Не стесняйтесь отметить этот вопрос как вики сообщества.

Контекст

Я работал с The Reasoned Schemer и обнаружил следующие наблюдения:

  • Логическое программирование очень интересно.
  • Логическое программирование иногда противоречит здравому смыслу
  • Логическое программирование часто «неэффективно» (или, по крайней мере, код, который я пишу).

    Кажется, что при переходе от

  • Сборка -> C++, я «отказываюсь» от контроля над написанием собственного машинного кода
  • C++ -> Clojure, я отказываюсь от управления памятью
  • Clojure -> core.logic/prolog/minikanren, я частично теряю контроль над выполнением вычислений

Вопрос:

Помимо (1) решения логических головоломок и (2) вывода типов, в каких областях доминирует логическое программирование?

Спасибо!


person Community    schedule 02.06.2012    source источник
comment
Похоже, это связано с другими вопросами, которые ранее задавались здесь: применения пролога в реальном мире и использование пролога в реальном мире. (Пожалуйста, обратите внимание на то, как вопросы оказались закрытыми).   -  person Dmitri Chubarov    schedule 02.06.2012


Ответы (2)


Программирование логики ограничений может быть очень полезно для решения различных задач планирования, распределения ресурсов и других нетривиальных ограничений. комбинаторные задачи оптимизации. Все, что у вас есть, является декларативным: ограничения (например, только один самолет может находиться на взлетно-посадочной полосе одновременно) и, возможно, что-то, что вы хотите минимизировать / максимизировать (пропускная способность / ожидание).

В Прологе есть различные хорошо известные варианты этого, включая CLP(FD). , который работает в конечной целочисленной области, и CLP(R), который работает в реальной области. По крайней мере, CLP(FD), кажется, находится в ближайшей дорожной карте core.logic.

Я полагаю, что такие основанные на Прологе решения активно используются в управлении воздушным движением и других логистические задачи, хотя трудно получить точную информацию о том, какие именно технологии используют такие жизненно важные компании.

person Joonas Pulakka    schedule 02.06.2012

Исследования в области искусственного интеллекта и, в частности, когнитивной робототехники и других приложений представления знаний на основе логики - это области, в которых Пролог часто используется из-за его тесной связи с теорией логики. Это соотношение очень полезно, потому что оно в основном воплощает теорию в жизнь. Теоремы можно доказать на бумаге, а затем почти тривиально реализовать в прологе и выполнить, а исполняемые программы обладают проверенными свойствами. Это позволяет создавать программы, которые «правильны по построению», что противоположно тому, чтобы сначала писать программы, а затем пытаться доказать их свойства (как это делается в формальных методах, используя, например, проверку модели).

Семантическая паутина — еще одно место, где логическое программирование играет растущую роль.

person Christian Fritz    schedule 02.06.2012
comment
Я считаю, что как в ИИ, так и в робототехнике вероятностные методы (которые могут обрабатывать шум) доминируют в подходах, основанных на логике (которые не могут обрабатывать шум). - person ; 02.06.2012
comment
@user1311390 user1311390 Разные ветки ИИ для разных целей; безусловно, существуют вещи, для которых вероятностные методы не подходят. - person Charles Duffy; 02.06.2012
comment
конечно, продолжаются исследования вероятностной логики: см., например, MCMC - person CapelliC; 02.06.2012
comment
@ user1311390 — в когнитивной робототехнике логическое программирование часто используется, поскольку оно часто используется в качестве испытательного стенда для теорий познания, основанных на формальных рассуждениях. Некоторые системы для реактивной робототехники (основанные на архитектуре подчинения Брукса) основаны на формальной логике. Наконец, компьютерная лингвистика прочно укоренилась в формальных системах, а средства доказательства теорем (и грамматики) хорошо подходят для логического программирования. - person Gert; 02.06.2012