Научная статья на тему 'АЛГОРИТМ ПОСТРОЕНИЯ СТОХАСТИЧЕСКИХ ВАРИАЦИЙ ВЕКТОРА С ЗАДАННЫМИ ОГРАНИЧЕНИЯМИ'

АЛГОРИТМ ПОСТРОЕНИЯ СТОХАСТИЧЕСКИХ ВАРИАЦИЙ ВЕКТОРА С ЗАДАННЫМИ ОГРАНИЧЕНИЯМИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
8
3
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАСЧЕТ И КОНТРОЛЬ ПОЛЕТНОГО ЗАДАНИЯ / АЛГОРИТМ / БЛОК-СХЕМА / ВАРИАЦИИ ВЕКТОРА / АВТОМАТИЗАЦИЯ / FLIGHT TASK COMPUTATION AND CONTROL / ALGORITHM / BLOCK DIAGRAM / VECTOR VARIATIONS / AUTOMATION

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Ляпин Александр Андреевич

В статье предложен алгоритм построения стохастических вариаций вектора с целью использования этих вариаций для тестирования программного обеспечения расчета и контроля полетного задания. В работе рассмотрен метод автоматического построения вариаций вектора при построении расчетной сетки тестирования, учитывающий заданные ограничения (ограничения на длину вектора и диапазоны изменения каждой его компоненты). Представленный алгоритм позволяет при генерировании расчетной сетки тестирования перейти от ручного ввода вариаций входных векторных параметров к их автоматической генерации, что уменьшает трудозатраты инженера-оператора и исключает влияние человеческого фактора.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Ляпин Александр Андреевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ALGORITHM FOR STOCHASTIC VARIATIONS GENERATION OF A VECTOR WITH SPECIFIED CONSTRAINTS

Software for flight task analysis and control consists of a variety of interrelated components (program modules) [1]. A program module is a functionally completed software implementation of a specific task (algorithm) of a software for analysis and control of a flight task. To ensure quality and reliability, each program module should be debugged, verified and tested in autonomous mode [2, 3, 4]. The above-mentioned program modules are verified and tested using special software tools (program complex BTTesting [5, 6]). The paper covers a method of automatic variations generation of a vector with specified constraints (imposed on the vector length and ranges of its components variation) while forming a computational grid for verification. There are methods for constructing random vectors with dependent components [16], such as the method of conditional distributions, elimination method (von Neumann), etc. To apply the method of conditional distributions, it is necessary to determine the distribution density of the vector components, and the von Neumann method allows construct random variations of the vector components and restrictions on its length. The algorithm proposed in the article represents a simple mathematical formulation as well as easy software implementation. An application program [17-22] integrated in the BTTesting program complex is designed based on the algorithm. The article presents user's interface and an example of the algorithm utilization. The presented algorithm allows to replace manual entering of initial vector parameters by their automatic generation while forming a computational grid for verification. This lowers labor efforts of a white-collar operator and prevents a human factor impact.

Текст научной работы на тему «АЛГОРИТМ ПОСТРОЕНИЯ СТОХАСТИЧЕСКИХ ВАРИАЦИЙ ВЕКТОРА С ЗАДАННЫМИ ОГРАНИЧЕНИЯМИ»

Труды МАИ. Выпуск № 102

http://trudymai.ru/

УДК 681.51:629.78

Алгоритм построения стохастических вариаций вектора с заданными

ограничениями

Ляпин А.А.

Государственный ракетный центр имени академика В.П. Макеева, Тургоякское шоссе, 1, Миасс, Челябинская обл., 456300, Россия e-mail: lyapin-sasha@mail. ru

Аннотация

В статье предложен алгоритм построения стохастических вариаций вектора с целью использования этих вариаций для тестирования программного обеспечения расчета и контроля полетного задания. В работе рассмотрен метод автоматического построения вариаций вектора при построении расчетной сетки тестирования, учитывающий заданные ограничения (ограничения на длину вектора и диапазоны изменения каждой его компоненты). Представленный алгоритм позволяет при генерировании расчетной сетки тестирования перейти от ручного ввода вариаций входных векторных параметров к их автоматической генерации, что уменьшает трудозатраты инженера-оператора и исключает влияние человеческого фактора.

Ключевые слова: расчет и контроль полетного задания, алгоритм, блок-схема, вариации вектора, автоматизация.

Постановка задачи

