Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Пример – Вычисление величины опциона

Разреженное производное множество — пример 2 | Условие принадлежности элементов множеству — Пример 1 | Условие принадлежности элементов множеству — Пример 2 | Обобщенные целочисленные переменные | Бинарные целые переменные | Освобожденные» переменные и простые границы | Ввод из файлов с помощью @FILE | Функция @IMPORT | Пакетные файлы LINGO | Распределение Пуассона |


Читайте также:
  1. Boot (англ. загрузка. Пример: основной загрузочный сектор) -вирусы
  2. D.1. Примеры уязвимостей
  3. I. Относительные величины
  4. III. После этого раненую конечность лучше всего зафиксировать, например, подвесив на косынке или при помощи шин, что является третьим принципом оказания помощи при ранениях.
  5. SWOT- анализ на примере ветеринарной аптечной сети.
  6. SWOT-анализ на примере ветеринарной аптечной сети.
  7. VII. Примерный перечень вопросов к зачету

 

Следующая модель иллюстрирует использование функций @LOG и @EXP для вычисления опциона с помощью формулы Блэк-Шуля.

Требование опциона является финансовым инструментом, который дает право владельцу купить долю акций по заданной цене (exercise price) по истечении или до заданного срока хранения. Обычно возникает вопрос «Как много кто-либо будет готов заплатить за такой опцион?». Мы легко можем определить границы, в которых мы будем готовы платить.

Предположим, что цена акций равна $105, и мы имеем возможность купить опцион с контрольной ценой в $100. Мы должны быть готовы заплатить по крайней мере $5 за опцион, поскольку мы можем, как минимум, купить акции по $100 и немедленно продать их по цене $105, получив прибыль в $5. Таким образом, когда цена акции превышает контрольную цену, мы готовы заплатить по крайней мере разницу в ценах.

Когда контрольная цена превышает цену акций, тогда покупка по контрольной цене и продажа по рыночной цене уже не будет разумным опционом. В этот момент минимальной ценой, которую мы будем готовы заплатить, будет 0.

В любом случае, максимум, что мы будем готовы заплатить за опцион, является превышение текущей цены над базовой ценой акций. Предположим, что цена опциона стала больше цены акций. Тогда мы можем получить ожидаемый возврат при минимальной цене, выкупив акции.

Следующий график иллюстрирует границы значения опциона как функции цены основного пакета акций.

 

 

К сожалению, эти границы не являются достаточно надежными. В действительности функция значения опциона больше походит на кривую на этом графике. Точная форма этой кривой зависит от трех дополнительных факторов. 1) время хранения, 2) от непостоянства цены акций и 3) от процентной ставки. Основная идея формулы для кривой P ускользала от исследователей, пока в 1973 году ее не исследовали Фишер Блэк и Майрон Шуль.

Следующие две модели используют два различных подхода для оценки значения спроса на опцион акций компании National Semiconductor. Первая модель использует формулу Блэк-Шуля, а вторая — технику динамического программирования. Вариант Блэк-Шуля для цены опциона дает значение $6.58, а динамическое программирование — значение $6.55. Действительная стоимость опциона, приведенная в журнале Wall Street равна $6.63

 

OPTION.LNG USING BLACK-SCHOLES

Тип модели: прямая задача

MODEL:

1]!Вычисление значение опциона, используя формулу Блэк-Шуля

2] (см "The Pricing of Options and Corporate Liabilities",

3] Journal of Political Economy, May-June, 1973);

4]

5]SETS:

6]

7]!Ьы имеем цены за 27 недель P(t), LOGP(t)— логарифм цен;

8] WEEK/1..27/: P, LOGP;

9]

10]ENDSETS

11]

12]DATA:

13]! Недельные цены национальной компании полупроводников;

14] P=26.375, 27.125, 28.875, 29.625, 32.250, 35.000,

36.000,

15] 38.625, 38.250, 40.250, 36.250, 41.500, 38.250,

41.1G25,

16] 42.250, 41.500, 39.250, 37.500, 37.750, 42.000,

44.000,

17] 49.750, 42.750, 42.000, 38.625, 41.000, 40.750;

18]

19]! Текущая цена акций;

20] S = 40.75;

21]

22]! Время до истечения срока опциона, выраженное в годах;

23] T =.3644;

