Разделение области расчета. Эффективность работы программы зависит от равномерности загрузки вычислительных узлов. В программе вычислительная нагрузка практически пропорциональна площади области, поэтому для оценки нагрузки использовалась функция З(п) площади области от координаты п. Простой итерационный алгоритм позволяет вычислить область для ]-го узла (значение п^, зная значение п^, начиная с до ]=к, из условия: ЗЦ^ЗЦ-Х^пее^Ц)--8(п^х). Этот алгоритм дает не лучшее, в смысле квадратичного отклонения, решение, однако низкая вычислительная сложность является определяющим фактором для его использования в нашем случае. На рисунке 2 представлена схема области расчета для ,|-го процессора. Каждая расчетная область состоит из внутренней области (для вычисления ее значений не требуются значения из других областей), граничной области (для вычисления значений необходимы значения из соседних расчетных областей), теневой области (значениями ее являются значения соседней граничной области, то есть они не вычисляются на рассматриваемом узле). Для контроля над выполнением вычислений в расчетных областях был реализован специальный класс, в котором операции присваивания, сложения и сравнения выполнены с использованием двух внутренних статических переменных N„1^ ^ах. При присвоении объекту этого класса значения, меньшего N„1^ объект принимает значение N„1^ При присвоении значения, большего ^ах, объект принимает значение N„3» тогда в операции сравнения считается, что его значение больше любого числа. В результате процесс распараллеливания программы сводится к замене счетчиков циклов в вычислительной фазе по координате п на объекты этого класса без изменения самих циклов и к добавлению функций обмена значениями между узлами.
Процесс распараллеливания программы, описанный в статье, опирается на объектно-ориентированное представление алгоритма вычислений, которое, благодаря перегрузке операторов и функций, позволяет изменять способ представления данных без изменения исходного текста формул и алгоритмов. В этом случае ряд объектно-
¿4
I II III
Рис. 2. Схема расчетной области: I - внутренняя область, II - граничная область, III - теневая область
ориентированных модификаций представления данных позволил изменить загрузку кэш-памяти и управлять выделением расчетных зон для узлов многопроцессорной вычислительной системы. Переход к вычислениям в относительных координатах дал возможность уменьшить длину вычислительных формул, улучшая читаемость программы. В результате распараллеливания получена версия программы, которая может эффективно исполняться на большом количестве процессоров.
Следует отметить, что технические задачи при распараллеливании программы выполнялись вручную, не вдаваясь в математическую сущность численного метода, что позволяет говорить о возможности автоматизации некоторых этапов работ. В частности, важная и трудоемкая задача построения шаблона вычислений в каждой ячейке регулярной структуры и правил обхода зоны вычислений может быть решена без участия человека на основе анализа исходной программы, в то время как поиск зоны параллельного счета в программе проще осуществить человеку, написавшему программу, чем реализовать этот процесс автоматически. А задача автоматической декомпозиции и композиции данных успешно решается автомати-зированно [3]. Это означает, что для упрощения процесса распараллеливания программ следует автоматизировать рутинные этапы, оставляя программисту творческую часть.
Литература
1. Левин В.А., Луценко Н.А. Течение газа через пористую тепловыделяющую среду при учете температурной зависимости вязкости газа. // Инженерно-физический журнал. -2006. - Т. 79. - № 1. - С. 35-40.
2. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб: БХБ-Петербург, 2002. - 608 с.
3. БУМ-система [Электрон. ресурс]. ИПМ им. М.В. Келдыша РАН. - Режим доступа: http://www.keldysh.ru/dvm/ dvmhtm1107/г^/Мех.Мт1
ОПТИМИЗАЦИЯ РАСПИСАНИЙ ПОСЛЕДОВАТЕЛЬНО-ПАРАЛЛЕЛЬНЫХ ОБСЛУЖИВАЮЩИХ СИСТЕМ
Ю.А. Мезенцев, к.э.н. (Новосибирский государственный технический университет, [email protected])
Ключевые слова: обслуживающие системы, смешанная сетевая модель, алгоритмы поиска кратчайшего расписания, дерево решений.
Задачи календарного производственного планирования хорошо изучены и являются предметом исследования теории расписаний [1-3]. Однако до
сих пор на практике точные методы их решения, обеспечивающие разработку наилучших по быстродействию или по другим критериям календар-
ных планов, используются крайне редко. Одна из причин этого - чрезвычайная сложность логико-математического описания объектов управления. Другая серьезная проблема - отсутствие универсальных средств решения подобных задач в основном из-за их ОТ-полноты и значительных размерностей [4]. Особенно сложны задачи управления параллельно-последовательными обслуживающими системами. Тем не менее, общие подходы к их точному и приближенному решению существуют. Одному из таких подходов и посвящена данная статья.
Рассмотрим обслуживающую систему, обладающую следующими характеристиками. Множество Ь={1,2,...,п} приборов разбито на Р попарно непересекающихся непустых подмножеств Ь1,Ь2, ...,Ьр (групп, типов) приборов. Каждое подмножество Ьр состоит из пр идентичных (необязательно одинаковых) взаимозаменяемых приборов. На обслуживание поступает множество требований, обслуживаемых в течение планового периода в количестве т. Дисциплина обслуживания - без прерываний, то есть не позволяется прерывание обслуживания одного требования в пользу другого. Одним прибором одновременно может обслуживаться только одно требование. Технология обслуживания всех требований задается с помощью матрицы технологических маршрутов М=||м-м|| (маршруты произвольные) и соответствующего ей трехмерного объекта (трехвалентного тензора) длительностей обслуживания Т=^м|| (также произвольных); к-й технологический маршрут содержит ^ операций, ^е [141, где d=тах{^},
к= 1,т . Сечения по индексу к (к= 1,т) тензора Т являются в общем случае векторами норм времени td обслуживания требования к приборами из Ь. В частности, если все множества Ь1,Ь2, ...,Ьр содержат по одному элементу, то Т=^м|| - матрица,
равная по размерности М.
Необходимо определить такую очередность обслуживания требований приборами, при которой суммарное время обслуживания всех требований было бы минимальным. Возникают две взаимосвязанные задачи: 1) выбор очередности обслуживания каждого к-го (к= 1,т ) требования каждой группой приборов Ьр (р= 1,Р), определяемой маршрутом из М; 2) назначение (закрепление) каждого требования за конкретным прибором из выбранного Ьр.
Данную ситуацию можно графически интерпретировать с помощью смешанной сетевой модели специального вида (рис. 1). При выполнении операций, отображаемых вершинами сети на рисунке 1, должен осуществляться выбор единственного варианта из альтернатив, определяемых множествами приборов Ьр. Это отражено на ри-
сунке с помощью сцепленных вершин. Каждой подобной сцепке соответствуют альтернативные варианты выполнения операции.
Опишем модификацию вычислительной схемы метода ветвей и границ для решения представленной задачи.
Пусть А - множество операций, включая фиктивные; и - множество логических условий предшествования-следования операций; V - множество логических условий неодновременности выполнения операций; 0=(А,и^) - некоторый оператор над множествами операций и логических условий, которым должен удовлетворять процесс обслуживания. В частности, 0=(А,и^) можно интерпретировать как смешанный граф с множествами вершин А, дуг и и ребер V. 1с - множество индексов операций и логических условий, определяемых на 0=(А,и^).
Для прозрачности нумерации обозначим тройкой (к,/р^) операцию обслуживания требования к прибором /р в q-й по очереди раз. А для краткости будем полагать 1=(к1,/1^1), ]=(к2,/2^2) -номера операций из А.
Через и^ обозначим дугу из и, соединяющую операции 1 и j (1 предшествует ]). Через Vjj обозначим ребро из V между операциями 1 и j ^у=Ур).
Через Wjj и обозначим пару дуг, заменяющих ребро Vjj, где Wij = Wjj. Заметим, что для обозначения ориентации дуг достаточно булевых переменных: Wjj=1 и Wij = 0 . Обозначим также через W множество дуг, заменяющих все ребра из V, которое порождает бесконтурную сеть О=(А,и^0), где ^ = и и W, называемую временной моделью. Тогда формально задача состоит в нахождении такого W , которое порождает временную модель, определяющую расписание минимальной длины.
Алгоритм ветвей и границ поиска кратчайшего расписания
1. Все ребра из V ранжируются по убыванию конфликтности, которая определяется количеством конкурирующих относительно одного и того же прибора требований в каждый интервал времени. Очевидно, что, чем меньше требований соотносится с некоторым Ьр и (или) чем больше элементов содержится в Ьр, то есть чем больше пр, тем ниже конфликтность соответствующих ребер.
Отбрасываются все ребра дизъюнктивной сети G=(A,U,V). Получаемый при этом граф G0= =(A,U,0) является временной моделью.
Расписание, определяемое графом G0=(A,U, 0), не является допустимым относительно исходных условий, но с его помощью можно получить первоначальную оценку нижней границы решения исходной задачи.
2. В соответствии с присвоенным рангом из множества V выбирается ребро Vy и в случае, когда соответствующее множество Lp состоит из одного элемента (np=1), заменяется парой дуг Wy и
Wij, каждая из которых добавляется к текущей ослабленной задаче, в результате чего образуется пара новых подзадач.
3. Если же Vy опирается на прибор из множества Lp, которое содержит более одного элемента, то есть np>1 (сцепленные операции на рисунке 1), то из множества ребер Vy, ассоциируемых с приборами из Lp, формируются все возможные комбинации из двух ребер (рис. 2), каждое из которых заменяется дугой. Дуги при этом должны быть противоположной направленности. Каждая из дуг добавляется к текущей ослабленной (релаксиро-ванной) подзадаче, образуя новую подзадачу. Очевидно, что число порождаемых такой операцией альтернативных подзадач составляет вели-
^ лЧ ~1)ПР чину 2Cnp = 2--
4. Методом критического пути (МКП) определяются нижние оценки решений каждой из вновь образованных подзадач. При np=1 процедура МКП определяется правилами [1]:
t,PH = max {t™ + j , tno = min {tj° -j.
Для операций, выполняющихся на приборах из Lp (np>1), процедура МКП дополняется следующим правилом:
t™ = min {max {tfH + tj} ; {t,™ + tip}} , p=1P .
Подзадача, соответствующая наименьшей нижней оценке, проверяется на оптимальность. При оптимальном решении процесс завершается, иначе выполняется п. 5.
5. Подзадача с наименьшей нижней оценкой выбирается для дальнейшего ветвления, после чего осуществляется переход к п. 2.
Числовой пример
Пусть имеются приборы двух типов (один прибор 1-го типа и два 2-го), l=1,2, на которых обрабатываются два требования, k=1,2 . При этом
- = (np-1)np.
M=(1 2 1); T=(3 (3;2) 3) M=(1 2 1); T =(2 (4;2) 2).
Соответствующая смешанная сеть 0=(А,и,У) представлена на рисунке 2. Сдвоенными вершинами отображены операции, выполняемые парал-
лельными приборами второго типа. Поскольку между двумя операциями над различными требованиями условия неодновременности обслуживания одним прибором отображаются с помощью одного ребра и одно требование может обслуживаться только одним из параллельных приборов, бинарное отношение порядка обслуживания двух требований приборами одной группы (одного типа) задается парой дуг противоположной направленности.
Все ребра из V ранжируются по убыванию конфликтности, которая определяется количеством конкурирующих относительно одного и того же прибора требований в каждый интервал времени. В результате имеем:
V/V /V ^ /V /V }
т 111,211, т 112,212 , т 111,212, т 211,112 , т 121,221, т 122,222 } .
Отбрасываются все ребра смешанной сети G=(A,U,V). Получаемый при этом релаксирован-ный граф (РГ 1) Go=(A,U,0) является временной моделью. Его критическое время составляет 8 часов. Поэтому нижняя оценка длины расписания Ь0=8.
На первом шаге в соответствии с принципом максимального приоритета выбираем переменную ^^111,211. При ^^11152п=1 образуем РГ 1.1, при
W111,211=0 (^^^111,211 = 1) - РГ 1.2. Аналогично порождаются прочие РГ в соответствии с вычислительной схемой метода ветвей и границ.
Х.ДУ
Рис. 4
В дереве решений (рис. 3) допустимым временным моделям соответствуют концевые вершины. Рядом с каждой вершиной помещена временная оценка Ь соответствующего РГ. Символ 0 означает отсутствие решения (соответствующая временная модель содержит цикл).
В результате получены два оптимальных решения (РГ 5.1, РГ 5.4), Ь*=10. В расписании РГ 5.4 (рис. 4) первый прибор второго типа не используется, что дает косвенный эффект (за счет экономии ресурсов). Поэтому в качестве оптимального решения принимается вектор:
W, =1^ ^ ^ ^ ^ ^ }
г И1,211 ' шда » * 111,212 211Д12 121,321 ' * 122,222 I
На рисунке 4 операции, принадлежащие критическим путям, соединены жирными стрелками.
Приближенный алгоритм поиска кратчайшего расписания
Приведенная модификация алгоритма ветвей и границ ограничена в применении, поскольку, как и любой другой комбинаторный алгоритм, не имеет полиномиальной от размерности решаемой задачи сходимости. Поэтому при решении практических задач теории расписаний значительных размерностей, относящихся к классу ОТ-полных, необходимо использовать приближенные модификации точных алгоритмов либо специальные приближенные методы поиска оптимумов.
Рассмотрим такую модификацию представленного выше точного алгоритма синтеза оптимальных расписаний для быстрого приближенного решения поставленной задачи.
1. Множество ребер V смешанной сети О предварительно разбивается на упорядоченный
ряд непересекающихся подмножеств V4, q=1,0, то есть V=(V1, V2,..., V0).
Для этого определяются величина 0 (количество подмножеств), число и состав элементов каждого подмножества. Количество элементов т1
подмножеств V41, q=1,0, может быть как различным, так и одинаковым. В последнем случае целесообразно использовать, например, т.р
Гаг^М" 1=^1, и т0 =аг8тах(М-
0
0-1 - ^
q=l
, где
- целая часть отношения —.
Ь
Для решения вопроса о порядке и составе подмножеств будем использовать два способа: 1) включение ребер в очередное подмножество V41 в количестве т1 в порядке следования операций в М, при этом целесообразно соблюдать принцип равномерности потоков операций относительно заявок; 2) включение ребер в очередное подмножество V41 в количестве mq в соответствии с их рангами (п. 1 алгоритма ветвей и границ).
Образуются начальная временная модель Оо=(А,и,0) и, как отмечалось ранее, недопустимое в общем случае расписание, порождаемое графом Оо=(А,и,0), с оценкой нижней границы решения исходной задачи.
2. Из упорядоченного множества V=(V1,V2, ..., V0) выбирается очередное подмножество V11 (на первом шаге 1=1 и Vq=V1).
3. В соответствии с рангом из множества V1 выбирается очередное ребро V), заменяется парой дуг Wiq и W^j, каждая из которых добавляется к текущей ослабленной подзадаче, в результате чего образуется пара новых подзадач с номерами (14)) и (1°ц).
4. Процедурой МКП определяются нижние оценки решений каждой из подзадач. Производится проверка на исчерпание подмножества V1.
Если V1 не исчерпано, то подзадача, соответствующая наименьшей нижней оценке, выбирается для ветвления, вычеркиваются дуги с номерами, следующими по очередности за V) , и осуществляется возврат к п. 3, иначе выполняется следующий пункт.
5. Производится проверка на окончание процесса, которое наступает при 1=0. В противном случае (1<0) выбирается следующее подмножество из V (индексу 1 присваивается значение 1+1) и происходит возврат к п. 2.
При 1=0 подзадача, соответствующая наименьшей нижней текущей оценке, является временной моделью О' = (А,и^ ,0), где и^ =
1
= , порождающей наилучшее для данного
Я=1
алгоритма расписание.
Для иллюстрации работы алгоритма вернемся к условиям числового примера: V={^и,211^112,212,
,212 '^211,112 '^121,221 '^122,222 } , разобьем его на три
111,211 ,^112,212 } ,
подмножества: V={V1,V2,V3}: V1 ={^
={'^Ш,212,'^211Д12} , ={V121,221,V122,222 } .
В результате применения алгоритма синтезируется нормальная бесконтурная сеть (рис. 5), порождающая субоптимальное по быстродействию расписание, которое на поверку совпадает с одним из оптимальных расписаний, полученных с помощью точного алгоритма.
а
. MS /ЯФч/СгЭч
oie"
±
_ eiIX /«лрч/Сдзч
6 Х5 )-Н5х Ï5X8 1-
Kjy
Рис. 5
Х.ДУ
На рисунке 5 дуги Wiq, q=1,3, для q=1 изображены сплошными линиями, для q=2 - пунктирными, для q=3 - штрихпунктирными линиями.
Сравнивая дерево решений, полученное при использовании приближенного алгоритма (оконтуренная часть дерева на рис. 3), с деревом решений на основе точного алгоритма (полное дерево), можно сделать вывод о том, что первое является подмножеством второго. В общем случае это не всегда так. Можно предложить несколько оценок оптимального быстродействия обслуживающими системами в рамках приближенного алгоритма. В качестве нижней оценки критерия эффективности целесообразно использовать критическое время
временной модели О' = (Л,и^, 0), q=1.
Верхней границей является критическое время временной модели О' = (Л,и^, 0), q=Q.
Усредненной оценкой считаем критическое
время модели G' = (A,UwS , 0), где S =
Более точные оценки можно получить, исследуя различные разбиения УЦУ^У2,...^), варьи-
руя способы построения подмножеств V41 и величины тф q=.
Подводя итог, отметим, что точный алгоритм синтеза оптимальных расписаний последовательно-параллельных обслуживающих систем на базе МВГ является частным случаем приближенного алгоритма (для Q=1).
Используя приближенный алгоритм, необходимо находить разумный компромисс между точностью и трудоемкостью, которые легко регулируются параметрами алгоритма. Подобный подбор параметров предполагает активное вмешательство эксперта и подразумевает диалоговую процедуру.
Кроме того, оба алгоритма применимы при относительно небольшом количестве параллельных приборов. В противном случае число комбинаций дуг между операциями, выполняемыми на соответствующем множестве приборов, становится необозримым, а затраты времени на поиск оптимального расписания неоправданными. Для расширения границ применения актуальна задача отбора эффективного ограниченного подмножества таких комбинаций.
Литература
1. Танаев В.С., Сотсков Ю.Н., Струсевич В. А. Теория расписаний. Многостадийные системы. - М.: Наука, 1989. - 328 с.
2. Первозванский А.А. Математические модели в управлении производством. - М.: Наука, 1975. - 616 с.
3. Танаев В.С., Шкурба В.В. Введение в теорию расписаний. - М.: Наука, 1975. - 256 с.
4. Мезенцев Ю.А. Алгоритмы синтеза расписаний многостадийных обслуживающих систем в календарном планировании. / Омский научный вестник. - Омск: Изд-во ОГТУ, 2006. -№ 3. - С. 97-102.
НОВАЯ КОНЦЕПЦИЯ ПОСТРОЕНИЯ СОДЕРЖАНИЯ ИТОГОВЫХ ДОКУМЕНТОВ РАСЧЕТНЫХ КОМПЬЮТЕРНЫХ ПРОГРАММ
С.В. Бакушев, д.т.н.
(Пензенский государственный университет архитектуры и строительства,
Ключевые слова: достоверность результатов расчета, авторская программная разработка для видов расчетов, подход к содержанию итоговых документов.
Ввиду активного внедрения в практику реального проектирования компьютерных технологий многие прочностные, деформационные и другие виды расчетов выполняются с помощью вычислительной техники, в частности, персональных компьютеров. При этом наряду с лицензионными программными продуктами, аккредитованными и аттестованными по отраслям промышленности для выполнения тех или иных видов расчетов, используются авторские программные разработки, не имеющие государственной аттестации.
Использование таких программных разработок в практике реального проектирования некорректно по ряду причин. В частности, расчетная
компьютерная программа для заказчика является, как правило, черным ящиком.
Действительно, практически любая из них, в том числе и лицензионная, как результат расчета выдает в основном только массив итоговых чисел с графической визуализацией. Например, программные комплексы «Лира» и SCAD при выполнении прочностных расчетов выдают значения напряжений, деформаций и перемещений в сечениях элементов конструкций и строят соответствующие графики [1]. Алгоритм и методика расчета, а также расчетные соотношения, как правило, скрыты и от заказчика расчета, и от инженера, выполняющего его.