Материал: экз

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

МИНОБРНАУКИ РОССИИ

Федеральное государственное автономное образовательное учреждение

высшего образования «Национальный исследовательский университет

«Московский институт электронной техники»

Дисциплина «Теория игр и исследование операций»

Профессиональный экзамен:

«Пополнение реального склада»

Выполнила:

Студентка группы ПМ – 41

Руководитель: Лисовец Ю.П

Москва 2019

Оглавление

Параметры исследуемой модели. 3

Действующая стратегия. 3

Параметры исследуемой модели.

  1. Время ожидания пополнения склада после заказа – 5 дней.

  2. Время отложенного платежа после доставки заказа – 15 дней.

  3. Закупочная цена за единицу товара – 1 у.е.

  4. Конкурентно-способная продажная цена единицы товара – 2 у.е.

  5. Цена единицы товара в условиях дефицита – 1.5 у.е.

  6. Стоимость пополнения склада независимо от размера партии – 10 у.е.

  7. Стоимость хранения единицы товара (в день) после истечения 15 бесплатных дней хранения – 0.05 у.е.

  8. Начальное количество товара на складе – 100 ед.

  9. Начальное число средств у предприятия – 100 у.е.

Действующая стратегия.

Рассмотрим действующую стратегию, основываясь на предоставленных данных. (Все данные заданы в таблице sklad.xlxs)

  • и говоришь, что в дефицит не продаем(в минус не продаем)

  • и иллюстрируешь это графиком склада

  • видишь, в конце на обоих графыиках горизонтальная площадка

  • типа продаж нет = прибыли нет

  • по поводу графика прибыли - показываешь, что когда идут продажи(график склада идет вниз) прибыль растет, а когда приходит время расплачиваться(через 15 дней после заказа(день заказа - красная точечка)), то прибыль падает

  • если спросит, почему бугорок с 20 по 25 день на графике прибыли - скажешь, что товар как раз завезли(прошло 5 дней), и пока время расплачиваться не пришло, продажи шли, прибыль шла в плюс

  • И главное, если я правильно понял, он на списывании попалил Гошу и просит в икселе все делать. На что говоришь, что ты не в курсе, и показываешь, как создать новый файл иксель(ну, или втираешь свой файл ему, что твои данные, твой вариант и все такое), показываешь вторую строку кода, где импортируются данные, и говоришь с умным видом, что фишка в том, чтобы преобразовать дату в числовой вид и тогда матлаб нормально скушает данные

K = 160; % коэффициент

Приложение

clc; close all;

[D, metka]=xlsread('Lemza.xlsx');

% % состояние склада

Days = D(:,2); % Дата в числовом формате

Days = fix(Days - Days(1)); % Число дней с начала продаж

vvod = 0; l = 1; trata = 0; k = 1;

Q=zeros( 1,fix(Days(end)) );

% Q(1) = 380; % в начальный момент

Q(1) = 100; % в начальный момент

for i = 2:1:fix(Days(end))

for j=2:1:length(metka(:,4))

if ( Days(j-1)==i )

if ( strcmp(metka(j,4),'бн') || strcmp(metka(j,4),'н') )

Q(i) = Q(i) - abs(D(j-1,3));

trata(k) = j; k = k + 1;

end

if ( strcmp(metka(j,4),'vvod') )

Q(i) = Q(i) + abs(D(j-1,3));

vvod(l) = j; l = l + 1;

end

end

end

end

for i = 2:1:fix(Days(end))

Q(i) = Q(i-1) + Q(i);

end

% прибыль

Q_new=[];

Q_new=Q;

P=zeros( 1,Days(end)+15 ); % прибыль

P(1) = 100; % в начальный момент

% %%%%%%%%%%%%%%%%%

% % оптимизация

% P_all=[]; s=1;

% for K=5:5:300

Q1 = zeros( 1,Days(end) ); % массив только для расхода со склада

for i = 2:1:Days(end)

for j = 2:1:length(trata)

if ( Days(trata(j)-1)==i )

Q1(i) = Q1(i) - abs(D(trata(j)-1,3));

end

end

end

Q1_new = zeros( 1,Days(end) ); % количество товара на складе

Q1_new(1) = Q(1);

for i = 2:1:Days(end)

Q1_new(i) = Q1_new(i-1) + Q1(i);

end

v = zeros( 1,Days(end) ); % средняя скорость потребления товара

N = zeros( 1,Days(end) ); % предположительно, на сколько дней хватит товара

R = zeros( 1,Days(end) ); % на сколько надо поплнить склад

Rf = 0; % поправка

K = 160; % коэффициент

n = 1; i = 1;

vvod1=[];

for i = 1:10:Days(end)

v(i) = abs( sum(Q1(1:i)) / i );

N(i) = ( Q1_new(i) + Rf ) / fix( v(i) );

if ( N(i) < 5 )

R(i) = fix( v(i) * K );

if ( Q1_new(i) < 0 )

R(i) = R(i)-Q1_new(i);

end

vvod1(n) = i; n = n + 1;

if ( i+5 < Days(end) )

Q1_new(i+5:end) = Q1_new(i+5:end) + R(i);

end

end

if (i-5 > 1)

Rf = sum(R(i-5:i));

else

Rf = sum(R(1:i));

end

end

% результаты

figure; grid on; hold on;

plot(Q1_new(1:end-n))

if vvod1 ~= 0

plot(vvod1, 0,'r*')

end

xlabel('Дни');

ylabel('Кол-во товаров');

title('Состояние склада');

% пересчитаем прибыль и сравним с предыдущим значением

P1=zeros( 1,Days(end)+15 ); % прибыль

P1(1) = 100; % в начальный момент

for i = 1:1:Days(end)

for j = 1:1:length(trata)

if ( Days(trata(j)-1)==i )

% доходы

if ( Q(trata(j))>0 )

P1(i) = P1(i) + abs(D(trata(j)-1,3))*2;

else

P1(i) = P1(i) + abs(D(trata(j)-1,3))*2;

end

% расходы

for k = 1:1:length(vvod1)

if ( vvod1(k)==i )

if ( Q1_new(i)>0 )

if ( Days(trata(j)-1)-vvod1(k) > 15 )

P1(i) = P1(i) - Q1_new(i)*0.05;

end

end

end

end

end

end

for j = 1:1:length(vvod1)

if ( vvod1(j)==i )

P1(i) = P1(i) -10;

P1(i+15) = P1(i+15) - R(vvod1(j));

end

end

end

for i = 2:1:Days(end)+15

P1(i) = P1(i-1) + P1(i);

end

figure; grid on; hold on;

plot(P1(1:end-18),'r')

xlabel('Дни');

ylabel('Прибыль');

title('Прибыль');