Научная статья на тему 'Обзор приложений логико-эвристических методов решения комбинаторных задач высокой сложности'

Обзор приложений логико-эвристических методов решения комбинаторных задач высокой сложности Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
226
35
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАТЕМАТИЧЕСКИЕ МОДЕЛИ / ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ КОМБИНАТОРНЫХ ЗАДАЧ / МАТЕМАТИЧЕСКИЕ МОДЕЛИ / ЧИСЛЕННЫЕ МЕТОДЫ РЕШЕНИЯ КОМБИНАТОРНЫХ ЗАДАЧ / MATHEMATICAL MODELS / NUMERICAL METHODS FOR SOLVING COMBINATORIAL PROBLEMS / MATHEMATICAL MODELS

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мартьянов Владимир Иванович, Архипов Владислав Викторович, Каташевцев Михаил Дмитриевич, Пахомов Дмитрий Вячеславович

Обобщен опыт применения логико-эвристического подхода для решения ряда классов NP-полных задач (сетевое планирование, анализ генома), в плане как методики построения математических моделей, так и программной реализации. Сформулированы необходимые условия возможности эффективного решения классов NP-полных задач в рамках логико-эвристического подхода.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Мартьянов Владимир Иванович, Архипов Владислав Викторович, Каташевцев Михаил Дмитриевич, Пахомов Дмитрий Вячеславович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

LOGIC-HEURISTIC METHODS FOR SOLVING COMBINATORIAL PROBLEMS OF HIGH COMPLEXITY APPLICATIONS PREVIEW

Authors summarized the experience of the logical-heuristic approach for solving some classes of NP-complete problems, both in terms of techniques for constructing mathematical models and software implemention. Authors formulated the necessary conditions for the possibility of effective solutions of classes of NP-complete problems in logical-heuristic approach.

Текст научной работы на тему «Обзор приложений логико-эвристических методов решения комбинаторных задач высокой сложности»

Системный анализ. Моделирование. Транспорт. Энергетика. Строительство

УДК 519.6 Мартьянов Владимир Иванови ч,

д.ф.-м.н., профессор, кафедра автомобильных дорог, Национальный исследовательский университет - Иркутский государственный технический университет,

тел.: (8395)40-51-39, e-mail: ad@istu.edu Архипов Владислав Викторович, программист, Национальный исследовательский университет -Иркутский государственный технический университет, тел.: (8395)40-51-39, e-mail: ad@istu.edu Каташевцев Михаил Дмитриевич, программист, Национальный исследовательский университет -Иркутский государственный технический университет, тел.: (8395)40-51-39, e-mail: ad@istu.edu Пахомов Дмитрий Вячеславович, программист, Национальный исследовательский университет -Иркутский государственный технический университет, тел.: (8395)40-51-39, e-mail: ad@istu.edu

ОБЗОР ПРИЛОЖЕНИЙ ЛОГИКО-ЭВРИСТИЧЕСКИХ МЕТОДОВ РЕШЕНИЯ КОМБИНАТОРНЫХ ЗАДАЧ ВЫСОКОЙ СЛОЖНОСТИ

V.I. Martyanov, V. V. Arkhipov, M.D. Katashevzev, D. V. Pakhomov

LOGIC-HEURISTIC METHODS FOR SOLVING COMBINATORIAL PROBLEMS OF HIGH COMPLEXITY

APPLICATIONS PREVIEW

Аннотация. Обобщен опыт применения логико-эвристического подхода для решения ряда классов NP-полных задач (сетевое планирование, анализ генома), в плане как методики построения математических моделей, так и программной реализации. Сформулированы необходимые условия возможности эффективного решения классов NP-полных задач в рамках логико-эвристического подхода.

Ключевые слова: математические модели; численные методы решения комбинаторных задач.

Abstract. Authors summarized the experience of the logical-heuristic approach for solving some classes of NP-complete problems, both in terms of techniques for constructing mathematical models and software implemention. Authors formulated the necessary conditions for the possibility of effective solutions of classes of NP-complete problems in logical-heuristic approach.

Keywords: mathematical models; numerical methods for solving combinatorial problems.

