Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Динамическое программирование задача оптимального распределения ресурсов C#

Автор:   •  Ноябрь 17, 2018  •  Лабораторная работа  •  3,584 Слов (15 Страниц)  •  1,556 Просмотры

Страница 1 из 15

Динамическое программирование задача оптимального распределения ресурсов C#

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace opt_res

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private int columns; //количество столбцов

private int rows; //количество строк

private double[,] mass; //входная матрица

private double[] vect; // входные ресурсы

private void calculate()

{

if (mass == null)

return;

List<double> a = new List<double>();

List<double> b = new List<double>();

List<double> c = new List<double>();

List<KeyValuePair<double, double>> n = new List<KeyValuePair<double, double>>();

KeyValuePair<double, double> par;

List<List<KeyValuePair<double, double>>> list = new List<List<KeyValuePair<double, double>>>();

for(int i = 0; i < rows; i++)

{

a.Add(mass[i,0]);

}

for (int i = 0; i < rows; i++)

{

par = new KeyValuePair<double, double>(vect[i], mass[i, 0]);

n.Add(par);

}

list.Add(n);

n = new List<KeyValuePair<double, double>>();

//n.Clear();

c.Add(0);

n.Add(par = new KeyValuePair<double, double>(0, 0));

int colnumb = 1;

double max = -1;

int rindx = 2;

int res = 0;

for (int i = 0; i < columns - 1; i++)

{

for (int jnd = 0; jnd < rows; jnd++)

{

b.Add(mass[jnd, colnumb]);

}

for (int j = 0; j < a.Count - 1; j++)

{

int l = rindx - 1;

for (int z = 0; z < rindx; z++)

{

if (b[z] + a[l] > max)

{

max = a[l] + b[z];

res = z;

}

l--;

}

c.Add(max);

par = new KeyValuePair<double, double>(vect[res],max);

n.Add(par);

rindx++;

}

list.Add(n);

b.Clear();

rindx = 2;

max = -1;

colnumb++;

a = c;

if (i + 1 == columns - 1)

break;

c = new List<double>();

n = new List<KeyValuePair<double, double>>();

n.Add(par = new KeyValuePair<double, double>(0, 0));

c.Add(0);

}

double res1 = 200;

max = -1;

double supmax = 0;

int indx =0;

int jndx =0;

while (res1

...

Скачать:   txt (8.7 Kb)   pdf (56.5 Kb)   docx (15.5 Kb)  
Продолжить читать еще 14 страниц(ы) »
Доступно только на Essays.club