А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов




Скачать 370.18 Kb.
НазваниеА. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов
страница1/4
Дата публикации24.02.2013
Размер370.18 Kb.
ТипДокументы
skachate.ru > Математика > Документы
  1   2   3   4


ПРОГРАММИРОВАНИЕ В ОГРАНИЧЕНИЯХ И НЕДООПРЕДЕЛЕННЫЕ МОДЕЛИ

А.С.Нариньяни, В.В. Телерман, Д.М. Ушаков, И.Е. Швецов

(Российский НИИ Искусственного Интеллекта)

Введение

В современном программировании можно выделить несколько основных парадигм: императивное или алгоритмическое программирование (C, Pascal), логическое программирование (Prolog), функциональное программирование (LISP, РЕФАЛ) и др. Важное место в этом ряду занимает программирование в ограничениях (constraint programming), которое за последние несколько лет развивается особенно активно и становится все более популярным.

Программирование в ограничениях является по своей сути максимально декларативным и основано на описании модели задачи, а не алгоритма ее решения [1, 2]. Модель специфицируется в виде неупорядоченной совокупности отношений, которые соответствуют связям, существующим между параметрами задачи. Эти отношения, называемые общим термином "ограничения" могут иметь вид уравнений, неравенств, логических выражений и т. п.

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

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

В самом общем виде постановка задачи в парадигме программирования в ограничениях формулируется следующим образом. Пусть на переменные x1, x2 ..., xn , областями значений которых являются множества X1 , X2 , ..., Xn , заданы ограничения Ci (x1 , x2 , ..., xn), i =1, k. Требуется найти наборы значений 1 , a2 , ..., an> (ai  Xi), которые бы удовлетворяли всем ограничениям одновременно.

Такая постановка задачи называется проблемой удовлетворения ограничений, а для ее решения используются различные алгоритмы и методы. В частности проблема удовлетворения ограничений может формулироваться как система уравнений с числовыми параметрами, а для ее решения могут использоваться стандартные численные методы. Однако при решении многих реальных задач эти методы оказываются неприменимыми, особенно если модель включает и нечисловые параметры, а начальные данные могут задаваться приблизительно в виде множеств и интервалов, содержащих допустимые значения.

Реальное программирование в ограничениях особенно полезно там, где кончаются возможности обычной математики. Оно используется при решении задач планирования, проектирования, прогнозирования, в инженерных и экономических расчетах, при создании графических интерфейсов, в системах понимания естественного языка и др. Среди наиболее известных зарубежных систем, реализующих парадигму программирования в ограничениях, можно отметить Prolog III [3], CLP(R) [4], CLP(BNR) [5], clp(FD) [6], CHIP [7], ILOG Solver [8], Newton [9] и др.

Одним из наиболее развитых и практически значимых подходов, относящихся к программированию в ограничениях, являются недоопределенные модели.

Метод недоопределенных моделей (Н-моделей) был предложен в начале 80-x годов [10–12] для представления и обработки неполностью определенных знаний. Рассматриваемый вначале как оригинальный метод из области искусственного интеллекта, он трансформировался постепенно в прикладную технологию программирования в ограничениях. Технология Н-моделей выделяется среди других подходов вычислительной мощностью, универсальностью и эффективностью. Фактически она является единственной технологией, которая позволяет решать задачу удовлетворения ограничений в самой общей постановке.

К настоящему времени на базе Н-моделей создана многоуровневая технология программирования, позволяющая решать качественно новые классы задач в таких областях, как экономика, инженерные расчеты, календарное планирование, вычислительная математика, САПР, ГИС и др. Среди систем, реализованных на основе аппарата Н-моделей, можно отметить такие, как UniCalc [13], НеМо-ТеК [14], LogiCalc [15] и Time-Ex [16].

Наш Институт планирует в журнале “Информационные Технологии” серию публикаций о наиболее интересных разработках, базирующихся на технологии Н-моделей и задача данной статьи дать читателю общую информацию о специфике и возможностях как самого этого аппарата, так и в целом о программировании в ограничениях.

Статья организована следующим образом. В первой главе рассматриваются основные понятия, лежащие в основе аппарата Н-моделей и пример, поясняющий идеи алгоритма вычислений. Во второй главе вводится понятие недоопределенного расширения и рассматриваются примеры таких расширений. В третьей главе описываются недоопределенные модели и типы данных, используемые в Н-моделях, а также приводится алгоритм вы­числе­ний. В четвертой ­­­- показаны некоторые возможные применения аппарата Н-моделей.

^ 1. Основные понятия

1.1 Недоопределенная переменная

Напомним, что существуют по крайней мере два основных, качественно различных, понятия переменной.

^ Классическая переменная – базовое понятие математики, представляет некоторую неизвестную величину, связананную условиями задачи с другими известными и неизвестными величинами. При достаточной полноте условий задачи сопоставленная данной переменной величина, т.е. ее значение, может быть получена точно. Таким образом, значение классической переменной отражает некоторую конкретную, заданную условиями задачи сущность или денотат, представляемую в задаче именем данной переменной. В рамках одной задачи денотат-значение переменной не может меняться - он может быть либо известен либо неизвестен.

^ Алгоритмическая переменная, связанная с использованием алгоритмов и появлением языков программирования, является, по сути дела, ячейкой абстрактной памяти, в которую могут помещаться различные значения, меняющиеся по ходу исполнения соответствующей процедуры.

И в математике и традиционном программировании с каждой переменной можно связать только одно значение из области ее определения (или универсума).

Далее в статье понятие переменной будет использоваться в расширенном классическом смысле: в Н-моделях переменной сопоставляется недоопределенное значение (или Н-значение), являющееся оценкой реального значения-денотата на основе доступной нам в данный момент информаци. Н-значение является промежуточным между полной определенностью (точное значение) и полной неопределенностью (весь универсум) и может уточняться по мере получения более точных данных. Например, не зная точного возраста Петрова, мы можем оценить его как “между 35 и 40 годми”.

Таким образом, Н-значение есть непустое подмножество универсума, содержащее внутри себя значение-денотат, которое остается пока неизвестным (вернее, известным с точностью до данного недоопределенного значения) ввиду недостатка информации. В процессе уточнения, т.е. при поступлении более точных данных, Н-значение становится все более определенным и в пределе может стать точным, т.е. равным денотату данной недоопределенной переменной (Н-переменной).

Это означает, что для Н-переменной, вне зависимости от ее типа, следует различать два значения:

  • реальное неизвестное нам значение-денотат, которое она представляет, и

  • ее текущее Н-значение, являющееся доступной оценкой этого реального значения.

Недоопределенность может характеризовать не только значения параметров существующих объектов или процессов, но и виртуальных объектов, находящихся в процессе создания. В этом случае Н-значение выступает в качестве ограничения на вычисляемое значение. Примеры:

– здесь нужен провод диаметром от 0.25 до 0.32 мм;

– в этом редукторе придется использовать коническую или цилиндрическую передачу.

В процессе вычислений Н-значение может становиться только более точным, гарантируя тем самым монотонность вывода. Для завершаемости вычислений существенно, чтобы число различных Н-значений одного объекта было конечным.

^ 1.2 Иллюстративный пример

Рассмотрим теперь пример, поясняющий алгоритм вывода, используемый в недоопределенных моделях.

Пусть требуется найти решение системы из двух линейных уравнений с двумя неизвестными:

y = x - 1; (F1)

2 * y = 3 * (2 - x); (F2)

Каждое уравнение можно рассматривать как неявную функцию (F1 и F2) от двух переменных (x и y). Графики этих функций изображены на Рис. 1.

Предположим, что известна начальная оценка значения переменной x: где–то между –1 и 4 (такую оценку можно рассматривать как интервал [–1, 4]).

Идея недоопределенных вычислений состоит в том, что по текущей оценке поочередно вычисляются проекции функций F1 и F2 на x и y. Например, проекция F1 на y для x равного [–1, 4] равняется интервалу [–2, 3]. Результат такой проекции изображен на Рис. 2.


Рис. 1 Рис. 2

Теперь, если по y вычислять проекцию F2 на x, то получим новое значение x равное интервалу [ 0, 10/3] (см. Рис. 3).

Продолжая этот процесс мы постепенно приближаемся к искомому решению. На Рис. 4 показаны две спирали, которые показывают, каким образом мы приближаемся к решению снизу и сверху, соответственно.


Рис. 3 Рис. 4
Стоит отметить, что параметры реальных задач всегда имеют начальные оценки их значений, поскольку даже в тех случаях, когда решающий задачу затрудняется в определении исходных ограничений на область значений того или иного числового параметра, оценка его значения от минус до плюс бесконечности будет представлена в машине конкретными числами.

Таким образом, в нашем примере в общем случае одновременно будут закручиваться четыре спирали - две от x и две от y.

^ 2. Недоопределенные расширения

При работе с недоопределенными значениями необходимо выбрать для каждого значения некоторый способ его представления. При этом необходимо представлять полностью неопределенное Н-значение (т.е. его универсум) и противоречивую оценку (т.е. пустое множество). Это приводит нас к следующему определению.

^ 2.1 Исходные определения

Для того, чтобы для данной традиционной формальной системы построить ее аналог, способный оперировать с Н-значениями, необходимо сформировать область значений для Н-переменных, представляющих переменные исходной системы.

^ Недоопределенным расширением (Н-расширением) произвольного универсального множества X является любая конечная система его подмножеств, замкнутая относительно операции пересечения и содержащая весь универсум и пустое множество. В случае бесконечного множества X в качестве универсума рассматривается некоторое его конечное подмножество X0 X. Например, если X – множество вещественных чисел, то X0 может быть множеством чисел, представимых в памяти компьютера таких, что любые два числа отличаются не менее, чем на некоторый > 0.

Ниже мы будем использовать обозначения Н-функция и Н-отношение вместо недоопределенная функция и недоопределенное отношение.

Следует заметить, что для одного и того же универсума существуют различные возможные Н-расширения. Далее будем обозначать через *X произвольное Н-расширение универсума X.