Понятие комбинаторной задачи высокой сложности (КЗВС) не имеет строгого определения, но всегда имеют в виду практические задачи, при решении которых возникают проблемы с большим (и часто неприемлемым) количеством операций (а значит, и временем их решения - так называемое «проклятие размерности»). Примерами КЗВС являются задачи сетевого планирования [1] (календарное, ресурсное и стоимостное планирование производств, обслуживания систем и др.), задачи анализа геномов информационной биологии [5], многие классы задач искусственного интеллекта [6] (распознавание образов, дедуктивный вывод и др.). По алгоритмической природе (объему вычислений) эти задачи либо КР-полны, либо экспоненциальны, что, по известным теоретическим результатам [6], исключает возможность их эффективного решения каким-либо одним (универсальным) методом.

Это же определяет необходимость постоянно расширять спектр методов решения КЗВС, каждый востребованный из которых должен иметь свою «нишу» (область эффективной работы).

ИРКУТСКИМ государственный университет путей сообщения

С нашей точки зрения, данная проблематика -ключевая для современного этапа развития науки и общества в целом, т. к. применение информационных технологий для различных предметных областей постоянно упирается в необходимость эффективного решения такого рода задач. Осознание этого привело к тому, что проблемы данной области имеют международное признание и назначены миллионные долларовые премии за их решение (например, проблема Р =? № [6]).

В настоящее время, точнее с начала 90-х годов ХХ века, классические методы решения КЗВС, основанные на линейном, целочисленном, динамическом и других программированиях, классической теории расписаний и т. д., пополнились методами, в той или иной степени идущими от логики (метод удовлетворения ограничениям в логическом программировании [7], семантическое программирование [8], логико-эвристические методы [1] ), и этими методами решены многие практические задачи большой размерности.

Цели настоящей статьи - обобщить опыт успешного применения логико-эвристических методов для решения КЗВС в различных областях [9], определить методику построения математических моделей данного подхода (теоретико-множественная семантика), сформулировать математически точно необходимые условия, определяющие возможность эффективного применения данного подхода, а также основы программных решений при реализации алгоритмов (процедурная семантика).

В рамках данного подхода успешно решен ряд прикладных задач большой размерности, а именно:

- организация учебного процесса [2] (например, ИрГТУ: 1309 групп, 29439 студентов);

- преобразования нуклеотидных последовательностей РНК во вторичные структуры [3] (например, установлено для генома человека: Х-хромосома имеет 217 кандидатов в микроРНК, а У-хромосома - 24 кандидата в микроРНК, что подтверждает «истощенность» мужской хромосомы человека, отмечаемую многими генетиками).

Также для данного подхода имеются теоретические предпосылки для успешного решения задачи анализа плоских изображений [4].

Теоретико-множественная семантика логико-эвристических методов

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

Мы >, (1)

где А - основные множества, - операции (функции) на основных множествах, pi - предикаты (отношения) на основных множествах, в конечную (финальную) М^т, удовлетворяющую ограничениям , ,..., Кт .

Для формализации процесса решения комбинаторных проблем определим основу процесса (ОП) как тройку

Е = (МШ,А,Я), (2)

где М1п1- а.с. сигнатуры с (1), которая будет рассматриваться как начальные условия процесса решения, множество операторов преобразования а.с. А = ,... Зк }, множество ограничений Я = [ЯьЯ2,...,Ят}, определенных на а.с. данной сигнатуры с (принимающих значение «истина» или «ложь»)

Слово

Ж = w1 ...щ (3)

в алфавите А назовем решением комбинаторной проблемы, заданной ОП (2), если все ограничения Я выполнены на а.с.

= (4)

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

Если искать аналогии с классическими методами, такими как динамическое программирование, то решение Ж (3) следует называть допустимым управлением. Основное отличие методов решения комбинаторных проблем логико -эвристического подхода и традиционных методов (динамическое и другое программирование) состоит в том, что здесь во главу угла ставится удовлетворение ограничениям (поиск допустимого управления), а не вопрос оптимизации по тому или иному критерию.

Рассмотрим важнейшие технические приемы для повышения эффективности решения комбинаторных проблем в рамках логического подхода. Пространство поиска решения, очевидно, порождается вариантами выбора операторов преобразований [81,.8к} в каждой точке пространства. Точку пространства поиска решения назовем тупиковой, если проведенная последовательность преобразований не может быть дополнена до решения комбинаторной проблемы. Стратегия «смотри вперед» состоит в анализе текущей точки пространства поиска решения и уменьшении вари-

Системный анализ. Моделирование. Транспорт. Энергетика. Строительство

антов выбора операторов преобразований {Sl,...Sk}, т. е. убираем из этого множества операторы заведомо ведущие в тупиковые состояния. Стратегия стандартного (standart backtracing) и глубокого возврата (intelligent backtracing) состоит в откате назад при получении тупикового состояния.

