Имитационное моделирование системы управления запасами с неудовлетворенным спросом
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
?яnamespace std;main(){
//Открытие файлов для сбора статистики=fopen("que1", "wt");=fopen("sojourn", "wt");
//Инициализация генератора случайных чисел((unsigned)time(0));s(72);
//"Черновой" прогон в течение года. 8760 - количество часов в году(total=0L;total<8760;total++) {.run();
}(que); (sojourn);
//сброс статистики=fopen("que1", "wt");=fopen("sojourn", "wt");=0L; =0L; =0L; _orders=0;_ave=0;_ave=0;
//Запись текущей длины очереди в поле данных q_extra перед началом сбора //статистики.q_extra=s.getLength();
//Основной моделирующий цикл(total=0L;total<N;total++){.run();
}(sojourn);(que);(LC_ALL, "Russian");
//Вывод на печать результатов имитационного эксперимента<< "Всего поступило заявок " << entered << endl;<< "Доля потерянных заявок " << ((float)rejected)/entered << endl;<< "Доля немедленно обслуженных заявок " << ((float)satisfied)/entered << endl;<< "Количество заказов " << num_orders << endl;<< "Среднее время ожидания " << soj_ave/24 << " дней" << endl;<< "Средняя длина очереди " << que_ave << endl;
_gettch();
6. Анализ результатов
Многократный прогон модели в течение 6 лет дал следующие результаты:
Рис. 2. Снимок работы программы
количество заявок - 1567;
доля потерянных заявок - 0,088;
доля немедленно удовлетворенных заявок - 0,89;
количество заказов - 22;
среднее время ожидания - 8,2 дней;
средняя длина очереди - 0,109.
Более интересны другие зависимости. Предположим, что мы не можем ни увеличить скорость выполнения заказа, ни снизить требовательность клиентов, ни расширить складские площади для хранения более 72 единиц товара. Тогда получается, что мы можем управлять только периодичностью проверки запасов(она не может быть менее трех недель - срока исполнения заказа) и нижним порогом заказа (он не может превышать 72). В числе показателей эффективности функционирования оставим три: долю потерянных заявок, количество заказов,среднее время ожидания.
На рис. 3-5 приведены зависимости этих показателей от периодичности проверки, все времена измерены в днях. Мы видим, что зависимости эти отнюдь не монотонны, хотя общие тенденции к росту или уменьшению все же сохраняются.
Рис. 3. Зависимость доли потерянных заявок от периодичности проверки запасов
Рис. 4. Зависимость количества заказов от периодичности проверки запасов
Рис. 5. Зависимость среднего времени ожидания от периодичности проверки запасов
Суть его в том, что для данной задачи небольшое увеличение периодичности проверки запасов совсем не обязательно, как это ни странно, приводит к ухудшению показателей, а может, наоборот, значительно их улучшить. Все зависит оттого, в какой момент мы поймаем проверкой запасов ситуацию, когда текущий запас уменьшился до 18. Предположим, что в момент времени T дней он стал равен 17. Если периодичность проверки такова, что проверка произошла на (Т - 1)-й день, то эта ситуация очень нехороша, так как то, что запас меньше критического значения, будет обнаружено очень нескоро, соответственно, нескоро произойдет и пополнение. Если же увеличить периодичность таким образом, что проверка произойдет на несколько дней позже, чем Т, ситуация значительно улучшится, так как время от уменьшения запаса до его пополнения сократится.
Таким образом, если мы, к примеру, хотим обеспечить долю потерянных заявок не более 0,2, периодичность проверки либо должна быть менее 62 дней, либо лежать в интервале приблизительно от 92 до 122 дней (условие задачи этому ограничению как раз удовлетворяет - проверка запасов выполняется раз в 28 дней).Этой же цели, как следует из графика, изображенного на рис. 5, можно достичь, установив нижний уровень заказа не более 5.
Монотонный характер зависимостей, изображенных на рис. 6-8, легко объясним. В процессе работы супермаркета запас товара неуклонно уменьшается, и чем раньше мы начнем бить тревогу (то есть сделаем заказ на его пополнение), тем качественнее обслужим своих клиентов.
Рис. 6. Зависимость доли потерянных заявок от нижнего уровня заказа
Рис. 7. Зависимость количества заказов от нижнего уровня заказа
Рис. 8. Зависимость среднего времени ожидания от нижнего уровня заказа
Можно поставить еще одну интересную задачу. Как видно из приведенных нарисунках графиков, уменьшение доли потерянных заявок и среднего времениожидания сопровождается увеличением количества сделанных заказов, каждыйиз которых может сопровождаться определенными накладными расходами внезависимости от объема заказанного товара. Если степень дискомфорта, кото-рый доставляет нам единица каждой из этих величин, количественно выразитьвесовыми коэффициентами с1, с2, с3, то возникает задача минимизации целевойфункции:
F(P) = с1 Lost + с2 Orders + с3 Tср
или
F(L) = с1 Lose + с2 Orders + с3 Tср,
где Р - периодичность проверки;
Lost - доля потерянных заявок;
Orders - количество заказов;ср - среднее время ожидания;
L - нижний уровень заказа.
Весовым коэффициентам можно придать вполне реальный смысл, если предположить, что за каждую потерянную заявку, за каждый день ожидания клиента и за каждый заказ мы платим определенную сумму и нужно минимизировать общиерасходы. Чтобы приблизительно выровнять значения слагаемых, примем с1 = 15,с2 = 1, Сз = 0,35.
Рис. 9. Зависимость значения критерия от периодичности проверки
Все это реально, так как уход клиента без покупки, да еще с намерением большев эт?/p>