- •1 Обчислення таблиць функцій.
- •2 Побудова графіків функцій.
- •5 Наближення функції
- •7. Оптимізація з обмеженнями (задача лінійного програмування).
- •8 Задача оптимізації з використанням графів.
- •9 Оптимізація з обмеженнями (Транспортна задача).
- •1. Обчислення таблиць функцій.
- •Метод Симпсона
- •5 Наближення функції
- •5.2 Обчислити таблицю значень наближеної функції g(X) за одержаною формулою в усіх точках таблиці значень, обчисленої в п.1 завдання.
- •5.3 Обчислити середньоквадратичну похибку відхилення заданої та наближеної функцій.
- •6. Одновимірна оптимізація
- •6.1 Знайти проміжки унімодальності функції f(X).
- •6.3 Обчислити з MathCad усі значення екстремумів функції f(X) на заданому проміжку.
- •8 Задача оптимізації з використанням графів.
- •9 Оптимізація з обмеженнями (Транспортна задача).
- •1.Теоретичні відомості.
- •10.Оптимізація з обмеженнями (Транспортна задача).
- •Метод половинного деления
- •Метод "золотого сечения"
- •Метод Симпсона
- •Список литератури
8 Задача оптимізації з використанням графів.
Визначити найкоротші маршрути від заданого поштового вузла до усіх інших. Матрицю відстаней поміж вузлами мережі поштового зв'язку наведено у таблиці 2 (Варіанти значень змінних наведено у таблиці 3). Заданий номер вузла - остання цифра номеру варіанта (цифра 0 відповідатиме вузлу 10).
Маршрут – это последовательность чередующих вершин графа, соединённых рёбрами.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <math.h>
#include "Unit1.h"
#include <stdio.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
const int N=10;
FILE*f;
char filedan[]="matrica.txt";
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int M,beg,fin,i,j;
f=fopen(filedan,"rt");
int gr[10][10],Lab[10],Act[10],pred[10],Temp[10];
Edit1->Text=IntToStr(10);
M=StrToInt(Edit2->Text);
beg=StrToInt(Edit3->Text);
fin=StrToInt(Edit4->Text);
Memo1->Clear();
Memo1->Lines->Add(IntToStr(N)+" "+IntToStr(M)+" "+IntToStr(beg)+" "+IntToStr(fin));
for(i=0;i<10;i++)
{for(j=0;j<10;j++)
{fscanf(f,"%i",&gr[i][j]);
StringGrid1->Cells[i+1][j+1]=StrToInt(gr[i][j]);
}
fscanf(f,"\n");
}
fclose(f);
for(i=0;i<N;i++)
{ Lab[i]=0;
Act[i]=0;
pred[i]=0;
for(i=0;i<N;i++)
Lab[i]=32767;
Act[beg]=1;
Lab[beg]=0;
i=beg;
do
{for(j=0;j<N;j++)
if(gr[i][j]!=0&&Lab[j]>Lab[i]+gr[i][j])
{Act[j]=1;
Lab[j]=Lab[i]+gr[i][j];
pred[j]=i;}
Act[i]=0;
int min,k,min_pos=-1;
min=32767;
for(k=0;k<M;k++)
if(Lab[k]<min&&Act[k]==1)
{min=Lab[k];
min_pos=k;}
i=min_pos;}
while(i!=1);
Edit5->Text=IntToStr(Lab[fin]);
j=fin;
i=1;
Temp[0]=fin;
while(j!=beg)
{Temp[i]=pred[j];
j=pred[j];
i++;
}
Memo1->Lines->Add("min puti "+IntToStr(beg)+"to"+IntToStr(fin));
for(j=i-1;j>0;j--)
Memo1->Lines->Add(IntToStr(Temp[j]));
Memo1->Lines->Add(IntToStr(fin));
}}
//---------------------------------------------------------------------------
9 Оптимізація з обмеженнями (Транспортна задача).
Розв'язати в Excel задачу перевезення вантажу з вузлів зв'язку на пункти сортування.
У відділеннях зв'язку ВЗ1,ВЗ2,ВЗ3,ВЗ4,ВЗ5,ВЗ6 накопичено вантажі відповідно в об'ємах: 20 +10я, ЗО, ЗО + 10л, 40, 25, 15 (центнерів), де п — номер індивідуального варіанта.
Пункти сортування ПС1, ПС2. ПС3 можуть прийняти вантажі у об'ємах, що становлять відповідно: 60+10л, 50-М0л і 50 (центнерів).
Транспортная задача является классической задачей исследования операций. Множество задач распределения ресурсов сводится именно к этой задаче.
Для решения транспортной задачи воспользуемся процедурой Поиск решения, которая находится в меню Сервис.
Имеются следующие исходные данные.
Перевозка груза с узлов связи в пункт сортировки:
|
ПС1 |
ПС2 |
ПС3 |
Огран |
ВЗ1 |
10 |
8 |
5 |
100 |
ВЗ2 |
5 |
6 |
6 |
30 |
ВЗ3 |
4 |
8 |
7 |
110 |
ВЗ4 |
11 |
4 |
5 |
40 |
ВЗ5 |
2 |
6 |
10 |
25 |
ВЗ6 |
4 |
3 |
8 |
15 |
ВЗ7 |
140 |
130 |
50 |
|
Для решения транспортной задачи на персональном компьютере с использованием EXCEL необходимо:
Ввести исходные данные в ячейки рабочего листа EXCEL;
Разметить блоки ячеек на рабочем листе EXCEL, необходимые для моделирования объемов перевозок, а также для формирования элементов математической модели и целевой функции;
Сформировать на рабочем листе EXCEL элементы математической модели и целевую функцию;
Настроить программу " Поиск решения" и выполнить ее.
Результаты поиска решения 1520
0 |
50 |
50 |
100 |
5 |
25 |
0 |
30 |
110 |
0 |
0 |
110 |
0 |
40 |
0 |
40 |
25 |
0 |
0 |
25 |
0 |
15 |
0 |
15 |
140 |
130 |
50 |
1520 |
Список: