Лабораторная работа 4 doc. Лабораторная работа 4 планировщик задач реальноговремени
Скачать 304 Kb.
|
Пакет «NVS-Designer» для автоматизированного формированиямультиверсионного ПО Одним из направлений интенсификации производства ПО является ори- ентация средств его создания на специалиста проблемной области. Существу- ет ряд отечественных и зарубежных систем, в которых акцент смещается на инструментальные средства сборки программного продукта из программных модулей на основе формализованного описания вычислительного процесса. Это большая группа систем, реализующих аппарат спецификаций, техноло- гии планирующего типа, поддерживаемые, например, диалоговыми маршрут- ными системами, Р-технология и др. Планирование средств системы реального времени состоит, в том числе в определении требуемой информации для задания программы функциониро- вания средств. И в качестве исходных данных формируется вектор временной развертки технологического цикла управления (ТЦУ) t = (t1, t2, … tn), где ti– момент задействования того или иного компонента структуры для вы- полнения задачи, находящейся в i-й вершине графа ТЦУ. Вектор временной развертки однозначно определяет взаимосвязи по передаче управления между компонентами структуры. Так как выбор момен- тов включения компонент вычислительной системы является решающим фак- тором определения всей динамики процесса, то здесь возможна определенная оптимизация. От этого выбора зависит, будет ли реализован ТЦУ и если бу- дет, то, за какое время и с каким качеством. Общее описание«NVSDesigner» – представляет собой среду проектирования систем управления, построенных на принципах методологии мультиверсионного программирования. Пакет реализован с использованием среды визуального программирова- ния BorlandC++Builder 3.0 на платформе операционной системы Windows 95/98. Программный код написан с использованием подхода объектно-ориен- тированного программирования, что позволило реализовать в приложении наибольшую модульность. Приложение реализовано с использованием основных достоинств опе- рационной системы Windows 95/98: графический интерфейс пользователя, многозадачность, модульность и т.д. В версию 1.0 данного программного продукта входят следующие свой- ства: проектирование системы по одной из двух формулировок построения мультиверсионных систем управления возможность варьирования всех параметровсистемы; представление структуры системы в виде вектора булевых перемен- ных (векторучастия); оптимизация структуры системы с использованием методов псевдобу- левойоптимизации; возможность задания постановки оптимизационной задачи по усмот- рениюпользователя; графическое представление данных, позволяющее наблюдать за про- цессом оптимизации в реальном времени идр. наличие следующих оптимизационных процедур: метод полного перебора, случайный перебор, различные алгоритмы схемы метода изменяю- щихся вероятностей (СПА, МСПА, СПАБО, МСПАБО) с независимой гене- рацией компонент вектора вероятностей, в том числе с использованием непа- раметрического восстановления целевой функции, традиционные схемы слу- чайного поиска, различные модификации локального поиска, секущие алго- ритмы; возможность сохранения и восстановления данных в виде файлов осо- бого формата (файлы*.nvs); функция быстрой загрузки файлов, с которыми приходилось работать ранее; возможность добавления оптимизационных процедур в виде про- граммных модулей без изменения программного кода оболочки (и вообще го- воря, возможность использования таких модулей, написанных для NVSDesigner, для программного решения (реализации) любых задач псевдобуле- войоптимизации). Работа с «NVSDesigner»Для того чтобы создать новый проект в меню«File» выберите пункт «New…» или на панели инструмен- товнажми- те кнопку – появится окновыбо- ра типа системы. Предлага- етсянавы- бор два типа структуры си- стемы(рис. 4.1). Выбрав, например, формули- ровку №1, перед вами по- явится бланк описания системы управле- Рис.н4и.1я.,Опконсотврыобеонрнаотйипсаситсрпукотлуьр-ы зованием данной фсоирсмтеумлыировки под- хода мультиверсионного про- граммирования. Главное окно программы состоит из двух страниц: «Systemparameters» (параметры системы) и «Systemstructureoptimization» (оптимизация структу- ры системы). В нижней части окна расположена таблица, содержащая компо- ненты вектора участия, и панель, содержащая информацию о размерности вектора участия, стоимости и надежности системы, а также информацию о том, удовлетворяет ли структура системы предъявленным к ней на этапе по- становки задачи условиям (рис. 4.2). Рис. 4.2 Главное окно программы На странице «Systemparameters» находится информация о структуре системы: число задач; число базовых модулей (классов типовых задач); число версий для каждого из типовых модулей; принадлежность задач системы классам и характеристики версий типовых модулей (надежность и стоимость). Для формулировки №2 на этой странице будут расположены до- полнительные элементы управления. Многие параметры системы взаимозави- симы, поэтому, изменяя, например, число задач в системе, автоматически из- меняется размерность вектора участия, число столбцов в таблице, описываю- щей вектор участия и число столбцов и значения ячеек в таблице, которая описывает вектор принадлежности задачклассам. Страница «Systemstructureoptimization» содержит информацию о зада- че построения оптимальной структуры системы управления. Пользователь может задать метод вычисления функции надежности (для методов безуслов- ной оптимизации предлагается метод штрафных функций) и условия, предъ- являемыексистемеуправления:«хотябыоднаверсиявкаждоммодуле», «нечетное число версий в каждом модуле» и «стоимость системы не должна превышать имеющегося бюджета». Пользователь имеет возможность задать величину бюджета. Окно «Systemstructureoptimization» представлено на рис. 4.3. На этой странице также имеются две кнопки «X={000…00}» и «X={111…11}», которые выполняют функции: соответственно «система с ну- левой структурой» (ни одному модулю не поставлена в соответствие ни одна версия) и «система с полным набором» (в составе каждого модуля имеются все возможные версии). Рис. 4.3. Страница «System structure optimization» Пожалуй, основными элементами управления на странице «Systemstructureoptimization» являются выпадающий список оптимизационных алго- ритмов и кнопки «Optimize » (Оптимизировать) и «Stop » (Стоп), выпол- няющие функции соответственно запуска ипреждевременного При сохранении проекта система запоминает параметры структуры проектируемой систем, в том числе и величину бюджета. При работе в системе проектирования пользователь варьирует разные параметры. При изменении параметров в строке состояния появляется помет- ка «Modified» (изменен). После сохранения документа пометка «Modified» в строке состояния исчезает. Для того чтобы сохранить данные о системе достаточно в меню «File» выбрать пункт «Save» или нажать кнопку . Если проект не был загружен из какого-либо файла до этого - программа спросит название файла, в котором следует сохранить данные осистеме. Работу в системе проектирования рассмотрим на примере системы управления, построенной согласно формулировке №2, так как формулировку №1 можно рассматривать как упрощение формулировки №2. На странице «Systemparameters» главного окна приложения имеются элементы управления, позволяющие изменять следующие параметры систе- мы: число базовых модулей (классов задач); число версий в каждой из базо- вых модулей; характеристики версий базовых модулей (надежность и стои- мость); число задач в системе; число программных модулей в каждой из задач системы; принадлежность программных модулей отдельных задач системы базовым классам. Таким образом, пользователь в первую очередь задает два главных па- раметра системы: число задач в системе и число классов задач. При измене- нии значения некоторых параметров системы, автоматически изменяются па- раметры, на которые повлияло данное изменение. После того, как было введено число классов задач, следует ввести ха- рактеристики каждого из классов: число версий, доступных для решения за- дачи данного класса и параметры каждой из версий. В верхней таблице вво- дятся значения числа версий каждого класса. Для того чтобы изменить параметры версий некоторого класса, следует в выпадающем списке, расположенном ниже таблицы с данными о классах, выбрать номер класса (4.4). Значения в нижней таблице изменятся и станут равными параметрам версий, решающих задачи указанного класса. Для изме- нения параметров версий необходимо выделить соответствующую ячейку та- блицы и ввести новое значение. Правее описанных данных на странице находятся параметры конкрет- ной системы: число задач в ней и т.д. Варьирование этих данныхпроизводит- ся так же как и варьирование данных, описывающих библиотеку базовых мо- дулейР(ирси. с4..44. .В5ы).бор класса Рис. 4.5. Параметры системы Изменяя описанные выше параметры, поль- зователь тем самым изменяет и размерность век- тора участия, стоимость системы и ее надеж- ность. Но надежность и стоимость системы в пер- вую очередь зависят от ее структуры, которая описывается при помощи вектора участия. Имен- но поэтому в программу введена функция «руч- ного» редактирования вектора участия. Выделив некоторую ячейку вектора, пользователь может ввести единицу или ноль, что будет соответство- вать участию или отсутствию некоторой мультиверсии в структуре системы управления. Меняя эти величины, пользователь может видеть, что автомати- чески меняются параметры стоимости и надежности системы. Окно для «руч- ного» редактирования вектора участия представлено на рис. 4.6. Страница «Systemstructureoptimization» содержит элементы управле- ния, необходимые для решения задачи построения оптимальной структуры системы управления, основываясь на информации, введенной на странице «Systemparameters». Рис.4.6. Редактирование вектора участия На данной странице в первую очередь пользователь может выбрать ме- тод, которым будет просчитываться целевая функция оптимизационной зада- чи. Это может быть просто функция надежности системы от ее структуры или один из вариантов функции надежности со штрафами. Метод штрафных функций внедрен в пакет с целью использования оптимизационных процедур, решающих задачи безусловной оптимизации. Пользователь также может выбрать ограниче- ния, налагаемые на целевой функционал. Он может включить/отключить действие одного из трех типов ограничений: «хотя бы одна версия в каждом модуле», «нечетное число версий в каждом модуле»и «стоимость системы не должна превышать имеюще- гося бюджета» (рис. 4.7). Чтобы реализовать это поль- Рис. 4.7. Ограничения зователь должен щелкнуть мышкой на соответствующем условии. Одновременно с изменениями условий и вида целевой функции меня- ются значения параметров, расположенные внутри панели в нижней части главного рабочего окна приложения. В зависимости от того, удовлетворяет ли структура системы поставленнымограничениям, внизу панели будет изображаться надпись «Conditionissatisfied» (условие выполняется), выполненная в черном цвете или «Conditionisnotsatisfied» (условие не выполняется) – в крас- ном цвете (рис.4.8). Основным элементом на странице «Systemstructureoptimization» является выпадающий спи- Рис. 4.8. Информация о соблюдении условий сок оптимизационных алгоритмов (рис.4.9). В списке перечислены подклю- ченные алгоритмы псевдобулевойоп- тимизации. Подключение алгоритма организуется написанием отдельного модуля и никаким образом не влияет на программный код самой оболочки пакета. В модуле, содержащем описа- ния оптимизационных процедур, на- Рис. 4.9. Оптимизационные алгоритмы ходятся все параметры алгоритмов, в том числе и их названия. Поэтому без модуля алгоритмов пакет ничего собой не представляет. Щелкнув по выпадающему списку методов оптимизации, пользователь может выбрать один из них. На странице появится панель алгоритма. Описа- ние панели алгоритма также входит в состав модуля оптимизационных мето- дов. В настоящей версии программного продукта доступны следующие оп- тимизационные процедуры: – метод полного перебора; стей; алгоритмы схемы МИВЕР с независимым распределением вероятно- алгоритмы схемы МИВЕР с независимым распределением вероятно- стей для задач безусловной оптимизации; различные вариации алгоритмов схемы МИВЕР, в том числе с исполь- зованием непараметрического оцениванияфункционала случайныйперебор, алгоритмы направленного случайногопоиска, алгоритмы метода локальногопоиска, секущиеалгоритмы. Рис. 4.10. Панель метода полного перебора На панели алгоритма отображается инфор- мация о параметрах алгоритма и информация, описывающая работу алгоритма в реальном вре- мени (рис. 4.10). Например, на панели метода полного перебора в реальном времени отобража- ются следующие параметры: номер итерации (i); значения элементов вектора, в котором в данный момент просчитывается значение функционала; минимальное значение функционала среди уже просмотренных точек области определения целе- вой функции (Fmin); значения компонент векто- ра из числа уже просмотренных, при котором значение целевой функции обратилось в Fmin (Xmin), а также на панели отображается шкала прогресса алгоритма (процент просмотренных точек). Перед тем как запустить алгоритм оптимизации из схемы МИВЕР, пользователь должен задать параметры алгоритма. В выпадающем списке пользователь должен выбрать метод пересчета вектора вероятностей (по умолчанию выбирается ARSA – СПА), в строках редактирования установить значения параметров R и r алгоритма. n Затем нажатием кнопки «Optimize » пользователь может запустить оптимизационнуюпроцедуру.Послеэтогонапанелиотобразитсявеличина, характеризующаяпроцентточек,вкоторыхбудетпросчитанозначениецеле- войфункции,отчислаточекизмножествабулевыхпеременныхB2.Впро- цесседействияалгоритмаоптимизациинапанелиметодавреальномвремени будет отображаться следующая информация (рис.4.11): номера итераций (i – общий цикл, k – внутренний цикл, j – цикл гене- рациивекторов); число сгенерированныхвекторов; число обращений к целевойфункции; шкалы общего прогресса алгоритма и прогресса по внутреннему цик- лу; значения компонент вектора вероятностей, представленные ввиде диаграммы; максимальные и минимальные значения целевой функции среди про- считанных на очередном этапе работы алгоритма и векторы, при которых функционал принимает этизначения. распределением вероятностей. Оптимизационный процесс может быть прерван в любой момент време- ни нажатием кнопки «Stop ». В дальнейшем планируется дополнить пакет следующими свойствами: переход к современному однодокументному интерфейсу пользователя (SingleDocumentInterface); представление структуры системы управления в графическомвиде; включение в задачу проектирования системы управления временных и ресурсных требований(ограничений); пополнение библиотеки оптимизационныхпроцедур; реализация абсолютной модульности (реализация оптимизационных процедур не в одном, а в нескольких подключаемых модулях, что позволит облегчить подключениеалгоритмов); введение параметровоболочки; развитие файлов оперативной документации (on-linehelp). По завершении работы алгоритма на панели отображается решение и значение целевой функции в полученном векторе (рис. 4.12). Также в соответ- ствии с полученным решением обновляется информация в таблице значений компонент вектора участия и на панели, описывающей надежность и стои- мость системы. Рис. 4.12. Панель результатов Таким образом, в пакете «NVSDesigner» можно реализовывать одно- критериальные модели и алгоритмы формирования технологического цикла управления (ТЦУ) и мультиверсионного ПО исполнения задач управления с использованием подхода объектно-ориентированного программирования. |