Независимо от вида выбранного Н-расширения, приведенное выше определение гарантирует однозначное представление любого множества X0 из универсума X в его Н-расширении *X. Такое представление, обозначаемое *[X0], рассматривается как наименьший (в смысле включения) элемент Н-расширения, содержащий данное подмножество.

Рассмотрим неко­торые виды Н-рас­ши­рений, которые используются в программных технологиях, базирующихся на аппарате Н-моделей. Более подробное описание приведенных ниже Н-расширений можно найти в статье [17] и в докладе [18].

1) Наиболее простым является Н-расширение, в котором каждый его эле­мент представлен точным значением (*X = X Single):

X Single = { {x } | x X }  {}  {X }.

Данное Н-расширение добавляет в обычный универсум два специальных значения: не определено (X ) и противоречие ().

2) ­Перечислимое Н-расширение представляется множеством всех подмножеств (которое обозначим 2 X):

X Enum = 2 X.

Данное Н-расширение можно применять лишь к конечным универсумам.

В случае, когда ^ X является решеткой (множеством с определенными на нем ассоциативными и коммутативными операциями, подчи­ня­ю­щи­­мися законам поглощения и идемпотентности), мож­но задать такие виды Н-расширений X, как интервалы и муль­ти­ин­те­рвалы [17 – 22].

3) Интервальное Н-расширение:

X Interval = { [x Lo, x Up] | x Lo, x UpX }.

Здесь x Lo обозначает нижнюю, а x Up — верхнюю границу интервала. Пустое множество () представляется любым интервалом [xLo, xUp], где
x Lo > x Up.

4) Мультиинтервальное Н-расширение:

X MultiInterval = { x | x =  xk, xk X Interval, k = 1, 2,  }.

Пример. Пусть универсум переменной v - это множество целочисленных значений, а ее текущее значение равно множеству {3‚ -2, 7, 8, 9, 4}. Рассмотрим его недоопределенное представление в различных Н-расширениях множества целых чисел:

Н-расширение

Н-значение V

Single

(полная неопределенность)

Enum

{ 3‚ -2, 7, 8, 9, 4 }

Interval

[-2, 9]

MultiInterval

{ [-2, -2], [3, 4] , [7, 9] }

5) Рассмотрим теперь универсум, за­дан­ный в ви­де декартова произведения множеств: X = X1    Xn. Как и к лю­бому множеству, к нему применимы Н-расширения X Single и Enum. Бо­лее того, если каждый из Xi является решеткой, то X тоже является ре­ше­т­кой. В этом случае к X также применимы Н-рас­ши­рения XInterval и X MultiInterval. Но к универсуму X применимо еще одно Н-рас­ширение — структурное:

*X = *X1    *Xn.

Соотношения между Н-расширениями *X1    *Xn. и *(X1    Xn.) обсуждаются в работe [17].
  1   2   3   4

Похожие:

А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconРеферат по курсу «Военная история» по теме: «Русский флотоводец Ф....
Замечательный русский флотоводец Федор Федорович Ушаков [1744 г., дер. Алексеевка, ныне Темниковского района Мордовии, – 2(14) октября...
А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconУшаков К. З., Каледина Н. О., Кирин Б. Ф., Сребный М. А. Безопасность...
Ушаков К. З., Каледина Н. О., Кирин Б. Ф., Сребный М. А. Безопасность жизнедеятельности: Учеб для вузов/ Под ред. К. З. Ушакова....
А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconРеферат святой адмирал ушаков (1745-1817). "Победитель всех неприятелей россии на морях "
Святой адмирал ушаков (1745—1817). "Победитель всех неприятелей россии на морях "
А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconШвецов А. Зачем нужен университет?
Поэтому и управляется он из множества фокусов управления, степень влияния которых на университет, по сравнению с остальными, меняется...
А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconСказка о нечисти
ИИ, мы снова обращаемся к жанру «эзотерической байки», но уже в контексте компьютерной вирусологии. Вашему вниманию предлагается...
А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconРегиональные группы кандидатов региональная группа №1 Территория №1 ушаков дмитрий владимирович
Региональным отделением Политической партии справедливая россия в городе Санкт-Петербурге
А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconА. С. Нариньяни Движение есть энтелехия существующего в потенции, поскольку оно таково
Поскольку все отношения из r базируются на универсальном понятии Недоопределенности, то те или иные из этих отношений могут относиться...
А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconРеферат по курсу «Военная история» по теме: «Русские войны второй половины XVIII в.»
Наиболее талантливыми из них были П. С. Салтыков, П. А. Румянцев, А. В. Суворов, Г. А. Спиридов, Ф. Ф. Ушаков
А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconН. Н. Ушаков Технология производства ЭВМ
Настоящая книга представляет собой третье издание учебника для студентов вузов, обучающихся по специальности «Вычисли­тельные машины,...
А. С. Нариньяни, В. В. Телерман, Д. М. Ушаков, И. Е. Швецов iconН. Н. Ушаков Технология производства ЭВМ
Настоящая книга представляет собой третье издание учебника для студентов вузов, обучающихся по специальности «Вычислительные машины,...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
контакты
skachate.ru
Главная страница