Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мезенцев Теория систем и системный анализ / Лабораторная работа 2 вариант 317

.docx
Скачиваний:
27
Добавлен:
03.01.2020
Размер:
1.01 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра экономической информатики

Лабораторная работа №2

по дисциплине «Теория систем и системный анализ»

на тему «Задачи исследования операций в системном анализе бизнес-процессов»

Вариант №317

Выполнили:

Факультет Бизнеса

Группа: ФБИ-22

Преподаватель:

Мезенцев Ю.А.

Новосибирск 2014

Цель работы: научиться использовать средства надстройки Ms Excel «поиск решения» и средства IBM ILOG CPLEX studio

Задание 1. В соответствии с содержательными условиями задач управления в РГР и математическими постановками во вкладках книг и для процедуры поиска решений, запустить поиск решений и интерпретировать полученные результаты.

Задание 2. В соответствии с содержательными условиями задач управления в РГР и математическими постановками во вкладках книги подготовить проект в IBM ILOG CPLEX studio получить и интерпретировать решения.

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

Текст программы в IBM ILOG CPLEX studio:

/*********************************************

* OPL 6.3 Model

* Author: tk605

* Creation Date: 23.04.2014 at 9:51:46

*********************************************/

// Задача управления размещением депозитов

int n = ...;

int m = ...;

range j = 1..n;

range i = 1..m;

float b1[i] = ...;

float z[j] = ...;

float A1[i][j] = ...;

float MaxValue = 1000*max(r in i) b1[r];

dvar float x[j] in 0..MaxValue;

maximize

sum(jj in j) z[jj] * x[jj];

subject to {

forall( r in i )

ct1:

sum( jj in j )

A1[r][jj] * x[jj] == b1[r];

}

/*********************************************

* OPL 6.3 Data

* Author: tk605

* Creation Date: 23.04.2014 at 9:51:46

*********************************************/

n = 6;

m = 3;

SheetConnection sheet("САЛабIndcopy.xls");

A1 from SheetRead(sheet,"depozit!b4:g6");

b1 from SheetRead(sheet,"depozit!i4:i6");

z from SheetRead(sheet,"depozit!b7:g7");

x to SheetWrite(sheet,"depozit!b3:g3");

Оптимальное решение в ОРL:

// solution (optimal) with objective 2.4

x = [40 40 0 0 0 100];

Решение задачи в Ms Excel:

Рисунок 1. Решение задачи №1

Рисунок 2. Поиск решений для задачи №1

Оптимальное решение в Ms Excel совпадает с оптимальным решением в

IBM ILOG CPLEX studio.

Задача №2. Транспортная задача.

Текст программы в IBM ILOG CPLEX studio:

/*********************************************

* OPL 6.3 Model

* Author: tk605

* Creation Date: 23.04.2014 at 10:08:43

*********************************************/

//Задача о размещении производств

//(производственно-транспортного типа)

int n = ...;

int m = ...;

int m1 = ...;

int n1 = ...;

int m2 = m - m1;

int n2 = n - n1;

range j1 = 1..n1;

range j2 = 1..n2;

range i1 = 1..m1;

range i2 = 1..m2;

float b1[i1] = ...;

float b2[i2] = ...;

float z1[j1] = ...;

float z2[j2] = ...;

float A3[i2][j2] = ...;

float A1[i1][j1] = ...;

float A2[i2][j1] = ...;

float MaxValue = 1000*max(r in i1) b1[r];

dvar float x[j1] in 0..MaxValue;

dvar boolean y[j2];

minimize

sum(jj in j1) z1[jj] * x[jj] +

sum(jjj in j2) z2[jjj] * y[jjj] ;

subject to {

forall( r1 in i1 )

ct1:

sum( jj in j1)

A1[r1][jj] * x[jj] == b1[r1];

forall( r in i2 )

ct2:

sum( jj in j1 )

A2[r][jj] * x[jj] +

sum( jjj in j2)

A3[r][jjj] * y[jjj] <= b2[r];

}

/*********************************************

* OPL 6.3 Data

* Author: tk605

* Creation Date: 23.04.2014 at 10:08:43

*********************************************/

n = 12;

m = 6;

m1 = 2;

n1 = 8;

SheetConnection sheet("Transport.xls");

A1 from SheetRead(sheet,"transp!b4:i5");

A2 from SheetRead(sheet,"transp!b6:i9");

A3 from SheetRead(sheet,"transp!j6:m9");

b1 from SheetRead(sheet,"transp!o4:o5");

b2 from SheetRead(sheet,"transp!o6:o9");

z1 from SheetRead(sheet,"transp!b10:i10");

z2 from SheetRead(sheet,"transp!j10:m10");

x to SheetWrite(sheet,"transp!b3:i3");

y to SheetWrite(sheet,"transp!j3:m3");

Решение транспортной задачи в OPL:

// solution (optimal) with objective 4410

x = [100 50 0 0 80 0 0 100];

y = [1 1 0 1];

Решение задачи в Ms Excel:

Рисунок 3. Решение транспортной задачи

Рисунок 4. Поиск решения транспортной задачи

Оптимальное решение в Ms Excel совпадает с оптимальным решением в

IBM ILOG CPLEX studio.

Задача №3. Задача объемного планирования с дробно-линейным критерием эффективности.

Текст программы в IBM ILOG CPLEX studio:

/*********************************************

* OPL 6.3 Model

* Author: tk605

* Creation Date: 23.04.2014 at 10:54:26

*********************************************/

// Задача дробно-линейного программирования

int n = ...;

int m = ...;

range j = 1..n;

range i = 1..m;

range i1 = 1..m-1;

//float zb = ...;

float b1[i] = ...;

float z1[j] = ...;

//float x[j] = ...;

// float z2[j] = ...;

float A1[i][j] = ...;

float MaxValue = 1000*max(r in i) b1[r];

dvar float t[j] in 0..MaxValue;

maximize

sum(jj in j) (z1[jj] * t[jj] ); //

// sum(jj in j) (z2[jj] * x[jj] + zb))

subject to {

forall( r in i1 )

ct1:

sum( jj in j )

A1[r][jj] * t[jj] <= b1[r];

ct2:

sum( jj in j )

A1[m][jj] * t[jj] == b1[m];

}

// forall

// float ( jj in j ) x[jj] = t[jj]/t[n];

/*********************************************

* OPL 6.3 Data

* Author: tk605

* Creation Date: 23.04.2014 at 10:54:26

*********************************************/

n = 3;

m = 5;

SheetConnection sheet("z3.xls");

A1 from SheetRead(sheet,"drobno!b4:d8");

b1 from SheetRead(sheet,"drobno!e4:e8");

//z2 from SheetRead(sheet,"drobno!b8:c8");

z1 from SheetRead(sheet,"drobno!b9:d9");

//zb from SheetRead(sheet,"drobno!e9:e9");

t to SheetWrite(sheet,"drobno!b3:d3");

Решение задачи в OPL:

// solution (optimal) with objective -4.33680868994202e-18

t = [0.001 0.002

0.00001];

Решение задачи в Ms Excel:

Рисунок 5. Решение задачи №3

Рисунок 6. Поиск решения для задачи №3

Оптимальное решение в Ms Excel совпадает с оптимальным решением в

IBM ILOG CPLEX studio.

Задача №4. Задача объемного планирования.

Текст программы в IBM ILOG CPLEX studio:

/*********************************************

* OPL 6.3 Model

* Author: tk605

* Creation Date: 23.04.2014 at 10:40:12

*********************************************/

int n = ...;

int m = ...;

range j = 1..n;

range i = 1..m;

float b1[i] = ...;

float z1[j] = ...;

float A1[i][j] = ...;

float MaxValue = 1000*max(r in i) b1[r];

dvar float x[j] in 0..MaxValue;

maximize

sum(jj in j) (z1[jj] * x[jj] );

subject to {

forall( r in i )

ct1:

sum( jj in j )

A1[r][jj] * x[jj] <= b1[r];

}

/*********************************************

* OPL 6.3 Data

* Author: tk605

* Creation Date: 23.04.2014 at 10:40:12

*********************************************/

n = 4;

m = 5;

SheetConnection sheet("z4.xls");

A1 from SheetRead(sheet,"decomp!b4:e8");

b1 from SheetRead(sheet,"decomp!g4:g8");

z1 from SheetRead(sheet,"decomp!b9:e9");

x to SheetWrite(sheet,"decomp!b3:e3");

Решение задачи в OPL:

// solution (optimal) with objective 73400

x = [500 200 600 700];

Решение задачи в Ms Excel:

Рисунок 7. Решение задачи №4

Рисунок 8. Поиск решения для задачи №4

Оптимальное решение в Ms Excel совпадает с оптимальным решением в

IBM ILOG CPLEX studio.

Задача №5. Задача оптимального выбора оборудования.

Текст программы в IBM ILOG CPLEX studio:

/*********************************************

* OPL 6.3 Model

* Author: tk605

* Creation Date: 06.05.2014 at 12:57:38

*********************************************/

int n = ...;

int m = ...;

range j = 1..n;

range i = 1..m;

float b[i] = ...;

float z[j] = ...;

float A[i][j] = ...;

//float MaxValue = max(r in i) b[r];

int MaxV = 100;

//MaxV = intValue(MaxValue);

dvar int x[j] in 0..MaxV;

maximize

sum(jj in j) z[jj] * x[jj];

subject to {

forall( r in i )

ct:

sum( jj in j )

A[r][jj] * x[jj] <= b[r];

}

/*********************************************

* OPL 6.3 Data

* Author: tk605

* Creation Date: 06.05.2014 at 12:57:38

*********************************************/

n = 2;

m = 2;

SheetConnection sheet("z5.xls");

A from SheetRead(sheet,"automat!b4:c5");

b from SheetRead(sheet,"automat!e4:e5");

z from SheetRead(sheet,"automat!b6:c6");

x to SheetWrite(sheet,"automat!b3:c3");

Решение задачи в OPL:

// solution (optimal) with objective 81

x = [5 2];

Решение задачи в Ms Excel:

Рисунок 9. Решение задачи №5

Рисунок 10. Поиск решения для задачи №5

Оптимальное решение в Ms Excel совпадает с оптимальным решением в

IBM ILOG CPLEX studio.

Задача №6. Задача оптимизации портфеля ценных бумаг.

Текст программы в IBM ILOG CPLEX studio:

/*********************************************

* OPL 6.3 Model

* Author: tk605

* Creation Date: 23.04.2014 at 11:21:48

*********************************************/

int n = ...;

int m = ...;

range j = 1..n;

range i = 1..m;

float b1 = ...;

float m1[j] = ...;

//float x[j] = ...;

// float z2[j] = ...;

float cov[i][j] = ...;

float MaxValue = 1;

dvar float x[j] in 0..MaxValue;

minimize

sum(ii in i)(sum(jj in j) (cov[ii,jj] * x[jj] ))* x[ii]; //

// sum(jj in j) (z2[jj] * x[jj] + zb))

subject to {

ct1:

sum( jj in j )

m1[jj] * x[jj] >= b1;

ct2:

sum( jj in j )

x[jj] <= 1;

}

/*********************************************

* OPL 6.3 Data

* Author: tk605

* Creation Date: 23.04.2014 at 11:21:48

*********************************************/

n = 3;

m = 3;

SheetConnection sheet("z6.xls");

cov from SheetRead(sheet,"portfolio!b1:d3");

b1 from SheetRead(sheet,"portfolio!f6:f6");

m1 from SheetRead(sheet,"portfolio!b6:d6");

//zb from SheetRead(sheet,"drobno!e9:e9");

x to SheetWrite(sheet,"portfolio!b5:d5");

Решение задачи №6 в OPL:

// solution (optimal) with objective 0.0230059151712553

x = [0.41322 0.51106

3.3326e-9];

Решение задачи в Ms Excel:

Рисунок 11. Решение задачи №6

Рисунок 12. поиск решения задачи №6

Оптимальное решение в Ms Excel совпадает с оптимальным решением в

IBM ILOG CPLEX studio.

Задача №8. Динамическая модель управления запасами.

Текст программы в IBM ILOG CPLEX studio:

/*********************************************

* OPL 6.3 Model

* Author: tk605

* Creation Date: 23.04.2014 at 10:29:48

*********************************************/

int m = ...;

range i = 1..m;

range i1 = 2..m;

float m1[i] = ...;

float v1[i] = ...;

float s[i] = ...;

float c[i] = ...;

float p[i] = ...;

float h[i] = ...;

float MaxValue = 10*max(r in i) m1[r];

dvar float x[i] in 0..MaxValue;

dvar float y[i] in 0..MaxValue;

minimize

sum(j in i) c[j] * x[j] + sum(j in i) p[j] +

sum(j in i) h[j] * y[j] ;

subject to {

forall( r1 in i )

ct1:

x[r1] <= m1[r1];

forall( r1 in i )

ct2:

y[r1] <= v1[r1];

ct3:

x[1] - y[1] == s[1];

forall( r1 in i1 )

ct4:

y[r1-1] + x[r1] - y[r1] == s[r1];

}

/*********************************************

* OPL 6.3 Data

* Author: tk605

* Creation Date: 23.04.2014 at 10:29:48

*********************************************/

m = 4;

SheetConnection sheet("dinamo.xls");

s from SheetRead(sheet,"dinamo!b13:b16");

m1 from SheetRead(sheet,"dinamo!c13:c16");

v1 from SheetRead(sheet,"dinamo!d13:d16");

p from SheetRead(sheet,"dinamo!e13:e16");

c from SheetRead(sheet,"dinamo!f13:f16");

h from SheetRead(sheet,"dinamo!g13:g16");

x to SheetWrite(sheet,"dinamo!i13:i16");

y to SheetWrite(sheet,"dinamo!j13:j16");

Решение задачи в OPL:

// solution (optimal) with objective 397

x = [8 3 7 2];

y = [0 0 5 0];

Решение задачи в Ms Excel:

Рисунок 13. Решение задачи №8

Рисунок 14. Поиск решения задачи №8

Оптимальное решение в Ms Excel совпадает с оптимальным решением в

IBM ILOG CPLEX studio.

Вывод: научились использовать средства надстройки Ms Excel «поиск решения» и средства IBM ILOG CPLEX studio.

Соседние файлы в папке Мезенцев Теория систем и системный анализ