24]

25]! Цена исполнения опциона по истечении срока;

26] K = 40;

27]

28]! Годовая процентная ставка;

29] I =.163;

30]

31]ENDDATA

32]

33]SETS:

34]

35]! We will have one less week of differences;

36] WEEK1(WEEK)| &1 #LT# @SIZE(WEEK): LDIF;

37]

38]ENDSETS

39]

40]! Возьмем логарифм от недельной разницы в курсах;

41] @FOR(WEEK: LOGP = @LOG(P));

42]

43]! И разность в логарифмах;

44] @FOR(WEEK1(J): LDIF(J) = LOGP(J + 1) - LOGP(J));

45]

46]! Вычислим среднее разницы в курсах;

47] MEAN = @SUM(WEEK1: LDIF)/ @SIZE(WEEK1);

48]

49]! И вариацию;

50] WVAR= @SUM(WEEK1: (LDIF - MEAN)^2)/(@SIZE(

WEEK1) -1);

51]

52]! Получим годовую вариацию и стандартное отклонение;

53] YVAR = 52 * WVAR;

54] YSD = YVAR^.5;

55]

56]! Это формула Бдэк_шуля для вычисления опциона;

57] Z = ((I + YVAR/2) * T + @LOG(S/ K))/(YSD *

T^.5);

58]

59]! где VALUE ожидаемое значение опциона;

60] VALUE = S *@PSN(Z) - K *@EXP(- I*T) *@PSN(Z -YSD*

T^.5);

61]

62]! Цена по котировкам Уолл-стрита для этого опциона

63] когда оставалось 133 дня до выплаты составляла $6.625;

END

 

Решением является:

 

VARIABLE VALUE

S 40.75000

T.3644000

K 40.00000

I.1630000

MEAN 0.1673228E-01

WVAR 0.5216191E-02

YVAR.2712420

YSD.5208089

Z.4052107

VALUE 6.576051

 

Формула Блэк-Шуля говорит, что цена должна быть $6.58. Действительная цена, указанная в Wall Street Journal, за 133 дня по истечении срока была $6.625.


 

OPTIONB.LNG BINOMIAL PRICING MODEL

Тип модели: прямая задача

MODEL:

1]SETS:

2]

3]! Биномиальная модель опционных выплат: Мы предполагаем, что

4]цена выплат может расти за некоторый период

5] с вероятностью PUP, или уменьшаться

6]с вероятностью (1 - PUP). При таком предположении,

7]выплаты по акциям распределены по биномиальному закону.

8]Кроме того, симметрия вероятностей позволяют

9]нам построить рекурсию динамического программирования для

10]определения величины опциона;

11]

12]! Номера периодов, например, недель;

13] PERIOD /1..20/:;

14]

15]ENDSETS

16]

17]DATA:

18]

19]! Текущая цена акций;

20] PNOW = 40.75;

21]

22]! Цена опциона к моменту выплат;

23] STRIKE = 40;

24]

25]! Годовая процентная ставка;

26] IRATE =.163;

27]

28]! Логарифм недельной вариации цены акций;

29] WVAR =.005216191;

30]

31]ENDDATA

32]

33]SETS:

34]

35]!Построим нашу матрицу состояний для DP. STATE(S, T) может

36]быть выведено из from STATE(S, T - 1) если акции падают, или

37] выведены из STATE(S - 1, T - 1) если акции

38] растут;

39] STATE(PERIOD, PERIOD)| &1 #LE# &2:

40] PRICE,! это цена акций, и...;

41] VAL;! величина выплат;

42]

43]ENDSETS

44]

45]! Вычислим количество периодов;

46] LASTP = @SIZE(PERIOD);

47]

48]! Получим недельную процентную ставку;

49] (1 + WRATE) ^ 52 = (1 + IRATE);

50]

51]! Недельный дисконт;

52] DISF = 1/(1 + WRATE);

53]

54]! Используем тот факт, что если LOG(P) является нормальным

55] распределением мат. ожиданием LOGM и дисперсией WVAR,

56] то P имеет мат. ожидание EXP(LOGM + WVAR/2), находя

57] LOGM из уравнения LOGM = @LOG(1 + WRATE) - WVAR/ 2;

58]

59]! Получим log фактора роста;

60] LUPF = (LOGM * LOGM + WVAR) ^.5;

