- Программирование в ограничениях
-
Парадигмы программирования - Агентно-ориентированная
- Компонентно-ориентированная
- Конкатенативная
- Декларативная (контрастирует с Императивной)
- Событийно-ориентированная
- Комбинаторная
- Императивная (контрастирует с Декларативной)
- Предметно-ориентированная
- Метапрограммирование
- Автоматизация процесса программирования
- Обобщённое программирование
- Рефлексивно-ориентированная
- Итерационная
- Параллельная
- Структурная
Программирование в ограничениях тесно связано с теорией удовлетворения ограничений, которая предлагает удобный аппарат и простую формальную схему для представления и решения комбинаторных задач искусственного интеллекта.
Программирование в ограничениях началась с логического программирования с ограничениями (ЛПО), которое является вкладыванием ограничений в логическое программирование. Появление этого варианта логического программирования связано с именами Jaffar и Lassez, которые расширили в 1987 году определенный класс ограничений, которые были введены в Prolog II. Первыми реализациями логического программирование в ограничениях были Пролог III, CLP (R) и CHIP. Некоторые интерпретаторы логического программирования в ограничениях существуют и сегодня, например GNU Prolog.
Помимо логического программирования, ограничения могут быть смешаны с функциональным программированием, переписыванием термов и императивным языком. Языки программирования с встроенной поддержкой ограничений включают Oz (функциональное программирование) и Kaleidoscope (императивное программирование). Главным образом, ограничения осуществляются в императивных языках через инструментальные средства для решения задач с ограничениями, которые являются отдельными библиотеками для существующих императивных языков.
Содержание
Логическое программирование в ограничениях
Временные ограничения параллельного программирования (КТС) и недетерминированные временные ограничения параллельного программирования (NTCC) являются вариантами программирования в ограничениях, которые могут иметь дело со временем.
Некоторые популярные языки программирования с ограничениями
CHIP был первым языком ЛПО, использующим распространение ограничений. Другими примерами систем ЛПО могут служить библиотеки поддержки ограничений ILOG и COSYTEC, а также языки логического программирования в ограничениях Prolog III, Prolog IV, CLP(R), ECLiPSe, CIAO, CLP(FD). Используя эти системы, многие сложные прикладные задачи были успешно решены с помощью технологий программирования в ограничениях. В числе примеров упомянем проверку электронных схем, календарное планирование, распределение ресурсов, составление расписаний, управляющие системы, графические интерфейсы, а также множество комбинаторных задач.
Литература
- Apt K. R. Principles of Constraint Programming. New York: Cambridge University Press, 2003. 407 p.
- Rossi F., van Beek P., Walsh T. (eds.) Handbook Of Constraint Programming. Elsevier, 2006. 978 p.
- Ушаков Д. М., Телерман В. В. Системы программирования в ограничениях (обзор) // Системная информатика: Сб. науч. тр. Новосибирск: Наука, 2000. Вып.7: Проблемы теории и методологии создания параллельных и распределенных систем. С. 275—310.
- Щербина О. А. Удовлетворение ограничений и программирование в ограничениях, препринт, 2012.
См. также
- Комбинаторная оптимизация
- Эвристический алгоритм
- Оптимизация (математика), (математическое программирование)
Ссылки
Для улучшения этой статьи желательно?: - Проставив сноски, внести более точные указания на источники.
- Викифицировать статью.
- Дополнить статью (статья слишком короткая либо содержит лишь словарное определение).
- Викифицировать список литературы, используя шаблон {{книга}}, и проставить ISBN.
Категории:- Парадигмы программирования
- Декларативное программирование
Wikimedia Foundation. 2010.
Полезное
Смотреть что такое "Программирование в ограничениях" в других словарях:
ПРОГРАММИРОВАНИЕ ЛИНЕЙНОЕ — англ. programming, linear; нем. lineare Programmierung. Отыскание экстремумов линейных функций при ограничениях, задаваемых линейными соотношениями. Antinazi. Энциклопедия социологии, 2009 … Энциклопедия социологии
Программирование математическое — Математическое программирование математическая дисциплина, изучающая теорию и методы решения задач о нахождении экстремумов функций на множествах конечномерного векторного пространства, определяемых линейными и нелинейными ограничениями… … Википедия
ПРОГРАММИРОВАНИЕ МАТЕМАТИЧЕСКОЕ — комплекс математич. моделей и методов решения задач отыскания экстремума (максимума или минимума) функций многих переменных при ограничениях в виде неравенств. Имеется в виду, что переменные характеризуют какие либо аспекты механизма… … Российская социологическая энциклопедия
ПРОГРАММИРОВАНИЕ, МАТЕМАТИЧЕСКОЕ — раздел прикладной математики, применяющийся в качестве метода в экономических исследованиях. Разрабатывает теорию и методы решения условных экстремальных задач, является основной частью формального аппарата анализа разнообразных задач управления … Большой экономический словарь
программирование — 1) составление программы 1, определенной последовательности действий, напр. п. экономического развития; 2) мат. одна из глав вариационного исчисления; имеет несколько разделов, важнейшим из которых является линейное программирование отыскание… … Словарь иностранных слов русского языка
ПРОГРАММИРОВАНИЕ ЛИНЕЙНОЕ — англ. programming, linear; нем. lineare Programmierung. Отыскание экстремумов линейных функций при ограничениях, задаваемых линейными соотношениями … Толковый словарь по социологии
Математическое программирование — математическая дисциплина, посвященная теории и методам решения задач о нахождении экстремумов функций на множествах, определяемых линейными и нелинейными ограничениями (равенствами и неравенствами). М. п. раздел науки об… … Большая советская энциклопедия
Последовательное квадратичное программирование — (англ. Sequential quadratic programming (SQP)) один из наиболее распространённых и эффективных оптимизационных алгоритмов общего назначения[1], основной идеей которого является последовательное решение задач квадратичного… … Википедия
Математическое программирование — Математическое программирование математическая дисциплина, изучающая теорию и методы решения задач о нахождении экстремумов функций на множествах конечномерного векторного пространства, определяемых линейными и нелинейными ограничениями… … Википедия
Математическое программирование — [mathematical programming] (см. также Оптимальное программирование) раздел математики, который «… изучает методы решения задач на нахождение экстремума функций (показателя качества решения) при ограничениях в форме уравнений и… … Экономико-математический словарь