ВИЗУАЛИЗАЦИЯ ГРАФО-АНАЛИТИЧЕСКОЙ МОДЕЛИ ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССА А.В. Безруков, А.Г. Зыков Рассматривается алгоритм визуализации графо-аналитических моделей вычислительных процессов в рамках САПР, на основе их формального описания. Введение Проблема анализа качества аппаратного и программного обеспечения становится сегодня все более острой, особенно по мере расширения использования информационных технологий и нанотехнологий в приборостроении. Однако возможности средств верификации сегодня заметно отстают от возможностей систем проектирования и технологии изготовления, поэтому разработка машинно-ориентированных методов верификации аппаратно-программных компонентов вычислительных процессов является актуальной [1]. Одним из направлений формализации верификации вычислительных процессов (ВП) является задание их в виде графо-аналитических моделей (ГАМ), формализация описания ГАМ для машинного представления, на основании которого строится комплексное кубическое покрытие и синтезируются тестовые наборы для верификации [2]. Сопутствующей задачей является визуализация ГАМ по формальному описанию, как для установления соответствия описания и исходной ГАМ, так и для документирования проекта. Данная задача решалась в рамках создания учебно-исследовательской САПР верификации вычислительных процессов при поддержке РФФИ грант 12-07-00376. 1. Постановка задачи ГАМ является концентрированным описанием управляющего алгоритма вычислительного процесса. ГАМ в виде схемы алгоритма задаётся графическими примитивами и покрытиями [3]. Для автоматизированного построения кубических покрытий и синтеза тестов для верификации ВП требовалось разработать язык описания ГАМ, внутреннее машинное представление, алгоритмы построения кубических покрытий [4] и алгоритм визуализации ГАМ по его формальному описанию. В данной работе рассмотрен алгоритм визуализации. Рассмотрим ГАМ простого вычислительного процесса, представленную на рис. 1. F1(x), x ≥ 5 In [var: x] F2(x), 5 > x > 0 y= 1 CV x≥5 F3(x), x ≤ 0 T LV 4 y = F1(x) T LV 5 y = F2(x) T LV 6 y = F3(x) F 2 CV 5>x>0 F 3 CV x≤0 F UV 7 3,4,5,6 Out [var: y] Рис. 1. ГАМ вычислительного процесса вычисления интервальной формулы XML-описание ГАМ, продемонстрированное в [4], транслируется в машинные списки, которые содержат информацию о вершинах (номер, тип, функция) и связях между ними. Задача визуализации ГАМ, таким образом, сводится к более общей задаче визуализации графа. В общем виде эта задача была неоднократно решена и существует множество алгоритмов для различных типов графов [5]. Большинство из них не подходит для решения поставленной задачи, либо из-за ограничений, накладываемых на визуализируемый граф, либо из-за неоправданной сложности алгоритма. Поэтому было принято решение разработать алгоритм визуализации, учитывающий особенности ГАМ. 2. Разработка алгоритма визуализации На рис. 2 изображена схема алгоритма визуализации вершин ГАМ. Мы исходим из того, что рассматриваемые вычислительные процессы последовательны с возможными циклами, следовательно, первые вершины имеет смысл располагать по уровням, в зависимости от их расстояния до начала ВП. Для построения дуг между вершинами использован алгоритм нахождения кратчайшего пути – “A*” [6]. Это широко известный алгоритм с достаточно простой реализацией и хорошими возможностями по настройке, поэтому выбор и был сделан в его пользу. При этом учитывалась направленность разрабатываемой САПР верификации ВП и на использование её в учебном процессе, в частности, при выполнении обучаемыми лабораторных работ по различным дисциплинам, связанным с программной реализацией вычислительных процессов. In GAM curNode List prevLevel List curLevel List nextLevel List processedNode curLevel.Add(GAM.firstNode) curLevel.IsEmpty T F Для каждой вершины в curLevel: processedNode.Add(curNode) Все связанные с curNode вершины, если они ещё не в processedNodes, curLevel или nextLevel добавляем в nextLevel Отрисовываем все вершинs из curLevel в одну строку и переходим к следующей. curLevel = nextLevel nextLevel = null Out Рис. 2. Схема алгоритма визуализации ГАМ. Вывод вершин Результат работы разработанного алгоритма визуализации ГАМ в рамках программы «Верификация ГАМ» показан на рис. 3. Рис. 3. Визуализация ГАМ Заключение Использование данного алгоритма позволяет визуализировать ГАМ любой сложности, однако стоит учитывать ограниченные способности человеческого восприятия. Слишком большие модели даже визуально будут выглядеть не менее запутанно, чем в текстовом виде, поэтому структурирование [7] ГАМ должно быть обязательным этапом, предваряющим визуализацию. Литература 1. Bruce Wile, John C. Goss, Wolfgang Roesner Comprehensive Functional Verification. The Complete Industry Cycle. – San Francisco. 2005, 676c., ISBN: 0-12-751803-7 2. Верификация в исследовательских, учебных и промышленных системах. / Немолочнов О.Ф., Зыков А.Г., Лаздин А.В., Поляков В.И - Научно-технический вестник СПб ГИТМО(ТУ). Выпуск 11. Актуальные проблемы анализа и синтеза сложных технических систем / Гл. ред. В.Н. Васильев. СПб.: СПб ГУ ИТМО , 2003. С 146-151 3. Модель и примитивы вершин циклических вычислительных процессов. / О.Ф. Немолочнов, А.Г. Зыков, Л.Г. Осовецкий, В.И. Поляков // Изв. Вузов. Приборостроение. 2007. Т.50, №8. С. 18-23 4. Зыков А.Г., Безруков А.В., Немолочнов О.Ф., Поляков В.И., Андронов А.В. \ Графоаналитические модели вычислительных процессов в САПР / Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2011, № 4(74), С. 116-120. 5. Di Battista, Giuseppe; Eades, Peter; Tamassia, Roberto; Tollis, Ioannis G. (1998), Graph Drawing: Algorithms for the Visualization of Graphs, Prentice Hall, ISBN 978-0-13301615-4. 6. Dechter, R., Pearl, J. Generalized best-first search strategies and the optimality of A* // Journal of the ACM. — 1985. — Т. 32. — № 3. — С. 505 — 536. 7. Немолочнов О.Ф., Зыков А.Г., Поляков В.И., Македонский А.А. / Параллельные структуры управления вычислительными процессами в САПР / Научнотехнический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики, 2011, № 4(74), С. 121-124.