№ 5 (2021)
АНАЛИЗ И ТРАНСФОРМАЦИЯ ПРОГРАММ
КОМПЬЮТЕРНАЯ АЛГЕБРА
АНАЛИЗ ДАННЫХ
ТЕОРИЯ ПРОГРАММИРОВАНИЯ: ФОРМАЛЬНЫЕ МОДЕЛИ И СЕМАНТИКА
Статьи в выпуске: 5
Непрерывно-временные сети Петри (НВСП), где каждому переходу сети ставится в соответствие временной интервал его срабатывания, используются для моделирования сложных параллельных систем, критичных с точки зрения безопасности. В общем случае, пространство состояний НВСП бесконечно и несчетно и, следовательно, анализ их поведения довольно сложен. ‘Истинно параллельная’ семантика представляет поведение НВСП в виде набора действий, отношение причинной зависимости между которыми моделируется частичным порядком, а отношение параллелизма – отсутствием порядка. Такое представление является более приемлемым для изучения следующих свойств параллельных систем: отсутствие тупиков, ‘справедливость’ (fairness), максимальный параллелизм и т.д. В статье вводятся и исследуются семантики шага (множества параллельных действий) и частичного порядка (множества упорядоченных по причине и параллельных действий) в контексте НВСП, поведение которых определяется слабой временной стратегией (т.е. ход модельного времени не ограничен срабатыванием переходов сети) и устойчиво атомарной техникой сброса часов (т.е. при сбросе часов срабатывание переходов сети рассматривается как атомарное действие).
Предложены шесть методов бинаризации алгоритма стаи ласточек для решения задачи отбора признаков по методу обертки. Эффективность выбранных подмножеств признаков оценивается двумя классификаторами: нечетким классификатором и классификатором на основе k-ближайших соседей. При поиске оптимального подмножества признаков учитывались количество признаков и точность классификации. Разработанные алгоритмы протестированы на наборах данных из репозитория KEEL. Для статистической оценки методов бинаризации использовался двухфакторный дисперсионный анализ Фридмана для связных выборок. Лучшие способности к отбору признаков показал гибридный метод, основанный на методе модифицированных алгебраических операций и введенной нами операции MERGE. Лучшая точность классификации получена с использованием метода V-образной функции трансформации.
Здесь дается описание алгоритмов и программного обеспечения для двух новых методов решения полиномиальных уравнений, основанных на построении выпуклого многоугольника. Первый метод позволяет находить приближенные корни многочлена с помощью многоугольника Адамара. Второй метод позволяет находить ветви алгебраической кривой вблизи ее особой точки и вблизи бесконечности с помощью многоугольника Ньютона и строить эскизы вещественных алгебраических кривых на плоскости. Указаны соответствующие геометрии и алгоритмы компьютерной алгебры, которые позволяют анализировать любые сложные случаи.
За последние годы популярность языка Go значительно возросла. Вместе с тем в настоящее время для языка Go существуют только легковесные статические анализаторы. Мы восполнили этот пробел, адаптировав статический анализатор Svace для поиска ошибок в программах на языке Go. Нами был реализован межпроцедурный и межмодульный статический анализатор имеющий чувствительность к потоку и путям. Для оценки результатов использовалось 10 проектов с открытым исходным кодом. 16 оцениваемых детекторов выдали 6817 предупреждений с 76 срабатываний.
В работе строится вычислительно эффективная реализация алгоритма Брейди расчета быстрого преобразования Хафа (БПХ) на отечественном сопроцессоре СРСА, входящем в состав системы-на-кристалле 1890ВМ9Я “КОМДИВ128-М”. Показывается, что БПХ находит широкое применение в задачах анализа изображений, от зрительных систем беспилотного транспорта до вычислительной рентгеновской томографии. Приводится и анализируется с точки зрения низкоуровневой имплементации классическая рекурсивная реализация БПХ. Впервые рассматривается более эффективный нерекурсивный вариант алгоритма, для которого проводится анализ нагрузки на вычислители и память сопроцессора, а также экспериментальные замеры производительности. Показывается, что теоретически возможная производительность нерекурсивного алгоритма на СРСА составляет 800 Мопс, при этом максимально достижимая на практике производительность составила 470 Мопс, а максимальное полученное экспериментально значение оказалось 406 Мопс. При этом загрузка вычислителей сопроцессора достигла 18%. Таким образом, несмотря на относительно малое число арифметических операций в методе, использование сопроцессора оказывается целесообразным.