Процедурная семантика логико-эвристических методов

При программной реализации решения конкретной прикладной задачи многоосновные алгебраические системы преобразуются в реляционные базы данных, где основные множества преобразуются в домены, а функции и отношения преобразуются в реляционные таблицы. Отметим, что проект реляционной базы данных для современных СУБД (SQL Server, Oracle и др.) в значительной мере определяет программные решения для всего программного комплекса, т. е. процедурную семантику метода.

Пусть рассматриваются многоосновные модели вида

M = (A1,..., As; ft,..., pk) (5)

где A - основные множества (домены для реляционной БД), p - отношения (таблицы реляционной БД) на основных множествах, где определены ограничения R,R,...,R.

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

• Прежде всего, при представлении в оперативной памяти необходимо обеспечить линейную вычислимость отношений от их арности (количества аргументных мест). В случае, когда оперативной памяти не хватает для представления всех кортежей отношений многоосновной модели M (5), необходимо использовать какие-либо процедуры сжатия информации, так чтобы с преобразованными данными можно было бы работать, не выходя из квадратичной оценки сложности от арности отношений. Если это по каким-то причинам оказывается недостижимым, то вероятность эффективного решения данного класса комбинаторных задач сомнительна (конечно, это касается только логико-эвристического подхода).

• Следующей задачей является обеспечение быстрой проверки ограничений R, R,..., R, где

идеальной является ситуация, когда сложность их проверки не зависит от m и является также линейной от числа основных множеств s. Достижение такой эффективности вычислений возможно далеко не всегда, но служит хорошим ориентиром для обеспечения этого свойства хотя бы для части отношений.

Разработка алгоритмов численного решения задач (включая сетевое планирование) на основе логико-эвристического подхода имеет две основных особенности:

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

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

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

Прежде всего, это относится к программной реализации следующих конструкций, определенных выше:

• основных множеств многоосновных алгебраических систем (доменов реляционной БД);

• отношений многоосновных алгебраических систем (таблиц реляционной БД);

• задания ограничений, которым должны удовлетворять многоосновные алгебраические системы, и методов проверки выполнимости этих ограничений;

• задание операторов преобразований многоосновных алгебраических систем и организации перебора последовательностей преобразований;

• стратегии оптимизации перебора последовательностей преобразований.

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

ИРКУТСКИМ государственный университет путей сообщения

задачи могут «управлять» процессом численного решения.

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

При работе с оперативной памятью используются команды языка программирования С++ («Си плюс плюс») calloc или new, выделяющие по указателю pointer область памяти - кучу (heap).

Фрагменты программ, иллюстрирующие реализацию представления данных, структур управления и алгоритмов логико-эвристических методов решения сетевого планирования, будут приведены на подмножестве С++ подобного алгоритмического языка.

Для обеспечения эффективной реализации работы с данными, конечно, приходится использовать и стандартные средства, такие как сортировка, двоичный поиск, хеширование и др.

Структура, задающая вершину дерева (по терминологии Д. Кнута [10] - ссылками «левый сын - правый брат»):

