Скачиваний:
100
Добавлен:
15.06.2014
Размер:
52.22 Кб
Скачать

Министерство образования Республики Беларусь

Учреждение образования

«Белорусский государственный университет

информатики и радиоэлектроники»

ФИТУ

Кафедра ИТАС

Отчет

по лабораторной работе №1 «Решение задач моделирования с использованием имитации случайных событий на основе метода Монте-Карло»

по курсу

«Имитационное моделирование систем»

Вариант 6

Выполнили: ст. гр. 020603

Проверил: Севернев А.М.

Минск 2013

  1. Цель работы

1.1 Изучить основные понятия, назначение и принцип работы метода Монте-Карло (раздел 1). Изучить алгоритмы имитации случайных событий на основе метода Монте-Карло и примеры решения задач моделирования с использованием этих алгоритмов (раздел 2).

1.2 Согласно варианту задания разработать алгоритм для решения задачи на основе метода Монте-Карло. Выполнить три испытания разработанного алгоритма.

1.3 Реализовать разработанный алгоритм в виде программы на любом алгоритмическом языке.

2 Условие задачи

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

В 85% случаев изделие не имеет дефектов. В 8% случаев изделие имеет один дефект, в 4% случаев – два дефекта, в 3% случаев – три дефекта. Если изделие оказывается дефектным, то предпринимается попытка устранить все имеющиеся дефекты. Вероятность успешного устранения каждого дефекта – 70%. Если какой-либо дефект устранить не удается, то попытки устранить другие дефекты (если они есть) не предпринимаются, и изделие бракуется.

Затраты на выпуск изделия – 40 ден. ед. Затраты, связанные с попыткой устранения каждого дефекта, составляют 2 ден. ед. (независимо от того, удается ли устранить дефект). Изделия без дефектов (или после устранения дефектов) продаются по 50 ден. ед.

Составить алгоритм и программу (на основе метода Монте-Карло) для определения следующих величин:

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

– средняя прибыль предприятия от выпуска одного изделия.

3 Ход работы

Приведем алгоритм проверки изделия:

– шаг 1 – имитируется наличие дефектов в изделии. Для этого разыгрывается СРРЧ R. Если R < 0,85, то изделие не имеет дефектов и осуществляется переход к шагу 3. Если 0,85 < R < 0,93, то изделие имеет один дефект. Если 0,93 < R < 0,97, то изделие имеет два дефекта. Если 0,97 < R < 1, то изделие имеет три дефекта;

– шаг 2 – имитируется устранение дефектов в изделии. Если дефект один, то разыгрывается СРРЧ R1. Если R1 < 0,70, то дефект считается устраненным. Иначе дефект считается не устраненным и изделие бракуется. Если дефекта два, то разыгрываются СРРЧ R1 и R2. Если R1 < 0,7 и R2 < 0,7, то дефекты считаются устраненными. Иначе изделие бракуется. Если дефекта три, то разыгрываются СРРЧ R1, R2 и R3. Если R1 < 0,7, R2 < 0,7, R3 < 0,7, то дефекты считаются устраненными. Иначе изделие бракуется;

– шаг 3 – вычисляется прибыль (или убыток) от выпуска изделия с учетом затрат на его изготовление, цены, а также затрат на устранения дефектов (если это требовалось).

Шаги 1–3 повторяются многократно, например, 100 000 раз. По окончании испытаний определяется вероятность выпуска годного изделия как отношение количества случаев выпуска годного изделия к общему количеству выпущенных изделий (100 000). Определяется также средняя прибыль от выпуска одного изделия как отношение суммарной прибыли к общему количеству изделий.

Рассмотрим три испытания алгоритма.

Первое испытание. Пусть R = 0,492054. Так как R < 0,85, то изделие не имеет дефектов и осуществляется вычисление прибыли от его выпуска: 50 – 40 = 10 ден. ед.

Второе испытание. Пусть R = 0,859714. Так как 0,85 < R < 0,93, то изделие имеет один дефект. Осуществляется попытка устранить дефект. Пусть R1 = 0,266680. Так как R1 < 0,7, то дефект устранен. Осуществляется вычисление прибыли от выпуска изделия: 50 – 40 – 2 = 8 ден. ед.

Третье испытание. Пусть R = 0,942467. Так как 0,93 < R < 0,97, то изделие имеет два дефекта. Осуществляется попытка устранить дефекты. Пусть R1 = 0,452372, а R2 = 0,893573. Так как R1 < 0,7, а R2 > 0,7, то один дефект не устранен и изделие считается бракованным. Осуществляется вычисление прибыли от выпуска изделия: 0 – 40 – 2 – 2 = -44 ден. ед. То есть предприятие понесло убыток в размере 44 ден. ед.

Приведем программу на языке C++, реализующую алгоритм имитации выпуска и гарантийного ремонта приборов.

// Реализация алгоритма.cpp: определяет точку входа для консольного приложения.

//

#include "stdafx.h"

#define _PRODUCTS_NUMBER 100000

#define _PRODUCT_PRICE 50

#define _PRODUCT_COST 40

#define _DEFECT_COST 2

float getRandomNumber() {

float result = (float)(rand() % 10000) / 10000;

//printf("%f\n", result);

return result;

}

int _tmain(int argc, _TCHAR* argv[])

{

srand(time(NULL));

int productsNumber = _PRODUCTS_NUMBER;

int profit = 0;

int validProductsNumber = 0;

int productPrice = _PRODUCT_PRICE;

int productCost = _PRODUCT_COST;

int defectCost = _DEFECT_COST;

for (int i = 0; i < productsNumber; i++)

{

int defectsNumber = 0;

int sellPrice = productPrice;

int defectsPrice = 0;

float R = getRandomNumber();

if (R < 0.85)

{}

else if (R < 0.93)

{

defectsNumber = 1;

}

else if (R < 0.97)

{

defectsNumber = 2;

}

else

{

defectsNumber = 3;

}

for (int i = 0; i < defectsNumber; i++)

{

defectsPrice += defectCost;

float R = getRandomNumber();

if (R > 0.7)

{

sellPrice = 0;

break;

}

}

if (sellPrice == productPrice)

{

validProductsNumber++;

}

profit += sellPrice - productCost - defectsPrice;

}

float validProductChance = (float)validProductsNumber / productsNumber;

float averageProfit = (float)profit / productsNumber;

printf("Вероятность выпуска годного изделия: %.4f\n", validProductChance);

printf("Средняя прибыль от выпуска одного изделия: %.4f\n", averageProfit);

getchar();

return 0;

}

Результаты имитации следующие: вероятность выпуска годного изделия – примерно 0,9441 (т.е. около 94%), средняя прибыль от выпуска одного изделия – около 6,8050 ден.ед.

4 Выводы

4.1 Изучили основные понятия, назначение и принцип работы метода Монте-Карло. Изучили алгоритмы имитации случайных событий на основе метода Монте-Карло и примеры решения задач моделирования с использованием этих алгоритмов.

4.2 Согласно варианту задания разработали алгоритм для решения задачи на основе метода Монте-Карло. Выполнили три испытания разработанного алгоритма.

4.3 Реализовали разработанный алгоритм в виде программы на языке С++.

2

Соседние файлы в папке Лаба 1 - 8 Лабы
  • #
    15.06.201452.22 Кб1001.doc
  • #
    15.06.201419.51 Кб1181.xlsm
  • #
    15.06.201447.66 Кб1142,3,лаба.xlsm
  • #
    15.06.201461.62 Кб1012,3.xlsm
  • #
    15.06.201426.06 Кб1004 (2).xlsm
  • #
    15.06.201424.1 Кб1014.xlsm