Отчет по лабораторной работе № 1 (990249)
Текст из файла
| |
Отчетпо лабораторной работе № 1Проектирование с помощью интеллектуального комплекса СИМПРпо курсу:«Теория принятия решений»Подготовили студенты группы А-16-04Мельников В.А.Новикова М.В.ПроверилаГречкина П.В.Москва, 24.04.2007 года. |
Содержание:
1. Постановка задачи
2. Описание предметной области
3. Описание интерфеса программы
4. Описание табличной модели
5. Приложение: выдержки из программного кода.
Постановка задачи
Задача: сформировать модель принятия решений с помощью интеллектуального комплекса СИМПР в виде совокупности таблиц решений и написать модуль - интерпретатор для данной модели. В таблицах должны быть записаны варианты поведения объекта в выбранной предметной области, и путем обмена этой информацией с программной моделью, на экран должны отображаться действия, описанные в СИМПРе, соответствующие заданным условиям.
Описание предметной области
Предметной областью данной лабораторной работы является оборона морской границы государства. На некотором расстоянии от границы (черная черта на картинке) стоит флагманский крейсер. Он стреляет в приближающиеся к нему корабли. Из множества кораблей он выбирает корабли противника, захватывает их в прицел и производит выстрел. Если корабль противника повержен, то ищется следующий вражеский корабль, если же был промах, то корабль будет стрелять по захваченному кораблю до его уничтожения. Выбор корабля противника происходит путем сканирования сегментов моря. И выбирается ближайший к крейсеру корабль. После пяти выстрелов пушке требуется перезарядка. Хотим отметить, что корабли союзника не выполняют оборонительных функций. В подтексте будем считать, что корабли союзника – перевозят груз (патроны, провиант и т.п.).
В обороне также участвуют самолеты. Есть вражеские самолеты, которые стреляют по пушке на крейсере, и в случае попадания пушка будет находиться некоторое время в неактивном состоянии (в режиме ремонта). И есть самолеты союзника, они стреляют по вражеским кораблям. Самолеты имеют ограниченное количество патронов – 2. После того как оба патрона будут использованы – самолет улетает (убирается из списка активных самолетов). Если же ракеты не были использованы по назначению самолет также улетает к месту дислокации. Также существует три типа состояния патрона (ракеты): ракета исправна, ракету заклинило или ракета неисправна. При первом типа состояния самолет производит выстрел в захваченную в прицел цель. В случае если заряд был неисправен, происходит взрыв ракеты внутри самолета и соответственно самоуничтожение. Если ракету заклинило, то происходит переход ко второй ракете, если же такой не имеется, то самолет просто улетает к месту дислокации своих сил.
Государство считается захваченным, когда хотя бы один корабль противника пересечет критическую линию, проходящую по месту фрахтовки последнего рубежа обороны – флагманского крейсера.
Победа будет одержана тогда, когда все вражеские суда будут уничтожены.
Хотим отметить, что в представленной программной модели существует возможность сделать некоторые предустановки, т.е. перед запуском таймера создания кораблей и самолетов задать такие параметры как, например, установка вероятности появления сил противника и т.п.
Также есть возможность проследить за каждым действием кораблей, крейсера и самолетов. Путем нажатия на соответствующую кнопку появляется окно, на котором показан ход действий каждого из участника сего импровизированного военного действия.
Описание интерфейса
На приведенном ниже рисунке изображено окно программы, каждый активный контролл которого обозначен цифрами. Рассказывая далее об интерфейсе программы, мы будем ссылаться на эти обозначения.
Окно программы разделено на 3 вертикальных сегмента.
На левом сегменте находятся окна задания скорости рассматриваемой модели. Распишем назначение каждого из них:
1. Интервал создания кораблей, в мс (№ 5 на рисунке);
2. За сколько мс корабль сдвинется на 1 px (№ 6 на рисунке);
3. Скорость движения рамки, в мс (№ 7 на рисунке);
4. Вероятность появления вражеского корабля, в % (№ 8 на рисунке);
5. Скорость перезарядки, в мс (№ 9 на рисунке);
6. Время ремонта, в мс (№ 10 на рисунке);
7. Время ожидания патронов, в мс (№ 11 на рисунке);
В центральном сегменте находится окно просмотра дейситвий (№ 12 на рисунке), счетчик создания кораблей (№ 3 на рисунке), показывающий, сколько уже создано кораблей, и счетчик уничтоженных кораблей (№ 4 на рисунке), показывающий, сколько кораблей уже уничтожено. Также на этом сегменте находится 2 кнопки: кнопка запуска таймера создания кораблей (№ 1 на рисунке) и кнопка таймера создания самолетов (№ 2 на рисунке), нажав на которые начнется создание кораблей и самолетов с установленным ранее интервалом времени.
На правом сегменте располагаются информационные показатели:
1. Сколько выстрелов уже произвел крейсер с момента ремонта (№ 15 на рисунке);
2. Сколько снарядов еще осталось у крейсера от текущей партии (№ 16 на рисунке);
3. Сколько ракет осталось у пролетающего в данный момент самолета (№ 17 на рисунке).
На картинке, изображенной под № 18, показано состояние текущей ракеты. Также там можно самому задать это состояние, но уже для следующей ракеты.
Также на правом сегменте располагаются 2 кнопки:
1. Состояние (№ 13 на рисунке).
2. Состояние 2 (№ 14 на рисунке).
Первая кнопка открывает окно действий кораблей и крейсера (т.е. вместо графического изображения действий откроется окно, где эти действия будут описаны путем показа переключения маячка между разными действиями).
Вторая кнопка открывает окно с описанием аналогичных действий, но уже для самолетов.
Описание табличной модели
Данная модель включает в себя 10 таблиц:
Правил: 64
Условий: 48
Действий: 39
Существуют таблицы действий каждого из объектов данной модели: таблица состояния флагманского крейсера, таблица выстрела, таблица действий самолета, таблица действия корабля, таблица действия орудия, таблица попадания или промаха оп цели, таблица состояния снаряда, и т.д.
Приведем ниже таблицы, описывающие модель поведения выбранной нами предметной области:
Приложение: выдержки из программного кода.
// функция, в которую передается управление из WndProc
int TForm1::MProc(Word WParamHi, Word WParamLo, int LParam)
{ switch(WParamHi)
{ case CONDITIONS: // Условия
switch(WParamLo)
{ case 1: // Таблица 1 Состояние форта
switch(LParam) // Номер условия
{ case 1: // Условие 1 Форт захвачен
if (fort_zahvachen)
{ FormSostoyanie->cbFortZahvachen->Checked = true;
return YES;
}
else
{ FormSostoyanie->cbFortZahvachen->Checked = false;
return NO;
}
case 2: // Условие 2 Корабли еще есть
if (Udaleno < MaxShips)
{ FormSostoyanie->cbKorabliEsheEst->Checked = true;
return YES;
}
else
{ FormSostoyanie->cbKorabliEsheEst->Checked = false;
return NO;
}
case 3: // Условие 3 Самолеты еще есть
if (SamoletyEsheEst())
{ FormSostoyanie->cbSamoletyEsheEst->Checked = true;
return YES;
}
else
{ FormSostoyanie->cbSamoletyEsheEst->Checked = false;
return NO;
}
case 4: // Условие 4 Действие кораблей отработано
if (DeystvieKorableyOtrabotano)
{ FormSostoyanie->cbDeystvieKorableyOtrabotano->Checked = true;
return YES;
}
else
{ FormSostoyanie->cbDeystvieKorableyOtrabotano->Checked = false;
return NO;
}
case 5: // Условие 5 Действие самолетов отработано
if (DeystvieSamoletovOtrabotano)
{ FormSostoyanie->cbDeystvieSamoletovOtrabotano->Checked = true;
return YES;
}
else
{ FormSostoyanie->cbDeystvieSamoletovOtrabotano->Checked = false;
return NO;
}
}
break;
case 2: // Таблица 2 Действия орудия
switch(LParam) // Номер условия
{ case 1: // Условие 1 Есть корабль вне текущего сегмента
if (est_korabl_vne_segmenta(active_segment))
{ FormSostoyanie->cbEstKorablVneSegmenta->Checked = true;
return YES;
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