struct Tree {

int value; //значение, приписанное вершине (операция, число, имя и др.)

int down; //ссылка на первого потомка (-1: отсутствие ссылки);

int right; //ссылка на следующего брата (-1: отсутствие ссылки); };

Отсутствие ссылки на следующую вершину для компонент down и right дерева определяется значением - 1. Выделение k элементов структуры Tree по указателю tree задается оператором

tree = (struct Tree*)calloc(k, sizeof(struct Tree)). (6) Функция sizeof задает объем памяти необходимый под размещение одного экземпляра данных типа struct Tree в байтах. Таким образом, оператор (6) задает по указателю tree область в k * si-zeof(struct Tree) байт.

Доступ к i-му экземпляру структуры Tree осуществляется командой *( tree + i). Например, если необходимо переменной val (типа int) присвоить значение элемента value i-го экземпляра структуры Tree, определенной оператором (6), то это задается оператором

val = ( tree + i)-> value. (7)

Эквивалентные формы записи оператора (7) следующие:

val = * ( tree + i). value (8)

val = tree[ i]. value (9)

Оператор (9) наиболее наглядно показывает эквивалентность понятий указателей и массивов.

К основным алгоритмам обработки данных численного решения задач сетевого планирования на основе логико-эвристического подхода, представленных деревьями, относятся:

• обход дерева «в глубину - направо» (Д. Кнут указывает [10], что данный алгоритм соответствует системе передачи титулов у английской аристократии);

• проверка вхождения (или пересечения) одних деревьев в другие (с другими);

• перестройки деревьев (подстановки значений переменных, замены поддеревьев на другие, проведение сокращений, например из-за вычисления значений термов и по многим другим причинам, связанным в основном с реализацией основных технических приемов сокращения переборов, численного решения задач сетевого планирования на основе логико-эвристического подхода, таких как «просмотр вперед», «глубокий возврат», «быстрая проверка ограничений»;

• многие другие, включая (Д. Кнут [10]): прохождение в прямом, обратном и концевом порядке, прошивка дерева, обработка соотношений эквивалентности, включение в прошитое дерево и пр.

К достоинствам вышеописанной структуры деревьев можно отнести:

• в решателях подобную структуру используют не только для организации данных, но и как структуру управления;

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

• «сборка мусора» для данных, организованных по типу деревьев, осуществляется чуть сложнее, чем в списковом случае.

Приведем описание программной реализации конструкций для многоосновных алгебраических систем, заданных в форме

Mmi = <Al,A2,...,As-,pl,...,pk>,

где A, A •••, A - основные множества

и p,•..,p- отношения (предикаты), где также

определены ограничения R, R, •.., R.

1. Задание основных множеств A, A •••, A многоосновной алгебраической системы M (доме-

Системный анализ. Моделирование. Транспорт. Энергетика. Строительство

нов реляционной БД) в оперативной памяти осуществляется выделением, соответственно, областей (куч)

Set 1 = (struct Set i *) calloc (kb sizeof(struct Set i)); Set 2 = (struct Set 2 *) calloc (k2, sizeof(struct Set 2));

Set s = (struct Set s *) calloc (ks, sizeof(struct Set s));

где, соответственно, структуры Set 1, Set 2, ..., Set s задают необходимые свойства элементов основных множеств A, A .••, A, соответственно, k,k2 ...,k - размерности основных множеств

A1, A2 "•, As .

Доступ к i-му элементу основных множеств A , A . , A , соответственно, осуществляется

операторами (Set 1 + i), (Set 2 + i), ..., (Set s + i). Доступ к компоненте value i-го элемента основных множеств A , A . , A , соответственно, осуществляется операторами (Set 1 + i)-> value, (Set 2 + i)-> value, (Set s + i)-> value.

2. Задание отношений ,...,p^, многоосновных алгебраических систем (таблиц реляционной БД) в оперативной памяти осуществляется выделением, соответственно, областей (куч)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Relat 1 = (struct Relat 1 *) calloc (m1, sizeof(struct Relat 1)); Relat 2 = (struct Relat 2 *) calloc (m 2, sizeof(struct Relat 2));

Relat k = (struct Relat k *) calloc (m k, sizeof(struct Relat k));

где, соответственно, структуры Relat 1, Relat 2, ., Relat k служат для задания кортежей элементов основных множеств A , A . , A , составляющих отношения p ,. , p , соответственно, а числа m 1, m 2, .. , m k определяют количество кортежей отношений p ,. , p , определенных на основных

множествах A , A . , A , т. е. предполагаем, что отношения

Pl,.,pk x.x As. Доступ к i-му кортежу отношений p,...,pk , определенных на основных множествах Al,A2.. ,,As, осуществляется, соответственно, операторами (Relat 1 + i), (Relat 2 + i), ..., (Relat k + i). Доступ к j-му элементу i-го кортежа отношений p ,. , p , определенных на основных множествах A , A . , A , соответственно, осуществляется

операторами (Relat 1 + i)-> valuej, (Relat 2 + i)-> valuej, (Relat k + i)-> valuej.

Для обеспечения быстрого доступа к кортежам отношений p ,. , p , определенных на основных множествах A , A . , A , используется древовидная организация данных, формируемая по принципу расположения j-х элементов кортежей на j-м этаже древовидной структуры.

Пусть явное определение множества кортежей отношений p ,. , p , определенных на основных множествах A, A .•; A имеет вид: Pi ={(all,al2,...,aln)\all еА1,а12еА2,...,а1яеАя} p2={(a2l,a22,...,a2n)\a2leAl,a22 eA2,...,a2neAJ

2. Задание в оперативной памяти древовидных структур Tre1 , Tre2 , ..., Trek , задающих отношения p ,. , p , определенных на основных

множествах A , A . , A , осуществляется выделением, соответственно, областей (куч)

Tr 1 = (struct Tree *) calloc (n * m1, sizeof(struct Tree)); Tr 2 = (struct Tree *) calloc (n * m 2, sizeof(struct Tree));

Tr k = (struct Tree *) calloc (n * m k, sizeof(struct Tree)),

где структура struct Tree определена выше для примера 6.

Рассмотрим для произвольного i, где 1 <= i <= k, построение по индукции от числа кортежей m i в отношении pi древовидной структуры Trei. , задающей отношение pi, определенное на основных множествах A , A . , A .

Основание индукции. Пусть первый кортеж отношения pi имеет вид (a,a,.••,as) , где

a е A,a2 е A,.--as G A и элементы

a, a ,.■■, a имеют индексы, соответственно, t 1, t 2,

.., ts в представлении (Set 1 + t 1), (Set 2 + t 2), (Set s + t s). Тогда начальные присвоения для элементов кучи по адресу (указателю) Tr i будут: // формирование 0-го этажа (корень дерева) (Tr i + 0)->value =-1; (Tr i + 0)->down = 1; (Tr i + o)->right =-1 // формирование 1-го этажа (Tr i + 1)->value = t 1; (Tr i + 1)->down = 2; (Tr i + 1)->right =-1 // формирование 2-го этажа (Tr i + 2)->value = t 2; (Tr i + 2)->down = 3; (Tr i + 2)->right =-1

(Tr i + s)->value = t s; (Tr i + s)->down =-1; (Tr i + s)->right =-1

ИРКУТСКИМ государственный университет путей сообщения

причем 1-й свободный элемент Fr1_Tr i кучи по адресу (указателю) Tr i будет s + 1.

Индукционный шаг. Пусть очередной кортеж отношения pi, включаемый в древовидную структуру, имеет вид (b, b,... bs ) , где

b е A,b G A,..-b е Aи элементы b,b,--b имеют индексы, соответственно, ui, u2, ...., us в представлении

(Set i + u i), (Set 2 + u 2), ..., (Set s + u s).

Предположим далее, что первые l (l < s обязательно !) элементов b, b,. • • b совпадают с некоторой цепочкой w1, w2, ...., wi , идущей от начальной (нулевой) вершины древовидной структуры. Более точно, это означает следующее:

• вершина w1 - непосредственный потомок начальной (нулевой) вершины;

• вершина wo+1 - непосредственный потомок вершины wo;

• (Tr i + w 1)->value = u 1; (Tr i + w 2)->value = u 2;.... (Tr i + w l)->value = u l;

• если ww - самый правый непосредственный потомок вершины w l, то

(Tr j + ww)->right = Fr1_Tr j

(Tr i + Fr1_Tri)->right =-1; (Tr i + Fr1_Tri)-> value

= u l+1

(Tr i + Fr1_Tri+ s-l)-> right =-1; (Tr i + Fr1_Tri+ s-l)-> value = us,

причем 1 -й свободный элемент Fr1_Tr i кучи по адресу (указателю) Tr i будет обновлен присвоением Fr1_Tr i = Fr1_Tri+ s - l;.

Индукционный шаг построения древовидной структуры выполнен.

Задание ограничений R, R,..., R, которым должны удовлетворять многоосновные алгебраические системы, и методы проверки выполнимости этих ограничений

Основные отличия программных решений этого пункта от предыдущего заключены в том, что ограничения R, R,..., R не имеют явного задания как конкретные отношения, определенные на основных множествах A, A . ••, A. Если от процедурного представления ограничений R, R,..., R удается перейти к перечислению кортежей, которые задают хотя бы некоторые из ограничений R,R,...,Rm, то дальнейшая работа с ними практически не отличаются от задания

древовидными структурами отношений p1,...,pk ,

с последующей организацией их вычислимости.

Основных проблем обеспечения быстрой вычислимости ограничений R, R,..., R две:

• количество кортежей, которые задают некоторые из ограничений R,R,...,R, может

быть очень большим, что не позволяет все их одновременно держать в оперативной памяти.

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

Достаточно часто первая проблема может быть решена введением так называемых декубов, т. е. всеобщих значений (*) элементов из какого-либо основного множества A , A . , A для кортежей. Расплатой за ввод декубов является переход к более сложной древовидной структуре, где вершина (узел) задается в виде:

struct Tree_decube

{

int value; // значение, приписанное вершине (операция, число, имя и др.)

int down; // ссылка на первого потомка (-1: отсутствие ссылки);

int right; // ссылка на следующего брата (-1: отсутствие ссылки);

int decube; // ссылка на декуб (-1: отсутствие

ссылки);

};

Кроме того, сложность вычислений для древовидной структуры с декубами не линейная, а квадратичная.

Полученная древовидная структура называется деревом решения и позволяет проверять все ограничения одновременно, т. е. перебор при проверке ограничений исчезает.

Стратегии оптимизации перебора последовательностей преобразований состоят в возможно более быстром решении в каждой точке пространства поиска трех фундаментальных задач:

• просмотра вперед (checking forward) для уменьшения количества применяемых преобразований;

• определения точки возврата для тупика (intelligent backtracking, или глубокий возврат по принятой у ряда авторов в России терминологии);

• проверки выполнимости ограничений на многоосновной алгебраической системе, получен-

Системный анализ. Моделирование. Транспорт. Энергетика. Строительство

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

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

• Оптимизация, реализуемая просмотром вперед (checking forward) для уменьшения количества применяемых преобразований, достигается уменьшением ресурса при применении каждого преобразования (большинство задач сетевого планирования происходит при убывающем ресурсе). Для других задач используется стратегия «первой неудачи» (first fail) [7], которая, как правило, существенно уменьшает пространство перебора следующего шага решения.

• Оптимизация, реализуемая определением точки возврата для тупика (intelligent backtracking, или глубокий возврат по принятой у ряда авторов в России терминологии), для задач сетевого планирования с убывающим ресурсом достигается рассмотрением либо правой точки, либо левой точки, где произошло преобразование с объектами тупика. Если возврат осуществляется с правой точки, то это соответствует стандартному глубокому возврату, а если с левой точки, то глубокому возврату со стратегией «чем хуже, тем лучше», где решение может быть найдено быстрее, но данная стратегия не полна (может пропустить возможные решения). Отметим, что в логико-эвристичеком подходе глубокий возврат дополняется неполным восстановлением среды точки возврата, что экономит часть алгоритмического ресурса, затраченного между тупиком и точкой возврата.

• Оптимизация, реализуемая проверкой выполнимости ограничений, достигается для всех задач использованием деревьев решения.

Заключение

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

Считаем, что полученные результаты существенно расширяют возможности решения классов

КЗВС по сравнению с методом удовлетворения

ограничениям в логическом программировании

[7].

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Мартьянов В.И. Логико-эвристические методы сетевого планирования и распознавание ситуаций // Труды Междунар. конф. «Проблемы управления и моделирования в сложных системах». - Самара. - 2001. - С. 203-215.

2. Мартьянов В.И., Пахомов Д.В. Математические вопросы и программная реализация поддержки организации учебного процесса // Вестник Иркутского государственного технического университета. - 2007. - № 1 (29). -С.143-147.

3. Архипов В.В., Константинов Ю.М., Мартьянов

B.И. Логико-эвристические методы поиска вторичных структур РНК // Современные технологии. Системный анализ. Моделирование. ИрГУПС. - 2010. - №1 (25). - С. 161-167.

4. Каташевцев М.Д., Мартьянов В.И. Логико-эвристические методы анализа плоских изображений // Тезисы докладов студенческой конференции «Информационные технологии», ИМЭИ ИГУ. - Иркутск, 2010. - С. 61-64.

5. Колчанов Н.А. Молекулярная эволюция регуляции генетических систем / Н.А. Колчанов. -www.bionet.nsc.ru. - (Спецкурс «Информационная биология», 2007).

6. Лорьер Ж.-Л. Системы искусственного интеллекта. - М. : Мир, 1991. - 486 с.

7. Hentenrick van P. Constraint Satisfaction in Logic Programming. -Cambrige: The MIT Press, 1989.

- 356 p.

8. Гончаров С.С., Свириденко Д.И. E-программирование // Вычислительные системы: Логико-математические аспекты МОЗ : сб. научн. тр.; под ред. Косарева Ю.Г., Гончарова С.С. -Новосибирск : ИМ СО АН СССР, 1985. - В. 107. -

C. 3-29.

9. Мартьянов В.И., Архипов В.В., Каташевцев М.Д., Пахомов Д.В., Симонов А.С. Обзор приложений логико-эвристических методов решения комбинаторных задач // Материалы 3-й Российской школы-семинара «Синтаксис и семантика логических систем». - Иркутск, 2010.- С. 60-64.

10. Кнут Д. Искусство программирования для ЭВМ. Основные алгоритмы. - М. : Мир, 1976.

- 736 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.