
- •Белорусский государственный университет
- •1. Методы управления запасами
- •1.1. Основные принципы управления запасами
- •1.2. Классификация моделей управления запасами
- •2. Детерминированные модели управления запасами
- •2.1. Статические модели управления запасами
- •2.2. Динамические модели управления запасами
- •3. Вероятностные модели управления запасами
- •3.1. Модели с непрерывным контролем уровня запаса
- •3.2. Многоэтапные модели
- •3.3. Одноэтапные модели
- •3.4. Пример одноэтапной вероятностной модели управления запасом
- •4. Реализация метода в среде delphi
- •4.1. Назначение программы
- •4.2. Расчет программы
- •4.3. Структура программы
- •4.4. Пример сеанса работы
- •Заключение
- •Литература
- •Приложение 1
- •Приложение 2
Заключение
Задачи управления запасами являются одними из самых сложных в математическом смысле. Но эти задачи важны, так как предприятие может терять огромные деньги из-за неправильно рассчитанного сценария управления запасами. Выбор политики управления запасами практически заключается в ответе на один, достаточно простой вопрос: «Какая величина запасов является для предприятия оптимальной?» Очевидно, что запасы нужны для того, чтобы выполнять заказы клиентов на товары в нужном количестве и в установленные сроки. Однако запасы требуют расходов на их содержание, пока они не «дождутся своего часа» и не будут реализованы. Поэтому предприятие должно найти для себя оптимальную стратегия управления запасами.
В ходе курсового проекта были рассмотрены различные методы управления запасами. Но это далеко не все методы. В этом курсовом проекте более подробно были рассмотрены вероятностные одноэтапные модели и разработана программа, позволяющая рассчитать задачи модели с учетом затрат на оформление заказа.
Литература
Таха Х. Введение в исследование операций. М.: Издательский дом “Вильямс”, 2001.–912 с.
Бажин И.И. Информационные системы менеджмента. М.: ГУ-ВШЭ, 2000.- 687 с.
Internetисточники:
http://glspro.narod.ru/teach/index.html
http://www.bkg.ru/cgi-bin/article_detail.pl?id=372
http://nauka.dp.ua/article/Gornoe/10_%CC%E0%EAsimow.htm
http://www.csu.ac.ru/osp/os/1997/02/source/61.html#part_9
Приложение 1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, TeEngine, Series, ExtCtrls, TeeProcs, Chart,
Menus;
type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Memo1: TMemo;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
BitBtn2: TBitBtn;
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Q,h,c,p,Q1,W,W1,R,s1,s2,x,a,b,K,y,f,D,Z,Z1,V:Extended;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='0,5';
Edit2.Text:='25';
Edit3.Text:='0,5';
Edit4.Text:='4,5';
Edit5.Text:='0';
Edit6.Text:='0';
Edit7.Text:='10';
Memo1.Clear;
Memo1.Lines.Add('Курсовой проект Большаковой А.Ю.') ;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Memo1.Clear;
c:=StrToFloat(Edit1.Text);
K:=StrToFloat(Edit2.Text);
h:=StrToFloat(Edit3.Text);
p:=StrToFloat(Edit4.Text);
x:=StrToFloat(Edit5.Text);
a:=StrToFloat(Edit6.Text);
b:=StrToFloat(Edit7.Text);
R:=(p-c)/(p+h);
f:=1/(b-a);
y:=R/f-0;
Q:=(h*f+p*f)/2;
W:=c-p*f*b+h*f*a;
Z:=h*f*sqr(a)/2+p*f*sqr(b)/2-c*x;
Q1:=1
W1:=W/Q;
Z1:=(Z-K-(h*f+p*f)*sqr(y)/2-(c-p*f*b+h*f*a)*y-(h*f*sqr(a)/2+p*f*sqr(b)/2-c*x))/Q;
D:=sqr(W1)-4*Q1*Z1;
if D>=0 Then
Begin
s1:=(-W1+sqrt(D))/(2*Q1);
s2:=(-W1-sqrt(D))/(2*Q1);
end
else
Memo1.Lines.Add('Нет решений');
if (s1>=0) and (s1<=y) then
begin
if x<s1 then
begin
V:=y-x;
Memo1.Lines.Add('делать заказ объемом:'+FloatToStr(V));
end;
if (x>=s1) and (x<=y) Then
Memo1.Lines.Add('заказывать не следует');
if x>y then
Memo1.Lines.Add('заказывать не следует');
end;
if (s2>=0) and (s2<=y) then
begin
if x<s2 then
begin
V:=y-x;
Memo1.Lines.Add('делать заказ объемом:'+FloatToStr(V));
end;
if (x>=s2) and (x<=y) Then
Memo1.Lines.Add('заказывать не следует');
if x>y then
Memo1.Lines.Add('заказывать не следует');
end
else
Memo1.Lines.Add('заказывать не следует');
end;
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Edit1.Text:=' ';
Edit2.Text:=' ';
Edit3.Text:=' ';
Edit4.Text:=' ';
Edit5.Text:=' ';
Edit6.Text:=' ';
Edit7.Text:=' ';
Memo1.Clear;
end;
end.