Преподаватель, используя при необходимости метод наводящих вопросов, организует «мозговой штурм», в процессе которого выявляются проблемы, которые и становятся темами самостоятельных исследований студентов. Студенты на добровольных началах разбиваются на группы (2-4 человек) в зависимости от выбранной темы исследований. В течение трех недель студенты собирают информацию, используя в том числе сеть Internet. Например, при выполнении проекта «Влияние неорганических ионов в молоке на его качество» - это ГОСТы по молоку, методики анализа на конкретные ионы. Затем на практических занятиях осваивают необходимые методики, проводят анализ конкретных объектов. Результаты анализа студенты обрабатывают с использованием ИКТ, оформляют в виде компьютерной презентации. Защита проектов осуществляется на курсовой конференции, при этом в соответствии с критериями оценивания презентации конкретному студенту добавляется определенное число баллов к ИКИ. В рамках выполнения проекта студенты осваивают комплексонометрию, аргентометрию и другие титриметрические методы анализа.
Предлагаемые в данной работе схемы интеграции традиционного обучения и инновационных технологий были успешно апробированы в процессе обучения аналитической химии, биохимии в Красноярском государственном педагогическом университете. Результаты педагогического эксперимента позволяют сделать заключение, что внедрение в традиционную систему обучения химическим дисциплинам информационно-коммуникационных технологий, модульной технологии и модернизированного метода проектов создает условия для эффективного формирования у студентов системных знаний и обобщенных умений, для реализации их мобильности на всех этапах обучения.
На данном этапе ведется апробация предлагаемых в работе подходов при обучении химическим дисциплинам в Красноярском государственном аграрном университете.
Литература
1. Безрукова, Н.П. Теория и практика модернизации обучения аналитической химии в педагогическом вузе: моногр. / Н.П. Безрукова. - Красноярск: Изд-во КГПУ, 2004. - 196 с.
2. Общая структура и программа курса «Основы аналитической химии»: метод. разработка / А.Б. Венедиктов, Т.Д. Федотова, Л.Г. Лавренева [и др.]. - Новосибирск: Изд-во НГУ. - 1996. - 36 с.
3. Шагаева, Ф.Т. Модульные технологии в подготовке инженеров-химиков / Ф.Т. Шагаева //Актуальные проблемы модернизации химико-педагогического и химического образования: мат-лы 49-й Всерос. на-уч.-практ. конф. - СПб.: Изд-во РГПУ им. А.И. Герцена, 2002. - С. 217-223.
4. Безрукова, Н.П. Программа-тренажер «Составление уравнений окислительно-восстановительных реакций ионно-электронным методом»: свид-во об отраслевой регистрации №2721 / Н.П. Безрукова, Т.В. Попова. №50200100191. - 2003 г.
5. Безрукова, Н.П. Комплекс программ для изучения темы «Кислотно-основное титрование» дисциплины «Аналитическая химия»: свид-во об отраслевой регистрации №3128 / Н.П. Безрукова, Т.Ю. Ронжина, А.А. Безруков. №50200400052. - 2004 г.
6. Безрукова, Н.П. Программный комплекс «Гидролиз»: свид-во об отраслевой регистрации №5105 / Н.П. Безрукова, Т.К. Тимиргалиева, А.А. Безруков. №50200501264. - 2005 г.
7. Intel «Обучение для будущего» (при поддержке Microsoft): учеб. пособие. - 2-е изд., перераб. / под общ. ред. Е.Н. Ястребцовой, Я.С. Быховского. - М.: Русская редакция, 2003. - 368 с.
УДК 378.145 Н.П. Воробович, О.Н. Лопатеева
О МР-ПОЛНОТЕ ЗАДАЧ ФОРМИРОВАНИЯ РАСПИСАНИЯ В ВУЗЕ
В статье содержится описание двух задач формирования расписания занятий в вузе. Выполнены содержательные постановки задач формирования допустимого и оптимального расписания, построены и исследованы их математические модели. Задача формирования оптимального расписания сформулирована как задача оптимального разбиения исходного множества на ряд непересекающихся подмножеств.
Введение
Качество подготовки специалистов в вузах и особенно эффективность использования научнопедагогического потенциала зависят в определенной степени от уровня организации учебного процесса.
Одна из основных составляющих этого процесса - расписание занятий - регламентирует трудовой ритм, влияет на творческую отдачу преподавателей, поэтому его можно рассматривать как фактор оптимизации использования ограниченных трудовых ресурсов - преподавательского состава. Построение математической модели для формирования расписания - важнейший этап создания информационной системы по организации учебного процесса в вузе.
1. Содержательная постановка задачи
Задача формирования расписания занятий в Вузе формулируется следующим образом. Имеется набор дисциплин (высшая математика, физика и т.д.) и по каждой из них показано, какое количество лекций, практических занятий (семинаров) и лабораторных работ нужно провести еженедельно.
Лекции читаются одним преподавателем в одной аудитории студентам нескольких групп. Лабораторные работы выполняются под руководством одного или нескольких преподавателей для студентов одной группы, разбитой на несколько подгрупп. Занятия в подгруппах могут вестись в разное время, в разных аудиториях, под руководством разных преподавателей.
Практические занятия проводятся одним преподавателем, в одной аудитории для одной группы. Учебные аудитории, в которых преподаватели проводят занятия для студенческих групп и потоков, расположены в различных корпусах. Переходы преподавателей и студентов из одного корпус в другой в течение дня нежелательны. Нежелательно также наличие "окон” у преподавателей и у групп.
Необходимо составить такое расписание занятий, чтобы все дисциплины (все виды обучения) были включены в расписание и обеспечивали выполнение требуемых нагрузок для всех групп и преподавателей. Расписание нужно составить таким образом, чтобы все студенческие группы были загружены равномерно, с минимальным количеством "окон” у групп и у преподавателей и переходов из одного корпуса в другой.
2. Формализация задачи
Введем следующие обозначения:
^0*= -4,1,2,...
Р- множество преподавателей;
^ - множество индексов для идентификации преподавателей, р -1,2,- • -,Р ;
Г
р - разряд преподавателя р, согласно единой тарифной сетки;
в- множество групп;
§{ - множество индексов для идентификации групп, g = 1,2, • • •, С ;
5 - количество студентов в группе, д;
А - множество аудиторий;
е{ - множество индексов для идентификации аудиторий, а = 1,2, --,А;
$ - множество индексов для идентификации корпусов, к = 1,2," •,К ;
Т - множества рабочих часов;
0 - множество дней недели;
^ - множество индексов для идентификации дней недели, <1 = 1,2,- ■,£);
I.- множество лент;
- множество индексов для идентификации лент, I = 1,2,--,Ь ;
1 - множество учебных дисциплин;
4 - множество индексов для идентификации занятий (строк "Обзоров преподавания”),
^ - множество индексов для идентификации видов занятий, V = 1,2,--,У;
ЬУ2 - количество часов по каждому виду V занятий каждого предмета г "Обзора преподавания”; у = 1,2,-",Р; г = 1,2,-"Д.
Введем в рассмотрение две группы булевых переменных: хрс11 и х а (р=1,2,...,Р; д=1,2,...6;
с/=1,2,...,0; /=1,2,...,/.; к=1,2,...,К).
хрл ~
Х г,Л1 —
(1)
(2)
(р=1,2,...,Р;
1, если преподаватель р в день й
поводит занятия I- той парой,
0, в противном случае.
1, если группа g в день й находится
на занятия I- той парой ,
0, в противном случае.
Введем в рассмотрение пять групп функций: /к 4рЛ ^ /г ^ /и ^рЛ ^
£/=1,2,...6; (/=1,2,....0; /=1,2,...,1; к=1,2,...,К).
Функция /к 4^рЛ есть сложная зависимость, позволяющая по х л с использованием предваритель-
но сформированной базы данных определить номер корпуса, в котором преподаватель р в день б проводит занятие /-той парой.
Функция / 4 а есть сложная зависимость, позволяющая по х а с использованием предварительно сформированной базы данных, определить номер корпуса, в котором группа д в день б занимается /-той парой.
Функция /уг 4рЛ есть сложная зависимость, позволяющая по хрЛ с использованием предварительно сформированной базы данных, определить предмет и вид занятий (например: физика, лабораторные),
который преподаватель р в день б проводит на /-той паре (ленте).
Аргументами функции сррЛ являются значения функции ^ 4^рЛ . Функция сррЛ может принимать только два значения: 0 или 1.
„ > если /АрлУ/АрсЦ-1
ФрЛ ~<Р\рЛ Хрс!<-1^Г
(3)
[О, если /Арл^/АрсЦ-а Если функция <ррЛ принимает значение 0, то это означает, что преподаватель р в день б I-тую и 1+1-ю пару проводит в одном корпусе (отсутствие перехода преподавателя из корпуса в корпус).
Если функция <р а принимает значение 1, то это означает, что преподаватель р в день б I-тую и
1+1-ю пару проводит в разных корпусах (наличие перехода преподавателя из корпуса в корпус).
Аргументами функции (р а являются значения функции ^ . Функция (р&л может принимать
только два значения: 0 или 1.
1, если ./, {^, У./,
= <р\
(4)
Если функция <р а принимает значение 0, то это означает, что группа студентов д в день б /-той и
1+1-й парой занимается в одном корпусе (отсутствие перехода группы студентов из корпуса в корпус).
Если функция «ррЛ принимает значение 1, то это означает, что группа студентов д в день б /-той и
/+1-й парой занимается в разных корпусах (наличие перехода группы студентов из корпуса в корпус). Критерий минимума "окон” у преподавателей можно выразить функцией (5):
Р п ь
X.
■х.
1П1П .
рей pd.il—1)
р=1 а=\ 1=2
Критерий минимума "окон” у групп можно выразить функцией (6):
а о ь
1ТНП .
(5)
'xgdl xgd{l-^^)
(6)
XII
£=1 <1= 1 1 = 2
Критерий минимума потерь от переходов преподавателей из корпуса в корпус можно выразить функ цией (7):
Р о ь
2>,11 (РРсп 111111 • (7)
р=1 (/=1 1=2
Критерий минимума потерь от переходов студентов из корпуса в корпус можно выразить функцией (8):
о о ь
<Р*и =^> т1П ■ (8)
я=1 а=11=2
Ограничения (9) требуют, чтобы запланированные "Обзорами преподавания” часы всех дисциплин и всех видов занятий были бы включены в расписание занятий:
Р О Ь _ О £> I ^
^1,2....^2=1,2.....г. (9)
р=1 (/=1 ;=2 £=1 (/=1 1=2
3. Постановки задач формирования расписаний занятий в вузе
3.1. Задача 1 “Формирование допустимого расписания занятий в вузе”
Заданы множества рабочих часов Т, преподавателей Р, учебных дисциплин I, студенческих групп в, аудиторий А, а также для всех реР, дев, аеА подмножества допустимых часов Е(р)^Т, Е(1)сТ,
Е(д)сТ, Е(а)<^Ти требуемые нагрузки Щд,г)е , Щр,г)& .
Существует ли учебное расписание £Рх1хвхАхТ^>{0,Ц, удовлетворяющее следующим свойствам:
• Цр,1,д,а§=1 тогда и только тогда, когда 1еЕ(р)пЕ(г)пЕ(д)пЕ(а)]
• для каждого 1еТ\л 2е2существует не более одногореРтакого, что ^р,г,д,а,у=1;
• для каждого 1еТ\л реР существует не более одного такого, что Цр,1,д,а§=1;
• для каждого /е 7" и де в существует не более одного аеА такого, что Цр,1,д,а$=1;
• для каждого 1еТ\л аеА существует не более одного реРтакого, что Цр,1,д,а§=1;
• для каждого кортежа fp,z,g,aJePxZ существует ровно значений /, для которых
1{р,г,д,а,Ц=1?
3.2. Задача 2 “Формирование оптимального расписания занятий в вузе”
Найти такое оптимальное разбиение множества запланированных "Обзорами преподавания” работ (по дисциплинам и видам занятий) на рхс1х1+дхс1х1+ахс1х1 непересекающихся подмножеств, которое обеспечивало бы достижение минимума функции (5), минимума функции (6), минимума функции (7), минимума
функции (8) при ограничениях (9). При этом искомые булевы переменные Хр(Я и хл (р=1,2,...,Р;
д= 1,2,...в; с/=1,2,...,0; /=1,2,...,/.) определены соотношениями (1) - (2), а составляющие формул (7) - (8) функции определяются соотношениями (3) - (4) соответственно.
4. Понятия о сложности и МР-полноте комбинаторных задач
Найдется немного научных терминов, так быстро завоевавших широкую известность, как понятие "МР-полная задача”. За короткий промежуток времени оно стало символом тех трудностей, которые встречаются на пути создания достаточно общих и эффективных методов решения задач дискретной математики.
4.1. Основные сведения о труднорешаемых и МР-полных задачах
Первые результаты о труднорешаемости задач (А. Тьюринг) - результаты о неразрешимости ряда задач, для которых вообще не существует алгоритмов их решения.
На практике, однако, мы не можем довольствоваться констатацией того, что данная задача является разрешимой. Нам, как правило, нужны алгоритмы, предъявляющиеся при своем выполнении разумные требования к ресурсам используемых вычислительных устройств. Вместе с тем, далеко не все разрешимые задачи являются реально разрешимыми и существует феномен труднорешаемых разрешимых задач.
Только в начале 70-х удалось показать, что некоторые "естественные” разрешимые задачи трудно решаемы.
Оказалось, что к классу труднорешаемых задач относится большое число изучавшихся ранее задач из теории автоматов, теории формальных языков, математической логики и других разделов дискретной математики. Причем эти задачи не могут быть эффективно (за полиномиальное время) решены даже с по-
мощью недетерменированного вычислительного устройства, обладающего способностью параллельно выполнять неограниченное количество независимых вычислений.
Все известные в настоящее время задачи, труднорешаемость которых доказана, попадают в один из классов: они неразрешимы даже на недетерминированном вычислительном устройстве. Вместе с тем, большинство представляющихся трудно решаемыми практических задач дискретной математики лежит вне этих классов и может быть решено за полиномиальное время с помощью недетерминированной машины.
Это так называемые переборные задачи. Переборная задача характеризуется экспоненциальным множеством вариантов, среди которых нужно найти решение, и может быть разрешена алгоритмом полного перебора. Переборный алгоритм имеет экспоненциальную временную сложность и может хорошо работать на практике для небольших размеров задачи. Но с ростом размера задачи число вариантов быстро растет и задача становится практически неразрешимой рассмотренным методом перебора.
Поэтому в конечной области аналогом алгоритмической неразрешимости является необходимость перебора экспоненциального числа вариантов, а аналогом разрешимости - существование алгоритма решения задачи за полиномиальное время на детерминированном вычислительном устройстве. При этом NP-полные задачи являются эталоном сложности класса переборных задач. На центральный вопрос можно ли исключить перебор при решении дискретных задач - возможно ответить либо построив полиномиальный алгоритм решения одной из NP-полных задач, либо доказав невозможность построения эффективного алгоритма для этой задачи. До настоящего эта важная проблема дискретной математики остается открытой.
Определение 1. Полиномиальным алгоритмом (или алгоритмом полиномиальной временной сложности) называется алгоритм, у которого временная сложность равна O(f(n)), где f(n) - некоторая полиномиальная функция.
Определение 2. Класс Р - это класс задач распознавания свойств (т.е. задач, решениями которых могут быть либо "да”, либо "нет”), для которых существуют полиномиальные алгоритмы.
Определение 3. Задача распознавания свойств называется труднорешаемой, если для ее решения не существует полиномиального алгоритма.
Определение 4. Класс NP - это класс задач распознавания свойств, которые могут быть решены за полиномиальное время на недетерминированной машине при логарифмическом весовом критерии.
Большинство практически важных задач, для которых в настоящее время не известны полиномиальные алгоритмы, после переформулировки их в виде задач распознавания свойств попадают в этот класс.
Определение 5. Задача из NP называется NP-полной, если всякая другая задача из класса NP может быть сведена к ней за полиномиальное время.
Таким образом, если для некоторой NP-полной задачи существует полиномиальный алгоритм, то и любая задача из класса NP полиномиально разрешима, а если какая-то задача из NP трудноразрешаема, то и любая NP-полная задача является трудноразрешаемой.
Определение 6. Задача называется NP-трудной, если всякая задача из класса NP может быть сведена к ней за полиномиальное время. Таким образом, NP-полная задача - это NP-трудная задача, принадлежащая NP.
4.2. Задачи, для которых WP-полнота или WP-трудность установлены
В настоящее время число Л/Р-полных задач исчисляется сотнями. К данному классу принадлежат такие важные для практики задачи [2-3], как задача о коммивояжере, раскраски графа, хранения и поиска данных, составления расписания и др. Для любой А/Р-полной задачи имеет место следующая альтернатива: либо она может быть решена полиномиальным алгоритмом, и тогда все задачи из класса NP могут быть решены этим же алгоритмом, либо она не может быть решена полиномиальным алгоритмом, и тогда любая задача из класса NP не может быть решена с помощью полиномиального алгоритма.
Первой задачей, для которой удалось показать, что она является А/Р-полной, явилась задача "Выполнимость”. Это было сделано в 1971 г. С.А. Куком [2]. Чуть позже P.M. Карп исследовал ряд комбинаторных задач распознавания [1] и показал, что все они являются А/Р-полными. Аналогичные результаты получены Л.А. Левиным [3]. Среди рассмотренных P.M. Карпом задач [1], была задача “Разбиение" (задача 3), которая формулируется следующим образом. Заданы конечное множество R и размеры p(r) е N+ всех элементов reR. Существует ли такое подмножество R' eR, что j= p4t\R' J P.M. Карп доказал что “Задача “Разбиение” является NP-полной”.
Задача “Оптимальное разбиение" (задача 4) формулируется следующим образом.
Заданы конечное множество R и размеры N+ всех элементов reR.
Найти разбиение множества R на два подмножества Я* и Я*, такое, что для любого разбиения множества R на два подмножества Я, и Я2:
2 2
X М2 * X * ЯI
г=1 г=1
А.В. Спесивцев в работе [4] доказал, что “Задача “Оптимальное разбиение”является ЫР-трудной”.
В [5] приведен список, который может служить источником информации о том, какие задачи нельзя решить за полиномиальное время при условии, что Р^А/Р. Этот список содержит более 300 задач, для которых в настоящее время их Л/Р-полнота или А/Р-трудность уже установлены.
Кроме упомянутых выше задач "Разбиение” и “Оптимальное разбиение” в этом списке содержится МР-полная задача “Учебноерасписание" (задача 5). .
Стандартная формулировка задачи “Учебное расписание" следующая.
“Учебное расписание”
Условие. Заданы множества рабочих часов Т, преподавателей Р, учебных дисциплин О, а также для всех реР и с/еО подмножества допустимых часов А(р), А(с1)<^Ти требуемая нагрузка Щр,с1)е Л^0+.
Вопрос. Существует ли учебное расписание /;Ра'ОаТ->{0,1}, удовлетворяющее следующим свойствам: /(р,с(,9=1 тогда и только тогда, когда /еА(р)пА(с1)\ для каждого /е Т и реР существует не более одного с/еО такого, что ф,с1,$=1; для каждого и с/еО существует не более одного реР такого, что ф,с1,$=1; для каждой пары (р,с1)еРхО существует ровно Щр,с1) значений /, для которых /(р,с(,0=1?
5. Доказательство МР-полноты или МР-трудности задач формирования расписания в вузе
5.1. Общие сведения о методах доказательства А/Р-полноты
Для доказательства А/Р-полноты некоторой задачи АеА/Р достаточно показать, что какая-нибудь из известных А/Р-полных задач С может быть сведена к А.
Таким образом, процесс доказательства МР-полноты задачи А может состоять из следующих четырех
шагов:
1. Доказательства, что ДеА/Р.
2. Выбора подходящей известной А/Р-полной задачи С.
3. Построение функции / сводящей задачу С к задаче А.
4. Доказательства того, что функция / осуществляет полиномиальное сведение.
Методы, используемые при построении указанного сведения для доказательства результатов об МР-полноте конкретных задач, меняются почти в столь же широких пределах, как и сами МР-полные задачи, и поэтому здесь у нас нет возможности проиллюстрировать их все. Однако имеется три общих метода доказательства, которые часто встречаются и могут подсказать путь к доказательству МР-полноты новой задачи, которые получили названия сужения задачи, локальной замены и построения компоненты.
Доказательство методом сужения А/Р-полноты фиксированной задачи Ае А1Р заключается просто-напросто в установлении того, что задача А включает в качестве частного случая известную А/Р-полную задачу С. Суть состоит в том, чтобы указать дополнительные ограничения, которые требуется наложить на индивидуальные задачи из С, чтобы получившаяся в результате сужения задача была бы эквивалентна А. При этом не требуется, чтобы возникающая в результате сужения задача была бы точной копией известной МР-полной задачи, необходимо только, чтобы между задачами имелось "очевидное” взаимно-однозначное соответствие, сохраняющее ответы "да” или "нет”. Взаимно-однозначное соответствие, которое дает сведение С к А, обычно настолько очевидно, что его даже не требуется указывать явно.
Сводимости, возникающие при доказательстве методом локальной замены, достаточно нетривиальны, чтобы их всегда можно было с гарантией представить в стандартном виде, однако, они остаются относительно несложными. Этот метод состоит в том, что выбирается некоторое характерное свойство известной МР-полной задачи, с помощью него образуется семейство основных модулей, а соответствующие индивидуальные задачи заданной задачи получаются путем единообразной замены каждого основного модуля некоторой другой структурой.
Последний и наиболее сложный метод доказательства МР-полноты - это построение компонент. Основная идея таких доказательств заключается в том, чтобы с помощью составных частей рассматриваемой задачи сконструировать некоторые компоненты, соединяя которые можно реализовать индивидуальные
задачи известной МР-полной задачи. При этом можно выделить компоненты двух основных типов. Один из них можно рассматривать как компоненты, "делающие выбор” (например, выбирающие вершины, значения истинности переменных), а другие, как компоненты "проверяющие свойства” (например, проверяющие, что каждое ребро покрыто, или что каждая дизъюнкция выполнена). В рассматриваемой индивидуальной задаче эти компоненты связаны так, что выбранные значения передаются компонентам, проверяющим условия, и последние проверяют, удовлетворяют ли сделанные выборы значений необходимым условиям.
5.2. Доказательство МР-полноты и МР-трудности задач формирования расписания в вузе Теорема 1. Задача “Формирование допустимого расписания занятий в вузе” ЫР-полна.
Доказательство
Для доказательства МР-полноты задачи формирования допустимого расписаний в вузе применим метод сужения. Для того чтобы применить этот метод, нужно установить, что задача “Формирование допустимого расписания занятий в вузе” (задача 1) включает в качестве частных случаев известные МР-полные задачи.
Задача “Формирование допустимого расписания занятий в вузе” МР-полна, так как она включает в качестве частного случая известную МР-полную задачу “Учебное расписание" (задача 5).
Задача 5 может быть получена из задачи 1, если в задаче 1 предположить, что мощности множеств в и А равны 1 (одна группа и одна аудитория). Следовательно, задача 1 является МР-полной задачей. МР-полнота задачи 1 может быть доказана и другим способом.
Задача 1 МР-полна, так как она включает в качестве частного случая известную МР-полную задачу “Разбиений (задача 3). Для того чтобы решить задачу 1, нужно решить несколько задач 3, причем, в качестве множества 1 в задаче 3 нужно принимать множества І, Р, в и А соответственно. Каждая из задач 3, являющаяся подзадачей задачи 1, является МР-полной. Следовательно, задача 1 является МР-полной задачей.
Теорема доказана.
Теорема 2. Задача “Формирование оптимального расписания занятий в вузе”является NP-трудной.
Доказательство
Для доказательства МР-трудности задачи формирования оптимального расписания занятий в вузе применим метод сужения. Для того чтобы применить этот метод, нужно установить, что сформулированная в разделе 3.2 задача “Формирование оптимального расписания занятий в вузе ” (задача 2) включает в качестве частного случая известную МР-трудную задачу. Такой задачей является МР-трудная задача “Оптимальное разбиение" (задача 4).
Задача 4 - это частный случай задачи 2, в котором множество [1 нужно разбить не на два, а на рхсіхі+дхсіхі+ахсіхі подмножества.
Следовательно, задача 1 является А/Р-трудная задача.
Теорема доказана.
Заключение
Построена математическая модель для задачи формирования расписания занятий для крупного высшего учебного заведения. Задача формирования расписания сформулирована как задача оптимального разбиения исходного множества на ряд непересекающихся подмножеств. Эта задача является МР-трудной, решить ее полиномиальным алгоритмом невозможно. Необходимо разработать эвристический алгоритм.
Литература
1. Карп, Р.В. Сводимость комбинаторных задач: сб. / Р.В. Карп. - М.: Мир, 1975. - Вып. 12. - С. 16-38.
2. Кук, С.А. Сложность процедур доказательства теорем: сб. / С.А. Кук. - М.: Мир, 1975. - Вып. 12. - С. 5-15.
3. Левин, Л.А. Универсальные задачи перебора / Л.А. Левин // Проблемы передачи информации. - 1973. -Т. 9. - № 3. - С. 115-116.
4. Спесивцев, А.В. О построении приближенного алгоритма решения задачи распределения ресурсов /
A.В. Спесивцев// Экономика и мат. методы. 1989. - Т. 25. - Вып. 4. - С. 685-694.
5. Касьянов, В.Н. Графы в программировании: обработка, визуализация и применение / В.Н. Касьянов,
B.А. Евстигнеев. - СПб., 2003.