Одна из функций бортового тренажера заключается в анализе действий космонавта, которые он совершает в процессе подготовки к работе в экстремальных условиях. Эту функцию выполняет анализатор тренажера. Анализатор должен запомнить все действия космонавта, в случае нештатных действий показать к чему они привели и во всех случаях дать оценку действий космонавта в процессе тренировки.

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

• список действий, совершенных космонавтом в процессе тренировки;
• суммарное время, необходимое для выполнения этих действий в реальных условиях;
• список ошибок, если они были, и последствия совершенных ошибок;
• оценку действий космонавта в процессе тренировки.

Транслятор состоит из блока анализа входного текста, набора блоков оценки действий космонавта, которые можно рассматривать как семантические программы транслятора и блока генерации выходного текста. Первым блоком транслятора является блок отображения языка интерфейса символов тренажера во внутренний язык транслятора, последний – блок отображения выходного текста транслятора в интерфейс тренажера. Оба блока по своей структуре и алгоритмам вполне традиционны и в статье рассматриваться не будут.

Перейдем к описанию транслятора.

Построение грамматики внутреннего языка транслятора

Исходные данные для построения грамматики можно задавать разными способами. Сначала, естественно, надо задать алфавит языка. Для построения анализатора удобно строить две грамматики и, соответственно, два алфавита для штатных и нештатных действий космонавта. Соответственно грамматики и алфавиты будем называть "штатными" и "нештатными". Начнем с пояснительного примера.

Введем следующий алфавит языка "штатных" действий космонавта.

Буквой С обозначены сообщения на пульте или звуковой сигнал, буквой D – действия космонавта, С1 – сигнал тревоги, С2 – на центральном пульте горит транспарант "авария" и мигает аварийный сигнал давления, С’3 – перестает мигать аварийный сигнал давления (это не значит, что авария ликвидирована), но звуковой сигнал не отключился, С’’3 – перестает мигать аварийный сигнал давления и звуковой сигнал отключился, С4 – горит транспарант "проверь давление", С5 – горит транспарант "разгерметизация системы терморегулирования транспортного корабля или целевого модуля", С6 – горит транспарант "содержание водорода больше нормы", С7 – мигает транспарант "аварийная сигнализация", С8 – горит транспарант "разгерметизация системы терморегулирования транспортного корабля основной экспедиции", С9 – горит транспарант "разгерметизация системы терморегулирования транспортного корабля экспедиции посещения", С10 – транспортный корабль основной экспедиции находится на переходном отсеке, С11 – транспортный корабль основной экспедиции находится на целевом модуле, С12 – сигнал на табло, позволяющий анализировать ситуацию на центральном пункте базового блока, D1 – выключение аппаратуры, переход к ближайшему центральному пульту целевого модуля, D2 – доклад в центр управления полетов, D3 – отключение звукового сигнала, D4 – переход на центральный пульт базового блока, D5 – переход к пульту по проверке аварийной сигнализации, D6 – действия по указанию Центра управления полетом.

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

В верхней строке и левом столбце таблицы выписаны символы, характеризующие штатные действия космонавта, на пересечении строки х и столбца y указываются время ty выполнения операции y. Если штатный переход из операции x к операции y запрещен – клетка на пересечении строки x и столбца y остается пустой.

Таблица 2

  1 2 3 4 5 6
1            
2 t1       2t5  
3 t1 t2   t4 t5  
4 t1 t2 t3   t5  
5 t1 t2 t3 t4    
6 t1 t2 *t3 *t4 *t5  

Наконец, необходимо отметить операции, которые могут выполняться параллельно и/или выполняться циклически. Это также можно сделать курсором и генерацией какого-либо специального признака (они показаны в табл. 2).

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

Порождение такой грамматики необходимо для двух целей: построение графа действий космонавта для проверки правильности заполнения таблиц; создания грамматики, с которой в дальнейшем будет работать транслятор.

Введем понятие параллельно-временной грамматики. Это шестерка G={VN,VT,P,S,T,F}, где первые четыре множества имеют традиционный смысл: VN – множество нетерминальных символов, VT – множество терминальных символов, S – начальный символ, P – множество грамматических правил, а множества F и T связаны с параллелизмом и временными характеристиками грамматических правил, моделирующих действия космонавта [1].

Множество T состоит из элементов txeT, характеризующих время выполнения космонавтом операций х в реальных условиях.

Множество F={‘, л} состоит из апострофа над левой частью правила, например A’, означающего начало параллельных процессов, и пустого символа л над левой частью правила, например A, означающего линейный переход к правой части правила.

Множество грамматических правил P имеет вид:

<грамматическое правило> Ґ <левая часть правила> Ґ <правая часть правила>;

<левая часть правила>Ґ<нетерминальный символ>|<нетерминальный символ><характеристика цикла>;

<нетерминальный символ> Ґ <нетерминальный символ>| <нетерминальный символ’>;

<характеристика цикла> Ґ <(Crt)> |<(Crn)> | л;

<(Crt)>Ґ<(действительное число)>;

<(Crn)>Ґ<(целое число)>;

лҐ

<правая часть грамматического правила> Ґ <символ> <время реализации>

<символ>Ґ<нетерминальный символ>|<терминальный символ>

<время реализации>Ґ<(Crt)>|л.

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

Из приведенных выше грамматических правил видно, что они могут быть представлены в трех формах:

1) АҐB(tB), где tB – время выполнения операции в моделируемом процессе;

2) А’ҐB(tB), где штрих ‘ у символа левой части правила означает, что символ (в данном случае А) – начало выполнения параллельного процесса. Это значит, что существует по крайней мере еще одно правило вида A’ҐC(tc), которое реализуется "параллельно" с правилом A’ҐB(tB), то есть моделирует параллельно выполняемые операции;

3) Z(tz) Ґ B(tB), где Z – последний символ в циклически повторяемой части строки, B – первый символ в циклически повторяемой части строки

• если tz представлено в формате действительного числа, оно означает время, в течении которого должны выполняться операции, описываемые строками символов, входящих в цикл;

• если tz представлено в формате целого числа, оно означает число повторений операций, описываемых строками символов, входящих в цикл.

Таким образом, это правило моделирует циклическое выполнение последовательности операций.

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

Эта грамматика может быть получена из таблицы типа табл. 1 по следующему алгоритму:

1. В качестве начального символа S выбирается символ, определяемый пустым столбцом матрицы табл. 1. Если таких столбцов несколько – создается фиктивная начальная вершина.

2. В качестве терминальных символов VT выбираются символы, определяемые пустой строкой матрицы табл. 1.

3. В качестве нетерминальных символов VN используются все остальные символы, определяющие строки (и столбцы) матрицы табл. 1 (поскольку в табл. 1 дан только фрагмент алфавита, терминальные символы обозначены буквой e).

4. Множество грамматических правил P определяется значками в клетках матрицы табл. 1.

Если в клетке на пересечении строки Х и столбца Y стоит символ параллельного действия, например* (в табл. 1 не показан) и x(tx), это означает порождение правила типа Х’ҐY(ty).

Если в клетке на пересечении строки X и столбца Y стоит символ x(tx) то, это означает порождение правила типа ХҐY(ty). В нашем примере рассматриваются только эти правила.

Если в клетке табл. 1 на пересечении строки X и столбца Y стоит цифра (на табл. 1 не показана) и символ x(tx) – это означает порождение правила типа X(tx) Ґ Y(ty).

Исходя из табл. 1 может быть получена следующая грамматика: VN – множество нетерминальных символов составляют все символы табл. 1.: С1 – С12, D1 – D6; множество нетерминальных символов Vt состоит только из символа e, т.к. словарь приведен не полностью; начальным символом S является С1; Т – множество временных характеристик действий космонавта и времена получения и анализа информации tD1 – tD6, tC2 – tC12; множество F в нашем примере пусто, т.к. параллельные действия не рассматриваются; и, наконец, множество грамматических правил P, полученных по приведенному выше алгоритму:

С1ҐD1(tD1);    		D1ҐD2(tD12);	   	D2ҐC2(tC2); C2ҐD3(tD3);
D3ҐC’3(tC’3);   	D3ҐC’’3(tC’’3); 	C’3ҐD5(tD5);
C’’3ҐD4(tD4);   	D4ҐC12(tC12);  		D5ҐC4(tC4);
D5ҐC5(tC5);    		D5ҐC6(tC6);     	D5ҐC7(tC7);
C4Ґe;               	C5Ґ C8(tC8);     	C5ҐC9(tC9);
C6ҐD6(tD6);     	C7ҐD6(tD6);     	C8Ґ C10(tC10);
C8ҐC11(tC11); 		C9ҐD6(tD6);     	C10Ґ e;        C11Ґe;
C12Ґ e;            	D6Ґe;

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

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

1. Необходимо породить все правильные строки языка, описываемые грамматикой, т.е. все возможные последовательности действий космонавта.

2. Необходимо показать параллельно выполняемые операции, т.е. генерировать "параллельные строки".

3. Необходимо показать операции, выполняемые циклически.

4. Необходимо указывать время выполнения сценария, т.е. у строки появляется еще один параметр – время.

Для выполнения первых двух особенностей построения графа возможных действий космонавта можно модифицировать известный алгоритм bacrtracking [2]. Идея алгоритма проста: если можно, то идем вперед, порождая цепочки символов, если цепочка порождена – возвращаемся назад до полного перебора всех грамматических правил.

1. i=1.

2. Если i-м элементом является символ А и существует правило АҐВ(tB), где ВeVN, правило помечается и производится конкатенация символа В с порождаемой цепочкой. Символ В становится i+1 символом. За ним в круглых скобках указывается время выполнения обозначаемой им операции.

Пункт 2 повторяется до выполнения условия ВeVT.

Если ВeVT – переход к пункту 3.

3. Если i-м элементом является символ А и существует правило АҐВ(tB), где ВeVT, то правило помечается и производится конкатенация символа В с порожденной цепочкой. За ним в круглых скобках указывается время выполнения обозначаемой им операции. Порождение последовательной цепочки заканчивается.

Переход к пункту 4.

4. Если в точке А есть еще не помеченные правила, то переход к пункту 2.

Если нет, то производится проверка порождены ли символом А строки, которые должны быть объединены в параллельную строку. Если да – производится их объединение, если нет – переход к пункту 5.

5. Производится проверка условия А=S. Если АєS, переход в точке i-1 к пункту 4. Если A=S – конец алгоритма.

Рис. 1
Реализацию третьей особенности легко осуществить развитием только что рассмотренного алгоритма. Пункт 2 алгоритма расширяется правилом: если iм элементом является грамматическое правило типа A(tA) Ґ B(tB), то после символа A(tA) ставится закрывающая фигурная скобка и за ней в круглой скобке ставится значение tA , а перед символом В в порождаемой строке ставится открывающая скобка. Этот фрагмент порожденной строки на графе преображается в петлю цикла.

Таким образом порождаются выходные строки, которые в примере не показываются. Они могут быть выданы САПР в виде строки или в виде графа.

На рис. 1 показан фрагмент дерева штатных действий космонавта, полученный САПР тренажера из грамматики Р. Времена tx на графе не указаны. Узлы помечены символами внутреннего языка транслятора. Естественно при выдаче на дисплей они могут быть обозначены на языке интерфейса тренажера с космонавтом.

Рис. 2
Хорошо известно, что грамматики можно описывать как направленными графами, так и множеством грамматических правил, причем оба описания идентичны и взаимно однозначно отображаются одно в другое. В простых случаях, как на рис. 1, графическое представление нагляднее. Однако, графы со значительно более сложной структурой, например, когда граф должен отображать параллельность действий, их цикличность, сетевые связи и т.п., графическое представление теряет свою наглядность.

Примером того, насколько графическое представление теряет наглядность при увеличении сложности зависимостей между вершинами графами может служить рис. 2 [1]. Исходной таблицей для графа рис. 2 является табл. 2. Ее содержательное описание дано в работе [1] и в данном случае не является существенным. Важно, что наглядность табл. 2 и полученной из нее грамматики Р:

6R1(t1);	5R1(t1);	 4R3(t3);	 2R1(t1);
6R2(t2); 	5R2(t2); 	4R5(t5); 	2(t2)R5(t5);
6’R3(t3); 	5R3(t3); 	3R1(t1);
6’R4(t4); 	5R4(t4); 	3R2(t2);
6’R5(t5); 	4R1(t1);  	3R4(t4);
4R2(t2); 	3R 5(t5),         	

выше, чем, наглядность графа. При этом на графе не показан цикл между вершинами 2 и 5, обозначенный на пересечении 2 строки и 5 столбца табл. 2 цифрой 2, указывающей, что последовательность операций 2 – 5 будет выполнена дважды. В грамматике цикл отражен правилом 2(t2)Ґ 5(t5). На графе также не показана возможность параллельного выполнения операций 6-3, 6-4 и 6-5, обозначенные на табл. 2 символом *, a в грамматике правилами 6’Ґ3(t3); 6’Ґ4(t4); 6’Ґ5(t5).

Для компьютерного анализа последовательность входного текста, в нашем случае последовательности действий космонавта, использование аппарата формальных грамматик оказывается очень эффективным средством [3].

Фиксация и анализ действий космонавта

Если граф типа рис. 1 соответствует инструкции действий космонавтов в данной ситуации, значит грамматические правила Р могут быть использованы для анализа действий космонавта. В зависимости от сложности взаимосвязей действий космонавта может выбираться тот или иной тип грамматики и описывающие эти действия формы грамматических правил. В нашем примере эти связи достаточно просты, просты и правила, отображающие эти связи, поэтому и алгоритмы синтаксического управляемого анализа также элементарно просты. В более сложных случаях могут использоваться достаточно сложные алгоритмы анализа и методы преобразования исходных грамматик к виду, удовлетворяющему требованиям этих алгоритмов [4] .

Общая блок-схема анализатора действий космонавта показана на рис. 3.

Блок 1 считывает первый Х и второй Y входные символы в свою память.

Блок 2 проверяет есть ли правило ХҐY в множестве "штатных" правил. Если да – значит космонавт совершил действие, предусмотренное инструкцией в порядке, предусмотренном инструкцией.

Блок 3 записывает символ Y и время выполнения операции, обозначенной символом у, в выходную строку транслятора (космонавт на этом шаге ошибку не допустил).

Блоки 4 и 5 считывают очередной входной символ в память транслятора.

Блок 6 проверяет является ли очередной входной символ последним.

Блок 7 проверяет принадлежит ли символ Y "штатному" множеству "штатных" символов. Если да – космонавт пропустил какие-то действия, предписанные инструкцией. Тренажер должен указать ему на допущенную ошибку и показать какие действия он пропустил.

Блок 8 ищет в множестве "штатных" правил правила Z Ґ Y, т.е. правила, правой частью которых является Y. Нахождение этих правил позволяет восстановить пропущенные космонавтом действия.

Блок 9 определяет возможные варианты штатных действий, пропущенные космонавтом, находя последовательности правил Xn-1 ҐXn, Xn-2ҐXn-1, ..., X1ҐX2. Символы Xn, Xn-1, ..., X1 обозначают действия, не выполненные космонавтом согласно инструкции. Как это показано ниже таких последовательностей может быть несколько.

Блок 10 записывает символы Xn, ..., X1 вместе с нормативными временами выполнения обозначаемых ими операций в выходную строку транслятора с пометкой , что они космонавтом и не выполнялись.

Блок 11 оценивает ошибки, допущенные космонавтом вследствие невыполнения предписанных инструкцией действий.

Блок 12 проверяет есть ли нештатное грамматическое правило aҐb. (здесь и далее в блоках 12-15 символ Y для указания на то, что он "нештатный", будем обозначать буквой a). Если правило есть, значит в тренажере предусмотрена возможность ошибочного действия космонавта, обозначенное a. Это действие вызывает последствие, обозначенное b.

Блок 13 оценивает ошибку, допущенную космонавтом вследствие выполнения операции, обозначенную символом a.

Блок 14 оценивает последствия этой ошибки и определяет ее фатальность для космической станции и/или космонавта.

Блок 15 записывает символы a и b и оценку ошибки в выходную строку.

Блок 16 записывает символы a, b и признак фатальности ошибки в выходную строку.

Блок 17 выдает выходную строку с частными оценками отдельных действий и интегральной оценкой космонавта, а также нормативными временами выполнения каждой операции.

Блок 18 выдает на выходную строку признак ошибки тренажера.

Блоки 19 и 20 заканчивают работу тренажера с космонавтом.

Простая структура грамматических правил позволяет построить простой алгоритм синтаксического анализа. (Еще раз подчеркнем, что так бывает далеко не всегда). Собственно синтаксический анализ реализуется в блоках 2, 7-9 при поиске "штатного" грамматического правила. Поясним действия этих блоков простым примером.

Блок 2 определяет есть ли для пары последовательно считанных символов х и у правило ХҐY, например, парой символов оказались С2 и D3, (есть правило С2ҐD3(tD3)), значит этот шаг космонавта оказался правильным, следующим шагом должен быть С’3 или С’’3 любой из этих шагов "штатный", т.к. есть правила D3ҐC’3(tC’3) и D3ҐC’’3(tC’’3), но если он сделает другой шаг, например D6, анализатор зафиксирует ошибку, т.к. правила D3ҐD6(tD6) в множестве грамматических правил Р нет.

Обнаружив ошибку анализатор определяет принадлежит ли символ D6 к множеству "штатных" символов (блок 7). Если принадлежит, то анализатор восстанавливает пропущенную цепочку или варианты пропущенных цепочек действий космонавта. В нашем примере вариантов действий космонавта от действия D3 до действия D6 может быть несколько. Восстановление осуществляется двумя блоками 8 и 9.

Блок 8 находит все "штатные" правила, в которых правым символом является Y. В нашем случае это:

С7ҐD6(tD6)
С6ҐD6(tD6)
С9ҐD6(tD6)/

Блок 9 восстанавливает цепочки , одна из которых пропущена. В нашем случае это три цепочки:

С’3, D5, C7;
С’3, D5, C6;
С’3, D5, C9.

Все три цепочки с указанием времени их выполнения блоком 10 записываются в выходную строку и синтаксический анализ действий космонавта продолжается.

Теперь рассмотрим анализ возможных "нештатных" действий космонавта.

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

Например, алфавит нештатных действий космонавта:

a1 – переход к пульту выхода космонавта;

a2 – космонавт не одел противогаз при разгерметизации системы терморегулирования;

a3 – космонавт включил вентилятор при пожаре.

Алфавит последствий нештатных действий космонавтов:

b1 – потеря времени;

b2 – отравление космонавта;

b3 – пожар на космическом корабле.

Множество грамматических правил составляется просто: действие – последствие.

В нашем случае это:

a1Ґb1, a2Ґb2, a3Ґb3.

Анализ ошибочных действий космонавта в этом случае виден из блок-схемы, показанной на рис. 3, и дополнительных комментариев не требует.

Оценка действий космонавта анализатором бортового тренажера

Действия космонавта можно подразделить на три категории:

• безошибочные;

• с ошибками, не влияющими на выполнение программы полета;

• с ошибками, влияющими на выполнение программы полета (приводящими к "гибели" экипажа, орбитального комплекса или к срыву программы полета).

При безошибочной работе космонавта в процессе тренировки анализатор не выставляет ему штрафных баллов.

Ошибки, не влияющие на выполнение программы полета

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

К оценке этих ошибок, как и вообще всех ошибок, подходят по разному. Можно за каждый тип ошибок начислять соответствующий штрафной балл. Например: нарушение требуемой последовательности выдачи команд – 5 баллов, нераспознавание расчетных нештатных ситуаций – 5 баллов, неприведение пультов в исходное состояние – 1 балл и т.д. Все штрафные баллы за время тренировки суммируются и в зависимости от полученной суммы с учетом пороговых значений космонавту выставляется соответствующая оценка: например, если сумма баллов меньше 15 – отлично, сумма больше 15, но меньше 40 – хорошо и т.д.

Рис. 4
Можно подойти иначе. Поскольку эта категория ошибок связана только с потерей времени космонавтом, можно посчитать процент потерянного им времени по шкале, показанной на рис. 4 в качестве примера. Такая шкала, отображающая значения параметра в критериальные оценки, в литературе называется базовой.

Эти оценки можно предъявлять космонавту как за каждую отдельную ошибку, приводящую к задержке в выполнении операций, так и в виде интегральной оценки. Естественно, что проценты, проставленные в базовой шкале в процессе тренировки, могут меняться.

Оценку отдельных ошибок и их суммирование осуществляют блоки 11 и 17 блок-схемы анализатора, показанной на рис. 3.

Заметим, что используя базовые шкалы, аналогичные показанным на рис. 4, можно построить параметрическо-критериальное пространство [1], являющееся прямым декартовым произведением базовых шкал и отображающее параметрическое пространство в критериальное. В общем случае оно многомерное. Функция оценки в этом пространстве зависит не только от критериальных значений физических параметров, но и от "веса", (важности, значимости) каждого критерия (в нашем случае потеря времени, превышение процента содержания кислорода и т.п.). Функция оценки может быть записана в виде p = f(K, X), где К- вектор "весов" критериев, Х – вектор критериальных оценок значений параметров. Вид функции f зависит от характера оцениваемых действий и методики оценки. Обычно это алгебраическая функция, но может быть и более сложная.

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

Преимущество оценок с использованием штрафной функции p по сравнению с простым начислением баллов заключается в большей степени дифференциации оценок действий космонавта. Так, если в нашем примере космонавт потерял только 4% времени, он не получит штрафных очков, несмотря на сделанную ошибку, а при одной ошибке, приведшей к потери свыше 25% времени, ему будет начислено максимальное число штрафных очков.

Ошибки, влияющие на выполнение программы полета

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

Например:

• b10 – неприведение индивидуальных средств защиты в состояние готовности при разгерметизации отсеков – 100 баллов;

• b20 – ошибки, приводящие к необоснованному выполнению срочного спуска – 50 баллов и т.д.

Блок 14 анализатора определяет "фатальность" ошибки. В нем хранится список символов алфавита bI последствий нештатных действий космонавтов, приводящих к "фатальности" последствий, либо константа, определяющая минимальный штрафной балл при "фатальной" ошибке космонавта, например, 50.

Блок 16 анализатора записывает символы a и b, характеризующие действия космонавта, и признак "фатальности" ошибки в выходную строку.

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

Литература

1. Трахтенгерц Э.А. Компьютерная поддержка принятия решений. М.: СИНТЕГ, 1998.
2. Адельсон-Вельский Г.М., Арлазаров В.М., Донской М.В. Программирование игр. М.: Наука, 1978.
3. Трахтенгерц Э.А. Программное обеспечение параллельных процессов. М.: Наука., 1987.
4. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т1. М.: Мир, 1978