Результатом работы является разработка математической модели системы стабилизации и синтез законов управления стабилизирующими механизмами. Полученные результаты будут использованы при разработке систем стабилизации положения различных объектов, располагаемых на качающихся основаниях. К таким объектам можно отнести радио- и гидроакустические антенны, лазерные приборы, установки морского бурения, башни и т.д.
Д.В. Бельков
МЕТОД РАЗМЕЩЕНИЯ ДАННЫХ ПО УЗЛАМ РАСПРЕДЕЛЕННОЙ
САПР
Наиболее подходящим построением САПР может быть машина САПР распределенной архитектуры. Ее частью является распределенная операционная система. В эту систему входит оптимизатор, который производит самоадаптацию размещения файлов данных в зависимости от интенсивности их использования. Оптимизация интенсивности информационного трафика между узлами вычислительной сети улучшает время ответа на запросы к файлам распределенной САПР.
Распределенная система может находиться в режимах функционирования или обновления. В режиме функционирования система выполняет запросы к файлам. Поток обработанных запросов - произвольный. Возможно 2 типа запросов: сетевой запрос, для обработки которого необходим файл, не содержащийся в том узле, где возник запрос; локальный запрос, для обработки которого необходим файл, содержащийся в том узле, где возник запрос. В режиме обновления система не выполняет запросы к файлам. В этом режиме корректируется план размещения файлов. При размещении файлов по узлам вычислительной сети циклически выполняются два этапа: 1) решение задачи распределения файлов; 2) поиск момента нового распределения файлов.
Обозначим: ^ - интенсивность запросов к файлу 1 из узла ^ Ху =1, если
файл 1 расположен в узле ^ иначе Ху =0; V; - объем файла 1; В^ - объем узла ^ Т - время, в течение которого поступают запросы к файлам узла ^ 8^ - допустимое время выполнения запроса к файлам узла ^ 1=1...т, ]=1...п.
В задаче максимизируется суммарная работа, совершаемая потоком локальных запросов:
т п
А= ЦFijXijTjVi ® тах . (1)
1=и=1
Согласно критерию (1) файл 1 рационально поместить в такой узел ^ чтобы локальные запросы к файлу поступали в течение максимально большого времени с максимально большой интенсивностью. Файлы должны быть упорядочены по убыванию их размера. Узлы отсортированы по возрастанию объемов. В САПР файлы данных интенсивно корректируются. Для минимизации потока корректирующих запросов каждый файл должен быть помещен лишь в один из узлов. Суммарный объем распределенных в узел ] файлов не должен превышать В^. Поэтому задача имеет ограничения:
Ху={0;1},£Ху = 1, i=1...m , (2)
:=1
т
X^Ху £ В,, j=1...n . (3)
1=1
В задаче (1)-(3) необходимо найти матрицу размещений файлов X. Задача относится к классу № -трудных, так как содержит в качестве частного случая многомерную задачу о рюкзаке.
Работа алгоритма решения задачи состоит из двух этапов. На первом этапе алгоритм находит для файла i те узлы, в которые файл помещается по размеру. На втором этапе, среди найденных узлов определяется узел с наибольшим значением Су = Fу Т V; , и файл размещается в этот узел. Временная сложность алгоритма - 0(т(2п -1)) .
Обозначим: ^) - время, в течение которого узлы будут обращаться с локальными запросами к файлам в режиме функционирования. Это время необхо-
димо для освобождения системы от всех локальных запросов, имеющихся в момент времени ^ при условии, что после этого момента в систему не поступают новые локальные запросы. Оно есть незаконченная работа, выраженная в единицах времени. В начальный момент режима функционирования Т^) = тах(Т Ху) > 0 . Затем ^) убывает с единичной скоростью, т. к. рабочее
время пользователей убывает с единичной скоростью. Так происходит до тех пор, пока ^) не обратится в нуль, не поступит сетевой запрос или “новый” локальный запрос к файлу. От момента поступления сетевого запроса до завершения его обработки значение T остается постоянным: выполнение сетевого запроса останавливает обработку локального. Локальный запрос является “новым”, если время на его выполнение не было учтено при первоначальном определении ^). В момент поступления “нового” локального запроса к текущему значению T ^) добавляется время выполнения этого запроса, которое не превышает 8тах = X. В САПР в начале выполнения запроса не известны все операции, которые он будет выполнять, иерархия запросов изменяется в процессе их выполнения. Случайные флуктуации ^) невозможно предусмотреть заранее. Чтобы избежать излишних пересылок файлов, перераспределение целесообразно осуществлять с запаздыванием X по отношению к моменту, в котором ^) становится равным нулю.
Алгоритм поиска момента нового распределения файлов состоит в следующем:
1. В момент ^ сделать первоначальное распределение файлов, получить значение T (^) и присвоить k= 1;
2. В момент t= Т0 + к -X решить задачу (1)-(3), найти Т(Т0 + к -х) и проверить условие ^)=0;
3. если Т(Т0 + к -х) =0, то в момент Т0 + к -х необходимо перераспределить файлы;
4. если Т(Т0 + к - х) ^0, то увеличить k на 1 и перейти к пункту 2.
На рис. 1 показан пример поиска момента перераспределения файлов. Проверки Т(1:)=0 происходят в моменты 1= Т0 + х , 1= Т0 + 2 • х , 1= Т0 + 3 • х. Так как Т(Т0 + 3 • х) =0, то в этот момент необходимо перераспределить файлы.
Рис. 1
Для исследования работы предложенных в статье алгоритмов были выполнены две серии экспериментов на ПЭВМ Pentium 166 MHz. Программы составлены на Delphi 3.01, операционная система Windows 98.
В первой серии решены 10 задач размещения m файлов по n узлам. Задачи
решены предложенным в статье алгоритмом распределения файлов при m= 106 ; n=10. Элементы матрицы Fj в задачах формировались функцией random(100);
8 j =0,01часа; Tj =8 часов. Вектор V сформирован по формулам:
m
V = m ;V = Vj -(i-1), где i=1...m. B1 = £ V / n ; Bj = B1 + (j - 1), j=1...n. Таким
i=1
образом, файлы упорядочены по убыванию размеров: Vi > Vi+1, i=1...m-1, узлы упорядочены по возрастанию объема: Bj < Bj+1, j=1. n-1.
Первая серия экспериментов показала, что максимальное время работы алгоритма - Tp = 3,5 минуты, относительная погрешность меньше 1%.
Во второй серии экспериментов был найден момент нового распределения файлов с помощью предложенного алгоритма. Обозначим: k=]random(4)[; t - время функционирования системы; t = 8 j =0,01 часа; T0 = T(t0) = Tj = 8 часов. Пусть
в момент t0=0 сделано первоначальное распределение файлов и получено значение T0=T(t0). Если в момент времени t =T0 значение k=0, то в систему поступает сетевой запрос и T(t + t) = T(t) ; если k=1, то в систему поступает “новый” локальный запрос и T(t +1) = T(t) +1. Если k=2 , то в систему не поступает сетевой запрос и T(t + t) = T(t)-t. Если k=3, то в систему не поступает “новый” локальный запрос и T(t +1) = T(t) -1. Время t увеличивается дискретно с шагом t, пока T(t) > 0 . В момент времени t= Td = T(t) < 0 необходимо новое распределение файлов. Величина Td есть интервал между перераспределениями файлов.
В ходе второй серии экспериментов получены значения Та, которые в среднем больше чем Т0 в 5 раз. Время Та превышает точное значение интервала между перераспределениями файлов не более чем на величину х.
В статье предложен эффективный метод размещения данных по узлам распределенной САПР с учетом изменения плана размещения со временем. Приведены результаты экспериментального исследования метода.
Е. Р. Алексеев, О. В. Чеснокова, Е.В. Павловская, А. А. Тарасов
ПРОБЛЕМЫ ОБРАБОТКИ ДАННЫХ В ПАКЕТЕ MATLAB ПРИ РЕШЕНИИ ИНЖЕНЕРНЫХ ЗАДАЧ
Возможности Matlab весьма обширны. Система применима практически в любой области науки и техники. Важным достоинством системы является возможность ее интеграции с различными пакетами.
Несмотря на то, что Matlab является достаточно мощным математическим пакетом, его интерфейс довольно скромен. Оставляют желать лучшего и возможности стилизации текстов. С этой точки зрения объединение возможностей текстового процессора Word с возможностями системы Matlab достаточно актуально. Подобное объединение позволяет включать в произвольный текст действующие ячейки ввода вывода, при этом изменение исходных данных ведет за собой изменение результатов.
Установить связь между Word и Matlab можно несколькими способами. Если пользователь находится в среде Matlab, то ему достаточно в строчном редакторе набрать Notebook -setup, после запроса указать версию Word, а затем пути к файлам winword.exe и normal.dot. Доказательством того, что связь установлена, служит появление в главном меню Word опции Notebook, а в меню File-команды New M-File.
Команда New M-File используется для создания новой М-книги, правила ввода текста в которой полностью совпадают с правилами Word.
Опция Notebook, будучи активной, порождает меню с обширным списком команд [1]. Остановимся подробно лишь на некоторых из них. Выполнение команды Notebook/Define input cell приводит к созданию ячейки ввода. В эту ячейку вводится команда Matlab. Выполнение команды Notebook/Evaluate cell (Ctrl+Enter) приводит к появлению ячейки вывода, содержащей результаты вычислений. Ниже приведен пример символьного вычисления неопределенного интеграла и найдено значение определенного интеграла. syms x ; int(1/cos(x),x) ans =log(sec(x)+tan(x)) int(1/x,0.2,1) ans =log(5)
Важно отметить, что в ячейках вывода может отображаться любая информация - числа, векторы, матрицы, рисунки и т.д.
Продолжая разговор о возможностях интеграции пакета Matlab, стоит отметить, что существуют средства связи этого пакета с популярным табличным процессором Excel. Обращаем внимание на то, что это одна из новых возможностей пакета, появившаяся в шестой версии. Связь между приложениями Excel и Matlab пользователь может установить, открыв в среде Excel файл