47511 (Линейное программирование), страница 5

2016-07-30СтудИзба

Описание файла

Документ из архива "Линейное программирование", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "47511"

Текст 5 страницы из документа "47511"

Соответственно по решению, вычисляем:

Z= 3*0,75+7*0+2*0+3+7,25= 24

Z= 24

Ответ поставленной задачи: План выпуска продукции (Z) для получения максимальной прибыли, при том, что сырьё IIвида было израсходовано полностью равен 24 (Z= 24). Из хода решения задачи по условию мы видим, что оценен каждый из видов сырья, используемых для производства продукции.

Блок-схемы основных процедур при решении и программировании задач

Алгоритм программы → Рис. 1. ↓








Найти max j c’ j = c’ s





Да




Нет


Да





Вычислить b’ i / a’ is для

всех a’ is > 0



Вычислить b’ i / a’ is для

всех a’ is > 0




Вычислить b’ i / a’ is для

всех a’ is > 0




Рисунок 1 –Алгоритм программы для решения ЗЛП (частный случай)

Программа к поставленной задачи (код программы)

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

Программа определяет:

План выпуска продукции для получения максимальной прибыли.

1. Описание работы программы, листинг программы

1.1 Обоснование выбора языка

Программа для решения данной задачи составлена на языке C++.C++ представляет собой систему программирования. Как любая подобная система,C++ предназначена для разработки программ и имеет две характерные особенности: создаваемые с ее помощью программы могут работать не только под управлением Windows,но и в системе MS-DOS.

C++ представляет собой наиболее полный пакет объектно-ориентированного программирования. Язык прост в применении и базируется на C#,что упрощает создание программ, людям, знакомым с данным языком.

1.2 Описание работы программы

Программа составлена для общего случая. В первую матрицу вводятся ее члены в обычных дробях. Программа переводит эти дроби в десятичные и составляет каноническую форму. Затем происходит процесс формирования первой симплекс таблицы.

Следующим этапом программа начинает составлять итерации, до тех пор пока не будет найдено оптимальное решение (в данном случае составлено 2 итерации).

Программа выводит данные в строку F/

    1. Листинг программы

//-------------------------------------------------------------------------------------------

#include

#include

#include

#define PRECISION "%6.2f" // формат вывода дробных чисел

#define PRECISION2 "%.2f" // он же только целая часть любой длины

#define MAXDIGIT 1000000 // должно быть очень большое число (больше всех)

typedef enum

{

NEXT_ITERATION, // нужно продолжать итерации

PLAN_OPTIMAL, // найден оптимальный опорный план

ODR_BREAK, // ОДР разомкнута

ODR_EMPTY, // ОДР пустая

DUAL_DONE /* первый этап (построение опорного плана) окончен,

переходим к поиску оптим.оп.плана (обычный Симплекс) */

} plan_t;

int cn=0; // длина вектора исходного ур-я

int cnr=0; /* cn, только без членов == 0 (cnr==cn_real)

нужно только для вывода сокращенной таблицы */

float *c = NULL; // исходное ур-е

int m=0, n=0; // размеры матрицы условий

float **a = NULL; // матрица условий

float *b = NULL; // столбец свободных членов матрицы условий

int *base = NULL; // базовые переменные

float zb=0; // оценки оптимальности b

float *za = NULL; // оценки оптимальности a

int base_column = -1; // разрешающий столбец

int base_row = -1; // разрешающая строка

bool full_table = true; // вид выводимой таблицы: true==полная, false==сжатая

void FreeMem ()

{

delete[] za;

delete[] base;

delete[] b;

for (int i=0; i

delete[] a[i];

delete[] a;

delete[] c;

}

bool ReadInput (char *filename)

{

int i,j;

FILE *f = fopen(filename, "r");

if (NULL == f)

return false;

// исходное ур-е

fscanf(f, "%i", &cn);

c = new float [cn];

cnr=cn;

for (i=0; i

{

fscanf(f, "%f", &c[i]);

if (0 == c[i]) cnr--;

}

// матрица условий

fscanf(f, "%i %i", &n, &m);

a = new float* [m];

for (i=0; i

a[i] = new float[n];

b = new float [m];

for (j=0; j

{

for (i=0; i

fscanf(f, "%f", &a[j][i]);

fscanf(f, "%f", &b[j]);

}

// базовые переменные

base = new int [m];

for (j=0; j

{

fscanf(f, "%i", &base[j]);

--base[j];

}

// флаг - полную или сжатую таблицу выводить ?

int flag = 1;

fscanf(f, "%i", &flag);

full_table = flag ? true : false;

fclose(f);

za = new float[n];

// for(i=0;i

return true;

}

// Вычисление оценок оптимальности {za==delta_j[] and zb==Z}

void EvaluationOptimal ()

{

int i,j;

zb=0;

for (i=0; i

for (j=0; j

{

for (i=0; i

za[i] += c[base[j]]*a[j][i];

zb += c[base[j]]*b[j];

}

for (i=0; i

za[i] -= c[i];

}

// Построение опорного плана (этот этап только в двойственном симплекс-методе)

plan_t BuildPsevdoPlan ()

{

int i,j;

base_column = -1; // разрешающий столбец

base_row = -1; // разрешающая строка

float acc; // временно: аккумулятор - будет хранить min, max, etc.

acc = 0; // min отрицательное значение b

for (j=0; j

if (b[j] < acc)

{

acc = b[j];

base_row = j;

}

if (-1 == base_row)

return DUAL_DONE;

acc = -MAXDIGIT; // max отношение za к отрицат. эл-там в строке base_row

for (i=0; i

{

float temp;

if (a[base_row][i] acc)

{

acc = temp;

base_column = i;

}

}

if (-1 == base_column)

return ODR_EMPTY;

return NEXT_ITERATION;

}

// Проверка опорного плана на оптимальность

plan_t CheckStrongPlan ()

{

int i,j;

float za_min = 0;

base_column = -1; // разрешающий столбец

base_row = -1; // разрешающая строка

// выбор разрешающего столбца

for (i=0; i

{

if (za[i] >= 0)

continue;

else if (za[i] < za_min)

{

za_min = za[i];

base_column = i;

}

}

if (-1 == base_column)

return PLAN_OPTIMAL;

za_min = MAXDIGIT;

// выбор разрешающей строки

for (j=0; j

{

if (a[j][base_column] > 0)

{

float t = b[j]/a[j][base_column];

if (t < za_min)

{

za_min = t;

base_row = j;

}

}

}

if (-1 == base_row)

return ODR_BREAK;

return NEXT_ITERATION;

}

// Преобразование таблицы по ф-лам Жордана-Гаусса

void JGTransformation (int base_row, int base_column)

{

// проверка на всякий случай: чтобы не было деления на нуль

if (0 == a[base_row][base_column]) return;

base[base_row] = base_column;

int i,j;

float **a2 = new float* [m]; // матрица условий

float *b2 = new float [m]; // столбец свободных членов матрицы условий

memcpy(b2,b,m*sizeof(float));

for (j=0; j

{

a2[j] = new float[n];

memcpy(a2[j],a[j],n*sizeof(float));

}

for (j=0; j

{

for (i=0; i

{

if (i == base_column)

{

a2[j][i] = (float) (j == base_row ? 1 : 0);

}

else

{

if (j == base_row)

a2[j][i] = a[j][i]/a[base_row][base_column];

else

a2[j][i] = a[j][i] - a[base_row][i]*a[j][base_column]/

a[base_row][base_column];

}

}

if (j == base_row)

b2[j] = b[j]/a[base_row][base_column];

else

b2[j] = b[j] - b[base_row]*a[j][base_column]/

a[base_row][base_column];

}

memcpy(b,b2,m*sizeof(float));

delete[] b2;

for (j=0; j

{

memcpy(a[j],a2[j],n*sizeof(float));

delete[] a2[j];

}

delete[] a2;

}

// проверка: входит ли номер столбца в число базисных переменных

bool InBase (int num)

{

for (int j=0; j

if (num == base[j])

return true;

return false;

}

// вывод линии символов

void Rule (char c, int amount = full_table ? 5+(n+2)*8 : 5+(cnr+1)*8)

{

for (int i=0; i

printf("%c", c);

printf("\n");

}

// вывод Симплекс-таблицы

void ShowTable ()

{

int i,j;

static int iteration = 0;

printf("[%i]\n", iteration++);

if (full_table)

// полная таблица

{

Rule('=');

printf("Баз.| | |");

for (i=0; i

printf(PRECISION " |", c[i]);

printf("\nпер.| Ci | Bi |");

Rule('-', n*8);

printf(" | | |");

for (i=0; i

printf(" x%i |", i+1);

printf("\n");

Rule('=');

for (j=0; j

{

printf(" x%i |" PRECISION " |" PRECISION " |",

base[j]+1, c[base[j]], b[j]);

for (i=0; i

printf(PRECISION "%c|", a[j][i],

base_column == i && base_row == j ?'*':' ');

printf("\n");

}

Rule('=');

printf(" Z | --- |" PRECISION " |", zb);

for (i=0; i

printf(PRECISION " |", za[i]);

printf("\n");

Rule('-');

}

else

// сжатая таблица

{

Rule('=');

printf("БvС>|");

for (i=0; i

{

if (!InBase(i))

printf(" x%i |", i+1);

}

printf(" Bi |\n");

Rule('=');

for (j=0; j

{

printf(" x%i |", base[j]+1);

for (i=0; i

{

if (!InBase(i))

printf(PRECISION "%c|", a[j][i],

base_column == i && base_row == j ?'*':' ');

}

printf(PRECISION" |\n", b[j]);

}

Rule('=');

printf(" Z |");

for (i=0; i

{

if (!InBase(i))

printf(PRECISION " |", za[i]);

}

printf(PRECISION " |\n", zb);

Rule('-');

}

if (base_column > -1 && base_row > -1)

printf("Разрешающий столбец:%2i\nРазрешающая строка: %2i\n\nX=(",

base_column+1, base_row+1);

else

printf("\nX=(");

for (i=0; i

{

int basen = -1;

for (j=0; j

if (base[j] == i) {basen = j; break;}

printf(PRECISION2 "%c ", -1==basen?0:b[basen], i!=n-1?',':')');

}

printf("\nZ=" PRECISION2 "\n\n\n", zb);

}

int main (int argc, char *argv[])

{

if (argc < 2)

{

printf("Missing argument\n");

return -1;

}

if (!ReadInput(argv[1]))

{

printf("Error open file %s.\n", argv[1]);

return -1;

}

printf("*** ДВОЙСТВЕННЫЙ СИМПЛЕКС-МЕТОД ***\n\n");

plan_t plan;

bool dual_done = false;

for (int k=0; k<2*m+1; k++)

{

if (k) JGTransformation(base_row, base_column);

EvaluationOptimal();

if (dual_done)

{

plan = CheckStrongPlan();

}

else

{

plan = BuildPsevdoPlan(); // only in dual-simplex

if (DUAL_DONE == plan)

{

dual_done = true;

plan = CheckStrongPlan();

}

}

ShowTable();

if (NEXT_ITERATION != plan)

{

char *s;

switch (plan)

{

case PLAN_OPTIMAL: s="Опорный план оптимальный"; break;

case ODR_BREAK: s="Область допустимых решений разомкнутая"; break;

case ODR_EMPTY: s="Область допустимых решений пустая"; break;

}

printf("\n%s.\n", s);

break;

}

}

FreeMem();

return 0;

}

//-----------------------------------------------------------------------------------------

Результат работы программы

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

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

3.4. Анализ результата решения поставленной задачи

1. Задачи анализа, источники информации

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

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

Задачи анализа обеспеченности и использования материальных ресурсов:

а) оценка реальности планов материально-технического снабжения, степени их выполнения и влияния на объем производства продукции, ее себестоимость и другие показатели;

б) оценка уровня эффективности использования материальных ресурсов;

в) выявление внутрипроизводственных резервов экономии материальных ресурсов и разработка конкретных мероприятий по их использованию.

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

2. Анализ обеспеченности предприятия материальными ресурсами

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

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

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

По заданной задачи мы видим, что:

Для производства трёх видов продукции используется три вида сырья. Нормы затрат каждого из видов сырья на единицу продукции данного вида, запасы сырья, а также прибыль с единицы продукции.

Вид сырья

Нормы затрат сырья (кг) на единицу продукции

А

В

С

I

II

III

4

0

1

2

1

2

0

1

0

Цена единицы продукции (руб.)

3

7

2

1. Первое, что я сделал, это определил план выпуска продукции для получения максимальной прибыли, с учетом того что бы сырьё IIвида было израсходовано полностью.



Z-0 = 3X1 + 7X2 + 2X3

4

X1

+

2

X2

+

0

X3

+

X4

19

0

X1

+

1

X2

+

1

X3

+

X5

=

8

1

X1

+

2

X2

+

0

X3

+

X6

24

X1, X2, X3 ≥ 0.

4X1+2X2+X4 ≤ 19

X2 + X3 +X5 = 8

X1+ 2X2+X6 ≤24

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

Z-0 = 3X1 + 7X2 + 2X3 → max

Ввел дополнительные переменные X4, X5, X6.

Z-0=

3

X1

+

7

X2

+

2

X3

(max)

Ограничения:

4

X1

+

2

X2

+

0

X3

+

X4

=

19

0

X1

+

1

X2

+

1

X3

+

X5

=

8

1

X1

+

2

X2

+

0

X3

+

X6

=

24

3. Построил математическую модель задачи;

4X1+2X2+X4 = 19

X2 + X3 +X5 = 8

X1+2X2 +X6 =24

4. Выбрал метод решения задачи и привел задачу к каноническому виду;

Xi≥0 ; 0-Z= -3X1- -7X2- -2X3

5. Решил задачу путём сведения к задаче линейного программирования;

Базисныепеременные

X1

X2

X3

X4

X5

X6

Свободныечлены

X4

4

2

0

1

0

0

19

X5

0

1

1

0

1

0

8

X6

1

2

0

0

0

1

24

0-Z

-3

-7

-2

0

0

0

0

Пересчитал таблицу:

Базисные переменные

X1

X2

X3

X4

X5

X6

Свободные члены

X4

4

-2

-2

1

0

0

3

X2

0

1

1

0

1

0

8

X6

1

-2

-2

0

0

1

8

0-Z

-3

7

5

0

0

0

56

Пересчитал таблицу:

Базисные переменные

X4

X5

X3

Свободные члены

X1

1/4

-1/2

-1/2

3/4

X2

0

1

1

8

X6

-1/4

-3/2

-3/2

29/4

0-Z

3/4

11/2

7/2

233/4



Нашел оптимальное базисное решение

  1. Затем построил блок схему к задачи с написанием программы и выводом на печать программного кода.

  2. Анализом моего результата решения состоит из правил оптимального решения задачи из поставленного условия.

Порядок работы с симплекс таблицей

Первая симплекс-таблица подвергается преобразованию, суть которого заключается в переходе к новому опорному решению.

Алгоритм перехода к следующей таблице такой:

Просматривается последняя строка (индексная) таблицы и среди коэффициентов этой строки (исключая столбец свободных членов ) выбирается наименьшее отрицательное число при отыскании max, либо наибольшее положительное при задачи на min. Если такового нет, то исходное базисное решение является оптимальным и данная таблица является последней; просматривается столбец таблицы, отвечающий выбранному отрицательному (положительному) коэффициенту в последней строке - ключевой столбец, и в этом столбце выбираются положительные коэффициенты.

Если таковых нет, то целевая функция неограниченна на области допустимых значений переменных и задача решений не имеет; среди выбранных коэффициентов столбца выбирается тот, для которого абсолютная величина отношения соответствующего свободного члена (находящегося в столбце свободных членов) к этому элементу минимальна.

Этот коэффициент называется разрешающим, а строка в которой он находится ключевой; в дальнейшем базисная переменная, отвечающая строке разрешающего элемента, должна быть переведена в разряд свободных, а свободная переменная, отвечающая столбцу разрешающего элемента, вводится в число базисных. Строится новая таблица, содержащая новые названия базисных переменных: разделяем каждый элемент ключевой строки (исключая столбец свободных членов) на разрешающий элемент и полученные значения записываем в строку с измененной базисной переменной новой симплекс таблицы.. Строка разрешающего элемента делится на этот элемент и полученная строка записывается в новую таблицу на то же место в новой таблице все элементы ключевого столбца = 0, кроме разрезающего, он всегда равен 1. Столбец, у которого в ключевой строке имеется 0,в новой таблице будет таким же строка, у которой в ключевом столбце имеется 0, в новой таблице будет такой же в остальные клетки новой таблицы записывается результат преобразования элементов старой таблицы: В результате получаем новую симплекс-таблицу, отвечающую новому базисному решению. Теперь следует просмотреть строку целевой функции (индексную), если в ней нет отрицательных значений (в задачи на нахождение максимального значения), либо положительных (в задачи на нахождение минимального значения) кроме стоящего на месте (свободного столбца), то значит, что оптимальное решение получено. В противном случае, переходим к новой симплекс таблице по выше описанному алгоритму.

4. ВЫВОДЫ И РЕКОМЕНДАЦИИ ПО ПРАКТИЧЕСКОМУ ИСПОЛЬЗОВАНИЮ

Целью курсового проекта было решение задач линейного программирования симплекс-методом, составление алгоритма, составление программы по алгоритму и вывод результата на экран.

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

Он основан на пересчёте коэффициентов в системе уравнений и целевой функции при перемене мест свободной и базисной переменных можно формализовать и свести к преобразованию симплекс-таблицы.

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

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

В выводе своего проектирования хочу подвести итог в целом “Решению матричных игр в смешанных стратегиях” .

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

В зависимости от количества игроков различают игры двух и n игроков. Первые из них наиболее изучены. Игры трёх и более игроков менее исследованы из-за возникающих принципиальных трудностей и технических возможностей получения решения. Чем больше игроков - тем больше проблем.

По количеству стратегий игры делятся на конечные и бесконечные. Если в игре все игроки имеют конечное число возможных стратегий, то она называется конечной. Если же хотя бы один из игроков имеет бесконечное количество возможных стратегий игра называется бесконечной.

По характеру взаимодействия игры делятся на:

1) бескоалиционные: игроки не имеют права вступать в соглашения, образовывать коалиции;

2) коалиционные (кооперативные) – могут вступать в коалиции.

В кооперативных играх коалиции наперёд определены.

По характеру выигрышей игры делятся на: игры с нулевой суммой (общий капитал всех игроков не меняется, а перераспределяется между игроками; сумма выигрышей всех игроков равна нулю) и игры с ненулевой суммой.

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

Матричная игра – это конечная игра двух игроков с нулевой суммой, в которой задаётся выигрыш игрока 1 в виде матрицы (строка матрицы соответствует номеру применяемой стратегии игрока 2, столбец – номеру применяемой стратегии игрока 2; на пересечении строки и столбца матрицы находится выигрыш игрока 1, соответствующий применяемым стратегиям).

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

Биматричная игра – это конечная игра двух игроков с ненулевой суммой, в которой выигрыши каждого игрока задаются матрицами отдельно для соответствующего игрока (в каждой матрице строка соответствует стратегии игрока 1, столбец – стратегии игрока 2, на пересечении строки и столбца в первой матрице находится выигрыш игрока 1, во второй матрице – выигрыш игрока 2.)

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

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

Если функция выигрышей является выпуклой, то такая игра называется выпуклой. Для них разработаны приемлемые методы решения, состоящие в отыскании чистой оптимальной стратегии (определённого числа) для одного игрока и вероятностей применения чистых оптимальных стратегий другого игрока. Такая задача решается сравнительно легко.

Заключение курсового проектирования по теме задания ”Решение матричной игры в смешанных стратегиях”

Чтобы описать игру, необходимо сначала выявить ее участников. Это условие легко выполнимо, когда речь идет об обычных играх типа шахмат, канасты и т.п. Иначе обстоит дело с “рыночными играми”. Здесь не всегда просто распознать всех игроков, т.е. действующих или потенциальных конкурентов. Практика показывает, что не обязательно идентифицировать всех игроков, надо обнаружить наиболее важных. Игры охватывают, как правило, несколько периодов, в течение которых игроки предпринимают последовательные или одновременные действия. Эти действия обозначаются термином “ход”. Действия могут быть связаны с ценами, объемами продаж, затратами на научные исследования и разработки и т.д. Периоды, в течение которых игроки делают свои ходы, называются этапами игры. Выбранные на каждом этапе ходы в конечном счете определяют “платежи” (выигрыш или убыток) каждого игрока, которые могут выражаться в материальных ценностях или деньгах (преимущественно дисконтированная прибыль). Еще одним основным понятием данной теории является стратегия игрока. Под ней понимаются возможные действия, позволяющие игроку на каждом этапе игры выбирать из определенного количества альтернативных вариантов такой ход, который представляется ему “лучшим ответом” на действия других игроков. Относительно концепции стратегии следует заметить, что игрок определяет свои действия не только для этапов, которых фактически достигла конкретная игра, но и для всех ситуаций, включая и те, которые могут и не возникнуть в ходе данной игры.

Важна и форма предоставления игры. Обычно выделяют нормальную, или матричную, форму и развернутую, заданную в виде дерева. Чтобы установить первую связь со сферой управления, игру можно описать следующим образом. Два предприятия, производящие однородную продукцию, стоят перед выбором. В одном случае они могут закрепиться на рынке благодаря установлению высокой цены, которая обеспечит им среднюю картельную прибыль ПK. При вступлении в жесткую конкурентную борьбу оба получают прибыль ПW. Если один из конкурентов устанавливает высокую цену, а второй – низкую, то последний реализует монопольную прибыль ПM, другой же несет убытки ПG. Подобная ситуация может, например, возникнуть когда обе фирмы должны объявить свою цену, которая впоследствии не может быть пересмотрена. При отсутствии жестких условий обоим предприятиям выгодно назначить низкую цену. Стратегия “низкой цены” является доминирующей для любой фирмы: вне зависимости от того, какую цену выбирает конкурирующая фирма, самой всегда предпочтительней устанавливать низкую цену. Но в таком случае перед фирмами возникает дилемма, так как прибыль ПK (которая для обоих игроков выше, чем прибыль ПW) не достигается. Стратегическая комбинация “низкие цены/низкие цены” с соответствующими платежами представляет собой равновесие Нэша, при котором ни одному из игроков невыгодно сепаратно отходить от выбранной стратегии. Подобная концепция равновесия является принципиальной при разрешении стратегических ситуаций, но при определенных обстоятельствах она все же требует усовершенствования. Что касается указанной выше дилеммы, то ее разрешение зависит, в частности, от оригинальности ходов игроков.

Список основных источников опорной литературы

1. Б.Банди, Основы линейного программирования. М: Высшая мат.,1989г.

2. Б.Т Кузнецов Математические методы и модели исследования операций. М: Юнити,2005г.

3. В.Н. Ашихмин и др. Введение в математическое моделирование, М: Логос, 2005г.

4. Т.Л. Партыко, И.И. Попов. Математические методы, М: Форум, 2003г.

5. В.В. Фаронов. Программирование на языке С++, СПб.: Питер, 2006г.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее