Uploaded by Герман Пряхин

Otchet 3 4 Melnick

advertisement
Белорусский государственный университет информатики и
радиоэлектроники
Кафедра ПОИТ
Лабораторная работа №3
«Построение и исследование аналитической модели дискретно стохастической системы массового обслуживания»
Вариант 25
Выполнил:
студент гр.551005
Холодок Д. А.
Проверил:
Мельник Н.И.
Минск 2018
1.ЦЕЛЬ РАБОТЫ
Построение аналитической модели дискретно-стохастической системы и расчет
параметров данной системы с использованием построенной модели.
2.ИСХОДНЫЕ ДАННЫЕ К РАБОТЕ
На схеме
условно
обозначены:
t1 = {1, 2} – состояние источника заявок
t2 = {0, 1} – состояние 1-ого канала
t3 = {0, 1} – состояние очереди
t4 = {0, 1} – состояние 2-ого канала
Общий вид кодировки состояния системы:
{t1, t2, t3, t4}
Вариант
ρ
π1
π2
Цель исследования
25
-
0,5
0,5
Pотк, Lоч, Wоч
2
3
3.ХОД РАБОТЫ
Построим граф состояний СМО:
4
На основе графа построим СЛАУ:
Воспользовавшись нормировочным уравнением
и заменив в исходной системе любое уравнение данным, найдем решение
СЛАУ при
заданных π1 и π2:
5
Рассчитаем показатели эффективности:
6
4. РЕЗУЛЬТАТ
ПРОГРАММЫ
РАБОТЫ
5. ПРОГРАММНЫЙ КОД
Scanner scanner = new Scanner(System.in);
int numberCount = scanner.nextInt();
double n1 = scanner.nextDouble();
double n2 = scanner.nextDouble();
SystemQueue queue = new SystemQueue();
FirstChannel firstChannel = new FirstChannel(n1);
Source source = new Source();
SecondChannel secondChannel = new SecondChannel(n2);
source.setFirstChannel(firstChannel);
firstChannel.setQueue(queue);
firstChannel.setSecondChannel(secondChannel);
firstChannel.setSource(source);
queue.setSecondChannel(secondChannel);
queue.setFirstChannel(firstChannel);
secondChannel.setQueue(queue);
Map<String, Integer> states = new HashMap<>();
for(int i = 0; i < numberCount; i++) {
secondChannel.process();
String secondChannelState = String.valueOf(secondChannel.state());
String queueState = String.valueOf(queue.state());
String firstChannelState = String.valueOf(firstChannel.state());
String sourceState = String.valueOf(source.state());
7
StringBuilder stringBuilder = new StringBuilder();
String generalState = stringBuilder
.append(sourceState)
.append(firstChannelState)
.append(queueState)
.append(secondChannelState).toString();
if (states.containsKey(generalState)) {
states.put(generalState, states.get(generalState) + 1);
} else {
states.put(generalState, 1);
}
}
System.out.println("\nStates : ");
states.forEach((state, count) ->
System.out.println(String.format("%s: %.3g", state, count / (numberCount *
1.0))));
System.out.println(String.format("\nSource failure : %.3g", (source.failureCount) /
(source.requestCount * 1.0)));
System.out.println(String.format("First channel failure : %.3g",
(firstChannel.failureCount) / (source.requestCount * 1.0)));
System.out.println(String.format("Summary failure : %.3g", (firstChannel.failureCount
+
source.failureCount) / (source.requestCount * 1.0)));
System.out.println(String.format("Processed : %.3g", secondChannel.processedCount /
(numberCount * 1.0)));
System.out.println(String.format("Queue length : %.3g", queue.length / (numberCount
* 1.0)));
6.
ВЫВОД
В данной работе была исследована дискретно-стохастическая модель
СМО. Для нее был построен граф состояний, на основе которого была
составлена СЛАУ и рассчитаны вероятности нахождения системы в каждом
из состояний. Произведен расчет данных показателей эффективности: Pотк,
Lоч, Wоч. Проведено имитационное моделирование системы. В ходе
сравнения полученных статистических показателей с расчетными
показателями сильных отклонений не выявлено.
8
Download