61]

62]! Действительный фактор роста;

63] UPF = @EXP(LUPF);

64]

65]! И фактор понижения;

66] DNF = 1/ UPF;

67]

68]! Вероятность роста;

69] PUP =.5 * (1 + LOGM/ LUPF);

70]

71]! Инициализируем ценовую таблицу;

72] PRICE(1, 1) = PNOW;

73]

74]! Сначала вычислим состояния, в которых имеется падение в каждый период;

75] @FOR(PERIOD(T) | T #GT# 1:

76] PRICE(1, T) = PRICE(1, T - 1) * DNF);

77]

78]! Теперь вычислим все остальные S, для периода T;

79] @FOR(STATE(S, T)| T #GT# 1 #AND# S #GT# 1:

80] PRICE(S, T) = PRICE(S - 1, T - 1) * UPF);

81]

82]! Установим значение для последнего периода;

83] @FOR(PERIOD(S):

84] VAL(S, LASTP) = @SMAX(PRICE(S, LASTP) -STRIKE,

0));

85]

86]! Выполним динамическое программирование;

87] @FOR(STATE(S, T) | T #LT# LASTP:

88] VAL(S, T) = DISF * (PUP * VAL(S + 1, T + 1) +

89] (1 - PUP) * VAL(S, T + 1)));

90]

91]! И наконец, получим значение выплат опциона;

92] VALUE = VAL(1, 1);

93]

END

Решением является

 

VARIABLE VALUE

PNOW 40.75000

STRIKE 40.00000

IRATE.1630000

WVAR 0.5216191E-02

LASTP 20.00000

WRATE 0.2908122E-02

DISF.9971003

LOGM 0.2958059E-03

LUPF 0.7222381E-01

UPF 1.074896

DNF.9303227

PUP.5020478

VALUE 6.549348

 


Планирование потребности
в материалах (MRP — Material Requirement Planning)

 

MRP.LDT DATA FOR MRP.LNG

 

В задаче о планировании потребности в материалах согласовывается производство и приобретение компонент, из которых состоит результирующее изделие. Каждое изделие составляется из некоторого набора компонент. Каждый их компонент в свою очередь может собираться из других подкомпонент.

Задаваясь временным графиком потребностей в конечном продукте, мы должны знать, когда и сколько нам потребуется компонент, изделий и т.п. Для простоты и общности будем называть все изделия, компоненты и подкомпоненты частями.

Предположим, что вы производите велосипеды. Вашими конечными изделиями являются:

1. Одноколесные велосипеды, состоящие из сиденья и колеса.

2. Двухколесные велосипеды, состоящие из сиденью, двух колес и цепи.

3. Велосипеды-тандемы (двухколесный велосипед для двоих), состоящий из двух сидений, двух колес и двух цепей.

Подкомпонентами в свою очередь являются:

1. Сиденья.

2. Колеса, для изготовления которых требуется 1 втулка и 36 спиц.

3. Цепи, состоящие из 84 звеньев.

4. Втулки.

5. Спицы.

6. Звенья цепей.

Требуется вполне определенное время, называемое сроком разработки, для создания каждой из групп частей. Все детали для каждой части должны иметься под рукой, когда вы начинаете сборку этой части.

Мы хотим составить план работ на восемь недель, так чтобы была уверенность, что мы сможем обеспечить внешние потребности в 10 одноколесных велосипедов в восьмой неделе, а также 20 двухколесных велосипедов и 20 тандемов в девятой неделе.

Ниже приведена суммарная информация, необходимая нам, чтобы спланировать необходимый перечень изделий. В действительности это файл, который в модели будет вызываться функцией @FILE.

 

! Список частей;

U,! Unicycles (одноколесные);

B,! Bicycles (двухколесные);

T,! Tandems (тандемы);

S,! Seats (сиденья);

W,! Wheels (колеса);

C,! Chains (цепи);

H,! Hubs (втулки);

P,! spokes (спицы);

L~! Links (звенья цепи);

! Множество периодов;

1..9 ~

! Взаимосвязи «родитель-потомок» (например, «Одноколесник»

использует Сиденья, и т.п.);

US, UW, BS, BW, BC, TS, TW, TC, WH, WP, CL~

! Количество частей-потомков, требуемых в каждой соответствующей

зависимости родитель-потомок (например, «одноколесник»

использует 1 сиденье, колесо использует 36 спиц, и.т.п.);

1, 1, 1, 2, 1, 2, 2, 2, 1, 36, 84~

! The lead times for each part;

1, 2, 1, 1, 3, 1, 1, 2, 2~

! Внешние потребности или график работ;

! Time period;

! 1 2 3 4 5 6 7 8 9;

! U; 0, 0, 0, 0, 0, 0, 0,10, 0,

! B; 0, 0, 0, 0, 0, 0, 0, 0,20,

! T; 0, 0, 0, 0, 0, 0, 0, 0,20,

! S; 0, 0, 0, 0, 0, 0, 0, 0, 0,

! W; 0, 0, 0, 0, 0, 0, 0, 0, 0,

! C; 0, 0, 0, 0, 0, 0, 0, 0, 0,

! H; 0, 0, 0, 0, 0, 0, 0, 0, 0,

! P; 0, 0, 0, 0, 0, 0, 0, 0, 0,

! L; 0, 0, 0, 0, 0, 0, 0, 0, 0

 

Напомним, что символ тильды «~» используется в LINGO в качестве метки конца записи. Последняя запись не имеет этого символа, так что LINGO непосредственно перейдет к метке конца файла и закроет файл. Вы можете разделять отдельные элементы в записи с помощью запятой, пробела или символа табуляции.

Например, данные типа «родитель-потомок» указывают, что для каждого одноколесного велосипеда (U) требуется одно сиденье (S), для каждого колеса (W) требуется 36 спиц (P), для каждой цепи (C) — 84 звена и т.д.

Вышеприведенные данные записаны в файле MPR.LDT в поддиректории «Samples». Следующая модель распознает этот файл и выполняет все операции планирования.

 

MRP.LNG MATERIAL REQ. PLANNING

 

 

Тип модели: линейное планирование

 

MODEL:

1]! Данные для конкретной MRP задачи берутся из файла MRP.LDT;

2] SETS:

3]! Множество частей;

4] PART/ @FILE(MRP.LDT)/: LT;

5]! LT(i) = Время изготовления части i;

6]

7]! Множество временных периодов;

8] TIME / @FILE(MRP.LDT)/;

9]

10]!Связь «использует» между парами частей;

11] USES(PART, PART) /@FILE(MRP.LDT) /: NEEDS;

12]! Для части-родителя i необходимо NEEDS(i, j)

13] частей-потомков j;

14]

15]! Для каждой части и временного периода на интересует;

16] PXT(PART, TIME): ED, TD;

17]! ED(i, j) = внешняя потребности в части i за период j;

18]! TD(i, j) = Общая потребность в части i в момент j;

19] ENDSETS

20]! Set NP = количество временных периодов;

21] NP = @SIZE(TIME);

22]

23]! Для каждой части I и периода J, суммарная потребность =

24] внешний спрос + потребность, обусловленный временем

25] изготовления части родителя в будущем;

26] @FOR(PXT(I, J) | J + LT(I) #LE# NP:

27] TD(I, J) = ED(I, J + LT(I)) + @SUM(USES(PR, I):

28] TD(PR, J + LT(I)) * NEEDS(PR, I));

29]);

30]

31] DATA:

32]! Вычислим количество частей, требуемых каждой связью «родитель-потомок»;

33] NEEDS = @FILE(MRP.LDT);

34]

35]! Возьмем график работ из внешнего файла;

36] LT = @FILE(MRP.LDT);

37]

38]! Получим внешнюю потребность за все промежутки времени для каждой части;

39] ED = @FILE(MRP.LDT);

40]

41] ENDDATA

END

Ключевым множеством в модели является производное множество USES(PART,PART). Оно является разреженным множеством. В нем имеется по одному элементу для каждой используемой связи между парами частей. В нашем примере с велосипедами пара T,S является элементом этого множества. Атрибут NEEDS(T,S) определяет сколько требуется частей S для каждой части T (в нашем примере — два).

Для того, чтобы увидеть решение только для ненулевых значений переменной TD, вызовите команду Solution… в меню LINGO и поставьте отметку в поле «Nonzeros only», введите имя TD в поле «Attribute name» и нажмите кнопку OK.

Полученное решение будет иметь вид:

 

VARIABLE VALUE

TD(U,7) 10.00000

TD(B,7) 20.00000

TD(T,8) 20.00000

TD(S,6) 30.00000

TD(S,7) 40.00000

TD(W,4) 50.00000

TD(W,5) 40.00000

TD(C,6) 20.00000

TD(C,7) 40.00000

TD(H,3) 50.00000

TD(H,4) 40.00000

TD(P,2) 1800.000

TD(P,3) 1440.000

TD(L,4) 1680.000

TD(L,5) 3360.000

 

Этот отчет говорит, что необходимо иметь 40 сидений для начала работы в седьмой неделе. Это требование является результатом потребности в 20 тандемов в начале 9 недели и времени изготовления тандемов и сидений. Общая потребность в звеньях цени, равная 1680+3360=5040, является результатом следующего выражения (20 двухколесных велосипедов)*(1 цепь на двухколесник)*(84 звена на цепь)+(20 тандемов)*(2 цепи на тандем)*(84 звена на цепь).

 


Цепи Маркова

 

Общепринятым приближением при моделировании систем, поведение которых случайным образом меняется во времени, является приближение «цепей Маркова». Детали можно найти в стандартных учебниках по исследованию операций или теории вероятности. Основной идеей такого подхода является представление системы в виде дискретного набора состояний в некоторые моменты времени. Поведение такой системы описывается матрицей переходов, которая определяет вероятности того, что система перейдет из данного состояния в другое. Примерами таких ситуаций могут являться:

 

Система Состояние Причина смены состояния
Изменение мнения потребителя к товарному знаку Товарный знак, которому отдают предпочтение потребители Потребитель изменил свой мнение в следствие рекламы
Система материальных запасов Количество запасов, имеющихся в наличии Заказы на новые материалы, новые запросы.

 

Пример

 

Мы готовимся выпустить в продажу новое моющее средство и нам интересно знать, принесет ли это прибыль на рынке: какова должна быть долгосрочная стратегия на рынке? Наш товар будет конкурировать с уже имеющимися на рынке тремя другими видами этой продукции. В результате небольших тестов и интервью с покупателями, знакомыми со всеми четырьмя видами продукции, мы определили следующую матрицу переходов различных состояний покупок:

 

  Следующая покупка
Текущая покупка   А B C D
A 0.75 0.1 0.05 0.1
B 0.4 0.2 0.1 0.3
C 0.1 0.2 0.4 0.3
D 0.2 0.2 0.3 0.3

В этой матрице нашим новым моющим средством является элемент А. Смысл значений в этой матрице состоит, например, в том, что если некто, купил в последний раз товар А, то с вероятностью 0.75 в следующую покупку он отдаст предпочтение также товару A. Также, тот, кто последний раз покупал товар B, в следующий раз купит товар D с вероятностью 0.3. Наш знакомый, который взглянул на эту таблицу, сказал: «Ага, мы ожидаем заполучить в перспективе 75% рынка с нашим товаром A». «Прав ли он?»

 

Анализ

Ключевое уравнение для выполнения долгосрочного анализа может быть сформулировано в словесной форме следующим образом:

Вероятность{нахождения в состоянии j в некоторый момент в будущем}=Сумме по всем состояниям i I: Вероятность{в состоянии i }*Вероятность{перехода из состояния i в состояние j }.

К этому надо добавить условие:

Сумма по всем состояниям i вероятностей{нахождения в состоянии i}=1.

Ниже приведенная модель LINGO обеспечивает выполнение обоих указанных условий применительно к данным нашего примера.

 

MARKOV.LNG STEADY STATE EQUILIBRIUM

 

 

Тип модели: Линейное программирование

MODEL:

1]! Модель цепи Маркова;

2] SETS:

3]! В нашей модели имеется четыре состояния и со временем

4] модель переходит в равновесное состояние.

5] SPROB(J) = вероятность равновесного состояния;

6] STATE/ A B C D/: SPROB;

7]

8]! Для каждого состояния имеется вероятность перехода в

9] каждое из других состояний. TPROB(I, J) = вероятность перехода;

10] SXS(STATE, STATE): TPROB;

11] ENDSETS

12] DATA:

13]

14]! Вероятности переходов. Ниже приведены вероятности из

15] одного состоянию к следующему для каждого периода. Наша

16] модель имеет четыре состояния, для каждого периода имеется

17] вероятность перехода в каждое из четырех состояний. Сумма

18] вероятностей вдоль каждой строки равна 1, т.к. система

19] либо переходит в новое состояние, либо остается в исходном;

20] TPROB =.75.1.05.1

21].4.2.1.3

22].1.2.4.3

23].2.2.3.3;

24] ENDDATA

25]

26]! Модель;

27]! Уравнения стационарных состояний;

28]! Требуется только N уравнений;

29] @FOR(STATE(J)| J #LT# @SIZE(STATE):

30] SPROB(J) = @SUM(SXS(I, J): SPROB(I) * TPROB(I, J));

31]);

32]

33]! Сумма вероятностей стационарных состояний должна быть 1;

34] @SUM(STATE: SPROB) = 1;

35]

36]! Проверка исходных данных, предупреждение пользователю,;

37] если сумма вероятностей в строке не равна 1.;

38] @FOR(STATE(I):

39] @WARN('Probabilities in a row must sum to 1.',

40] @ABS(1 - @SUM(SXS(I, K): TPROB(I, K)))

41] #GT#.000001;);

42]);

43]

END

 

Решением является:

 

VARIABLE VALUE

SPROB(A).4750000

SPROB(B).1525000

SPROB(C).1675000

SPROB(D).2050000

 

В итоге мы видим, что наш новый товар (первый в списке решения) получит только на рынке долю в 0.475, что значительно ниже, чем предположил вначале на приятель — 075.

 

 


Балансировка конвейерной линии

 

Конвейерная линия состоит из ряда рабочих мест, на каждом из которых выполняется определенная специализированная задача в цепи производства результирующего продукта. Время, затрачиваемое на выполнение этой задачи, называется рабочим циклом. Целью балансировки конвейерной линии состоит в распределении задач между рабочими местами таким образом, чтобы на всех рабочих местах выполнялось одинаковое количество работ. Неправильно сбалансированная конвейерная линия будет испытывать эффект «узкого бутылочного горлышка» — рабочие места с меньшим объемом работы будут вынуждены ожидать завершения работ на предыдущих этапах конвейера, которые перегружены работой.

Определенные работы должны предшествовать выполнению других работ (например, одевание носок должно предшествовать одеванию ботинок). Распределение работ по рабочим местам должно удовлетворять всем таким требованиям следования.

В рассматриваемом здесь примере мы имеем одиннадцать задач (от A до K), которые следует распределить между четырьмя рабочими местами (с 1-го по 4-й). Диаграмма порядка следования работ изображена на рисунке:

 

 

Имеется три вида ограничений, включенных в данную модель. Первая группа ограничений обеспечивает выполнение условия, что каждая задача может быть присвоена только одному рабочему месту. Вторая группа ограничений обеспечивает выполнение всех условий «предшествования работ» (например, если задача A должна быть выполнена до начала выполнения задачи B, то A не может быть присвоена более «позднему» рабочему месту в конвейере по сравнению с тем, на котором выполняется задача A). И наконец третья последняя группа ограничений устанавливает, что общее время для завершения всех задач, присвоенных конкретному рабочему месту, должно быть больше максимального рабочего цикла. Целью оптимизации является минимизации максимального рабочего цикла.

 

ASLBAL.LNG ASSEMBLY LINE BALANCING

Тип модели: линейная оптимизация

 

MODEL:

1]! Модель регулирования конвейерной линии;

2]! Эта модель заключается в присваивании операций рабочим

3] местам в конвейерной линии с целью избежать эффекта «узкого

4] горлышка». В идеале все рабочие места должны быть загружены равномерно.;

5] SETS:

6]! Множество присвоенных задач состоит из A до K, и

7] и для каждой задачи имеется время ее выполнения, T;

8] TASK/ A B C D E F G H I J K/: T;

9]! Следует просмотреть все пары «предшественние-последователь»

10] (напр., A должно быть завершено до B, B прежде C, и т.д.);

11] PRED(TASK, TASK)/ A,B B,C C,F C,G F,J G,J

12] J,K D,E E,H E,I H,J I,J /:;

13]! Рабочие места необходимые для выполнения работ: от 1 до 4;

14] STATION/1..4/:;

15]! X является атрибутом элементов производного множества

16] TXS,которое представляет собой присваивание задач рабочим

17] местам: X(I,K) = 1 если задача I присвоена рабочему месту K;

18] TXS(TASK, STATION): X;

19] ENDSETS

20]

21] DATA:

22]! Данные взятые из Chase и Aquilano, POM;

23]! Далее перечислены времена, необходимые для выполнения.

24] задач A B C D E F G H I J K;

25] T = 45 11 9 50 15 12 12 12 12 8 9;

26] ENDDATA

27]

28]! Модель. Предупреждение: может быть медленной, если более 15 tasks;

29]!Каждой задачи должно быть присвоено только одно раб. место;

30] @FOR(TASK(I):

31] @SUM(STATION(K): X(I, K)) = 1;);

32]! Ограничения предшествования;

33]! Для каждой пары, предшествующая задача, I, не может быть

34] не может быть назначена следующему рабочему месту, чем его

35] последующая задача, J;

36] @FOR(PRED(I, J):

37] @SUM(STATION(K): K * X(J, K) - K * X(I, K)) > 0;);

38]! Для каждого места, общее время присвоенных задач должно

39] быть меньше максимального рабочего цикла, CYCTIME;

40] @FOR(STATION(K):

41] @SUM(TXS(I, K): T(I) * X(I, K)) < CYCTIME;);

42]! Минимизируем максимальный рабочий цикл;

43] MIN = CYCTIME;

44]! The X(I,J) переменные присваивания задач должны быть бинарными целыми;

45] @FOR(TXS: @BIN(X););

END

 

Ниже приведено решение для целевого значения переменной CYCTIME и для ненулевых значений переменных X:

 

 

VARIABLE VALUE REDUCED COST

CYCTIME 50.00000.0000000

X(A, 1) 1.000000.0000000

X(B, 3) 1.000000.0000000

X(C, 4) 1.000000.0000000

X(D, 2) 1.000000.0000000

X(E, 3) 1.000000.0000000

X(F, 4) 1.000000.0000000

X(G, 4) 1.000000.0000000

X(H, 3) 1.000000.0000000

X(I, 3) 1.000000.0000000

X(J, 4) 1.000000.0000000

X(K, 4) 1.000000.0000000

 

 


Минимизация нижней границы риска портфеля ценных бумаг

Очевидной целью и общепринятой стратегией инвестиций является минимизация риска от невыгодных сделок. В подобном случае возникает вопрос, сколько вам следует вложить в каждый из трех возможных авуаров, чтобы минимизировать риск от необходимости распродажи ваших ценных бумаг?

Вы рассматриваете возможность вложения в три различные пакета ценных бумаг: ATT, GVC и USX. Они определены в третьей строке в секции SETS модели как три элемента множества ASSET. В строке 5 множество SCENARIO содержит 7 элементов, которые представляют наиболее вероятные сценарии. Таблица в строке 8 дает доход для каждого из авуаров при конкретном сценарии.

Вы пытаетесь предугадать возможную прибыль от каждого из вложений в соответствии с этими сценариями — от возможности забастовок на транспорте, от роста или падения процентных ставок, падения урожая, выиграет ли команда «буйволов» в финале NBA и т.п. Эти данные приведены в секции DATA в строках с 22 по 28 под именем ARETURN. Вы знаете, например, что если вы вложите все 100% своих средств в ценные бумаги Asset2, то средняя прибыль при всех возможных сценариях (ваша ожидаемая прибыль) будет составлять 19.9%.

Вы планируете жить на эту прибыль от вложений в ценные бумаги. После расчета своих необходимых расходов, вы пришли к выводу, что прибыль ниже 11% приведет к необходимости распродавать ценные бумаги, чтобы поддержать привычный уровень жизни. Назовем эту величину в 11% пороговой прибылью, которая обозначена переменной THRESH в строке 15.

Прибыль от вложения в Asset2 ниже порогового значения в 11% в двух из сценариев, а в сценарии 7 вы в действительности теряете деньги в ценных бумагах — возможно, вплоть до полной распродажи всех ценных бумаг. И хотя прибыль в 19.9% представляется довольно привлекательной, сама возможность расстаться хотя бы с частью своих ценных бумаг вас пугает. Вы приходите к выводу, что вам достаточно средней ожидаемой прибыли по крайне мере 13% (назовем эту величину «желаемой прибылью», которая соответствует переменной DRETURN в строке 13), но вы хотите при этом минимизировать вероятность того, что придется распродать какую-либо часть ваших ценных бумаг.

ПЕРМЕННЫЕ

Переменными в модели являются процентная доля инвестиций в каждый из пакетов акций из множества (атрибут INVEST в строке 4) и доля в процентах нижней границы риска для каждого из сценариев (атрибут DRISK в строке 7).

 

ЦЕЛЕВАЯ ФУНКЦИЯ

Целью инвестиций является получение прибыли при минимизации риска потерять свои ценные бумаги. В строке 31 мы минимизируем среднюю сумму квадратов нижних границ риска (в процентах (в которой степень NPOW положена равной 2 в строке 20). Сумма квадратов используется, чтобы увеличить относительный штраф на слишком большие отклонения в нижнюю сторону от «пороговой прибыли».

 

ОГРАНИЧЕНИЯ

 

Ограничение в строке 37 обязывает величину нижней границы риска быть равной либо значению Threshold («пороговой прибыли») минус прибыль (return), если последняя меньше, чем Threshold, или равной нулю, если прибыль больше порогового значения. Ограничение в строке обеспечивает, что сумма процентов всех инвестиций равна 100. Ограничение в строке 44 обязывает значение прибыли, средней по всем сценариям, прибыли быть не меньше значения «желаемой прибыли» (DRETURN).

Ниже приведена модель, соответствующая этим описаниям.

 

 

DNRISK.LNG MULTI-SCENARIO PORTFOLIO

 

Тип модели: Нелинейная оптимизация

MODEL:

1]! Модель минимизации риска портфеля ценных бумаг;

2] SETS:

3] ASSET/ ATT GMC USX/:

4] INVEST;! Инвестиции, вкладываемый в каждый пакет акций;

5] SCENARIO/1..7/:

6] TRETRN,! Прибыль для данного сценария;

7] DRISK;! Нижний порог риска для данного сценария;

8] TABLE(SCENARIO, ASSET):

9] ARETRN;! Прибыль для сценария I пакета акций J;

10] ENDSETS

11] DATA:

12]! Желаемая прибыль;

13] DRETURN =.13;

14]! Нижняя граница, ниже которой опускаться нельзя;

15] THRESH =.11;

16]! Показатель степени риска(1 or 2);

17]! When NPOW = 1, то это линейная программа;

18]! When NPOW = 2 and нижняя граница = желаемой прибыли;

19]! То имеем полу-вариацию;

20] NPOW = 2;

21] ARETRN =

22] -.071.144.169

23].056.107 -.035

24].038.321.133

25].089.305.732

26].090.195.021

27].083.390.131

28].035 -.072.006;

29] ENDDATA

30]! Минимизируем среднюю нижнюю границу риска;

31] MIN = @SUM(SCENARIO: DRISK ^ NPOW)/ 7;

32]! Вычисляем прибыль для каждого сценария;

33] @FOR(SCENARIO(I):

34] TRETRN(I) = @SUM(ASSET(J):

35] ARETRN(I, J) * INVEST(J));

36]!.. и сколько не хватает до нижнего порога;

37] DRISK(I) > THRESH - TRETRN(I);

38]! Прибыль за период не может быть отрицательной;

39] @FREE(TRETRN(I));

40]);

41]! Ограничения на бюджет(разделенный на миллиард);

42] [BUDGET] @SUM(ASSET: INVEST) = 1;

43]! Желаемая прибыль;

44] [PRICER] @SUM(SCENARIO(I): TRETRN(I))/ 7 > DRETURN;

END

 

Решение модели приводит к результату, согласно которому нижняя граница риска равна 0.002863 при распределении инвестиций 39.2 % в ATT, 34.7% в GMT и 26.1% в USX.

 


Обеспечение требований проекта
при минимальных затратах

 

 

СЛОВЕСНАЯ ФОРМУЛИРОВКА ЗАДАЧИ

 

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

 


Дата добавления: 2015-11-16; просмотров: 50 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Пример — переработанная задача о продавце книжного магазина| Исходные данные

mybiblioteka.su - 2015-2024 год. (0.085 сек.)