Программное обеспечение расчета и контроля полетного задания (далее ПО РКПЗ) состоит из множества взаимосвязанных элементов (программных модулей) [1]. Программный модуль (далее ПМ) - функционально завершённая программная реализация частной задачи (алгоритма) РКПЗ. С целью обеспечения качества и надежности ПО РКПЗ каждый программный модуль должен быть отлажен, отработан и протестирован в автономном режиме [2, 3, 4].

Отработка и тестирование вышеописанных программных модулей осуществляется при помощи использования специального программного средства (программный комплекс ВТТе81т§ [5, 6]). Заложенная в ВТТе81т§ методология тестирования (автоматизированное исследовательское тестирование [7-14]) подразумевает построение расчетной сетки, содержащей различные вариации входных параметров. Вариации каждого из входных параметров могут быть построены в двух режимах - ручном или автоматическом. В случае использования автоматического режима, для каждого параметра назначается диапазон его изменения, внутри которого строятся вариации. Однако, одним из возможных типов входных данных ПМ является векторное значение, для которого задание диапазона не позволяет построить необходимые вариации (поскольку в исследуемых задачах имеются ограничения на вариации каждой компоненты вектора и его длины).

Таким образом, актуальным становится вопрос о разработке алгоритма автоматического построения вариаций вектора при построении расчетной сетки (автоматизация расчетов в аэрокосмической технике является актуальной задачей [15]) , учитывающий заданные ограничения (на длину и изменения компонент).

Стоит отметить, что существуют методы построения случайных векторов с зависимыми компонентами [16] - метод условных распределений, метод исключения (фон Неймана) и др. Для использования метода условных распределений необходимо определять плотность распределения компонент вектора, а метод фон Неймана позволяет строить случайные вариации компонент вектора, без учета ограничений по его длине. Предложенный же в статье алгоритм обладает простой математической постановкой и легкой программной реализацией.

Алгоритм построения вариаций

Блок-схема разработанного алгоритма приведена на рисунке 1.

Рис. 1. Блок схема алгоритма

Входные данные:

^тт» ^тах - диапазон изменения длины вектора; Хт|п, Хтах - диапазон изменения компоненты x; Ут1п, Утах - диапазон изменения компоненты у; 2тт> 2тах - диапазон изменения компоненты z;

N - необходимое количество вариаций. Предварительные замечания:

В алгоритме используется функция random(min, max), которая выдает случайное вещественное число в заданном диапазоне [min, max], а также две вспомогательные процедуры:

1) Процедура определения минимального абсолютного значения компоненты вектора absMin

Входные данные:

- диапазон изменения

Алгоритм:

Если D mi п >0 и D тах > 0 , то D = I D m in | ; Если и , то ;

Иначе D ^П = 0.

На выход процедуры поступает D т^П

2) Процедура определения максимального абсолютного значения компоненты вектора absMax.

Входные данные:

- диапазон изменения

Алгоритм:

Если , то ;

Иначе .

На выход процедуры поступает .

Алгоритм.

1. Проверка корректности ввода данных:

Если R m ах < R m j п, то выход из задачи с кодом 0; Если X m ах < X m j п, то выход из задачи с кодом 0; Если , то выход из задачи с кодом 0;

Если , то выход из задачи с кодом 0;

Цикл по k = 1 до N

2. Определение последовательности вариаций компонент вектора: Случайным образом определить последовательность вариаций компонент

вектора (может быть реализовано 6 вариантов): 1) ; 2) ;

3) Y - X - Z;

4) Y - Z - X;

5) Z - X - Y;

6) Z - Y - X.

Обозначим NBap - номер выбранного варианта. В зависимости от N вар

переобозначим .

3. Определение длины вектора :

| ifb s | m.n = abs Min (r^rf1^) , i = 1 .. 3 .

I rfb s | = ab s M ax (rm jn ,rmax) , i = 1 .. 3 .

i i imax v 1 1 '

RE = JlL^fbslmin)2-

nnew _ уЗ /|„с 14 max |Zji=i^|1i

absI )2.

1 maxy '

Если R m^n > R m ax или R^ai < Rm i n, то выход из задачи с кодом 0. Если , то .

Если , то .

R с uг — ra n d О m ( Щ, Rmax) .

4. Определение значения первой компоненты вектора r С u г:

rnew _ /р2 _ f|rabs| N\2_f|„abs| Л2-r m ax—с u г ^ I r 2 I m i nj ( I Г 3 I m i n4 '

„new _ _„new.

1 m i n 1 m ax.

4.1. Ограничение диапазона по абсолютному максимуму:

Тн/-тттт T-new ^ v-min „„ „min _ „new.

Если , то .

Тнотттт ».new „max „„ „max _ „new

Если , то .

4.2. Ограничение диапазона по абсолютному минимуму:

.2 /. . . \2

Irlmin - Rcur (lr2bS|max) (|Г3Ь5|тах)

Если , то

I r I m i n V I r I mi n.

Если и и , то

„max _ _i„i 1 1 — 1 1 1 min.

r с u г —ran d о m (r mi n,rm ax) . Иначе, если ( r max > 0 ) и ( r mi n < 0 ) , то

Если if1 1П > - I г I mi n, то г1 = гГ = 0 ;

Иначе г l = г m 1 n,r 2 = — | г |

mm-

Если , то ;

Иначе г\ = | г | min^ = r^. г 1 u r = гап d о m (г \ — г[ + г^ г 2) . Если , то .

Иначе, если ( г m ах > 0) и ( г m 1 n > 0) и ( г m 1 n < | г | m 1 n) , то

г min = | г | . . г 1 = | г | m 1 n.

r i U r-ran d о m (r f n,rf ax) . Иначе

r 2 U r-ran d о m (r f n,rf ax) . Конец оператора Если; Конец оператора Если.

Если | r | min < 0 , то riur = rand о m (rf n,rfax) . 5. Определение значения второй компоненты вектора r 2 u r:

rS = jRiur-(riUr)2-(|rfbS|m.n)

2-

„new _ _„new.

1 m i n 1 m ax;

5.1. Ограничение диапазона по абсолютному максимуму:

Тн/-тттт T-new ^ v-niin „„ „min _ „new. Если rmin > r2 , то r 2 - rm in ;

Thotttt ».new „max „„ „max _ „new

Если , то .

5.2. Ограничение диапазона по абсолютному минимуму:

I Г I min = R2cur - (riur) 2-( I rab S I mJ 2.

Если , то

1 r 1 m i n V 1 r 1 mi n;

Если и и , то

„max _ _i„i Г 2 = 1 Г 1 min;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

r 2 u r = ran d о m (r f n,r m ах) . Иначе, если ( r mах > 0 ) и ( r mi n < 0 ) , то Если , то ;

Иначе

min-

Если , то ;

Иначе .

r 2 u r = ran d о m (r \ — гГ + r}, r Г) . Если , то .

Иначе, если ( ) и и , то

„min _ |„| . Г 2 = 1 Г 1 m i n;

r с u г —ran d о m (r f n,r m ax) . Иначе

r с u г —ran d о m (r m n,r m ax) . Конец оператора Если; Конец оператора Если.

Если , то .

6. Определение значения третьей компоненты вектора r 3 u r:

r 3 u r = V R3ur - (r3ur) 2 - (r3ur) 2;

Если и , то ;

Если и , то

Если , то ;

Если и , то определить случайным образом

cur cur

значение .

Конец оператора Если;

7. Формирование выходных данных:

В зависимости от N вар переопределить компоненты вектора:

„cur „cur „cur v y V 7-rl , r 2 , r 3 - X Y , Z;

M [k] = 1W (X, Y, Z ) ,

- массив векторов; k = k + 1;

Конец цикла по k. Выходные данные:

- массив случайных векторов. Конец алгоритма.

Результат

На основе приведенного алгоритма разработана программа [17-22], включенная в состав программного комплекса BTTesting. Пользовательский

интерфейс программы и пример использования представлены на рисунках 2, 3.

Рис. 2. Пользовательский интерфейс программы

X У Т

1 -6.87031143293 410Л1270674 -5.08634001496

2 -7.33946157617 3.75472269091 0.308992744103

3 -6.8833523388 1.01085537269 -1.20588Л8943

4 -4.63105986506 3^33517953646 -3.56304377231

5 -3.01439955998 3.56986877936 5.46474669331

6 -2.40877287363 8.38924156343 -143563238413

7 -4.92754574574 4.90354998424 4.092411Л706

8 -5.94006423578 2.00893111555 -5.67567784984

9 -6.31037925911 4.7602623457 1.75097011203

10 -8.61488660015 0.487145255833 2.27356607341

Рис. 3. Результат работы программы Заключение

Представленный алгоритм позволяет при построении расчетной сетки перейти от ручного ввода вариаций входных векторных параметров к их автоматической

генерации, что уменьшает трудозатраты инженера-оператора и исключает влияние человеческого фактора.

Разработанный алгоритм имеет узкоспециализированную направленность на поиск случайных вариаций вектора с ограничениями на изменение каждой компоненты и длины, благодаря чему (в отличии от существующих методов) имеет простую математическую и программную реализацию.

Библиографический список

1. Ляпин А.А., Голунов М.С. Технология разработки программного обеспечения расчета и контроля полетного задания для межконтинентальных баллистических ракет // V Ежегодный форум «Информационные технологии на службе оборонно-промышленного комплекса - 2016». Тезисы докладов. (Челябинск, 17-20 мая 2016). - Челябинск: Издательский дом Connect, 2016. С. 62.

2. Ляпин А.А. Методология тестирования программного обеспечения расчета и контроля полетного задания // XX Юбилейная Международная конференция по вычислительной механике и современным прикладным программным системам. ВМСППС'2017. (Алушта, 24-31 мая 2017). - М.: Изд-во МАИ, 2017. С. 154 - 156.

3. Ляпин А.А. Тестирование программных модулей расчета и контроля полетного задания на основе построения приоритетов исходных // Труды МАИ. 2017. № 97. URL: http://trudymai.ru/published.php?ID=87359

4. Тюгашев А.А., Ильин И.А., Ермаков И.Е. Пути повышения надежности и качества программного обеспечения в космической отрасли // Управление большими системами. 2012. № 39. С. 288 - 299.

5. Ляпин А.А. Программа BTTesting: программа для ЭВМ № 2017664117. Правообладатель: Акционерное Общество «Государственный ракетный центр имени академика В.П. Макеева» (RU). Зарегистрировано 18.12.2017.

6. Ляпин А.А., Тюлькин Б.М. Интегрирование пассивного участка траектории на основе сочетания метода ks-регуляризации с методом Энке // Научные ведомости Белгородского государственного университета. Математика. Физика. 2018. Т. 50. № 1. С. 88 - 96.

7. James Bach. What is Exploratory Testing? available at: http://www.satisfice.com/articles/what is et.shtml

8. Савин Р. Тестирование Дот Ком или пособие по жестокому обращению с багами в интернет-стартапах. - М.: Дело, 2007. - 312 с.

9. Куликов С.С. Тестирование программного обеспечения. - Минск: Четыре четверти, 2015. - 294 с.

10. Dustin E. Effective software testing: 50 specific ways to improve your testing. Copyright © 2003 by Pearson Education, Inc., 2003, 203 p.

11. Бейзер Б. Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем. - СПб.: Питер, 2004. - 318 с.

12. Котляров В.П. Коликова Т.В. Основы тестирование программного обеспечения. - М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2006. - 285 с.

13. Black. R. Critical Testing Processes: Plan, Prepare, Perform, Perfect, Copyright ©2004 by Addison-Wesley, 2004, 608 p.

14. Николаев М.А., Юферов А.Г. Алгоритмы организации вариантных проектных расчетов // Научно-технический вестник Поволжья. 2013. № 6. С. 388 - 393.

15. Полоник Е.Н., Суренский Е.А., Федотов А.А. Автоматизация расчетов усталостной долговечности механических соединений элементов авиаконструкций // Труды МАИ. 2017. № 92. URL: http://trudymai.ru/published.php?ID=76755

16. Уткин В.Б., Балдин К.В. Информационные системы в экономике. - М.: Издательский центр «Академия», 2004. - 288 с.

17. Sommerville I. Software Engineering, Sixth Edition, Pearson Education Limited publ., 2001, 624 p.

18. Blanchette J., Summerfield M. C++ GUI Programming with Qt 4, Prentice Hall publ., 2006, 560 p.

19. Земсков Ю.В. Qt 4 на примерах. - СПб.: БХВ-Петербург, 2008, - 608 с.

20. Шлее М. Qt 4.5. Профессиональное программирование на С++. - СПб.: БХВ-Петербург, 2010. - 896 с.

21. Косова А.С. Особенности отработки программно-алгоритмического обеспечения системы управления движением и формирования консервативной информации одного типа летательных аппаратов // Труды ФГУП "НПЦАП". Системы и приборы управления. 2017. № 2. С. 27 - 36.

22. McConnell S. Code Complete: Second Edition, Mictosof Press, 2004, 896 p

i Надоели баннеры? Вы всегда можете отключить рекламу.