Багатокритеріальні задачі. Паретовскіе рішення » Українські реферати
Теми рефератів
Авіація та космонавтика Банківська справа Безпека життєдіяльності Біографії Біологія Біологія і хімія Біржова справа Ботаніка та сільське гос-во Бухгалтерський облік і аудит Військова кафедра Географія
Геодезія Геологія Держава та право Журналістика Видавнича справа та поліграфія Іноземна мова Інформатика Інформатика, програмування Історія Історія техніки Комунікації і зв'язок Краєзнавство та етнографія Короткий зміст творів Кулінарія Культура та мистецтво Культурологія Зарубіжна література Російська мова Маркетинг Математика Медицина, здоров'я Медичні науки Міжнародні відносини Менеджмент Москвоведение Музика Податки, оподаткування Наука і техніка Решта реферати Педагогіка Політологія Право Право, юриспруденція Промисловість, виробництво Психологія Педагогіка Радіоелектроніка Реклама Релігія і міфологія Сексологія Соціологія Будівництво Митна система Технологія Транспорт Фізика Фізкультура і спорт Філософія Фінансові науки Хімія Екологія Економіка Економіко-математичне моделювання Етика Юриспруденція Мовознавство Мовознавство, філологія Контакти
Українські реферати та твори » Экономико-математическое моделирование » Багатокритеріальні задачі. Паретовскіе рішення

Реферат Багатокритеріальні задачі. Паретовскіе рішення

p> for (int j = 0; j

list.Add (Convert.ToInt32 (dataGridView1 [j, i]. Value.ToString ()));

y.Add (list);

}

}

else if (tabControl1.SelectedIndex == 1)

{

for (int i = 0; i

{

var list = new List ();

for (int j = 0; j

{

int sum = 0;

for (int k = 0; k

{

int ai = Convert.ToInt32 (dgA [k, j]. Value.ToString ());

int ki = Convert.ToInt32 (dgK [k, j]. Value.ToString ());

int xi = Convert.ToInt32 (dgX [k, i]. Value.ToString ());

sum + = ai * Convert.ToInt32 (Math.Pow ((double) xi, (double) k));

}

list.Add (sum);

}

y.Add (list);

}

}

}

private void button2_Click (object sender, EventArgs e)

{

textBox1.Text = "";

paretoSet = new List ();

if (y.Count == 0)

GetValuesFromGrid ();

pareto = new Pareto ();

paretoSet = pareto.GetPareto (y);

paretoSet2 = pareto.GetPareto2 (y);

WriteList ("метод1:", paretoSet);

WriteList ("метод2:", paretoSet2);

SolutionsView solView = new SolutionsView (pareto.GetParetoList (y));

solView.Show ();

if (krit == 2 | | n == 2)

DrawGraph ();

}

private void WriteList (string text, List set)

{

textBox1.Text + = text;

foreach (int val in set)

textBox1.Text + = (val +1). ToString () + ";";

}

private void InitGrid ()

{

krit = Convert.ToInt32 (comboBox3.Text);

var = Convert.ToInt32 (comboBox4.Text);

comp = Convert.ToInt32 (comboBox5.Text);

dgA.ColumnCount = comp;

dgK.ColumnCount = comp;

dgX.ColumnCount = comp;

dgA.RowCount = krit;

dgK.RowCount = krit;

dgX.RowCount = var;

}

private void button3_Click (object sender, EventArgs e)

{

InitGrid ();

for (int q = 0; q

{

dgK.Columns [q]. Name = (q + 1). ToString ();

dgA.Columns [q]. Name = (q + 1). ToString ();

dgX.Columns [q]. Name = (q + 1). ToString ();

}

}

private void dataGridView1_CellFormatting (object sender, DataGridViewCellFormattingEventArgs e)

{

}

// Двовимірний випадок/графічне представлення

private void DrawGraph ()

{

GraphView form2 = new GraphView ();

form2.Show ();

GetValuesFromGrid ();

int cnt;

if (m == 0)

cnt = var;

else cnt = m;

int [] x_ = new int [cnt - paretoSet.Count];

int [] y_ = new int [cnt - paretoSet.Count];

for (int i = 0; i

{

x_ [i] = y [pareto.deleted [i]] [0];

y_ [i] = y [pareto.deleted [i]] [1];

}

cnt = paretoSet.Count;

int [] pareto_x = new int [cnt];

int [] pareto_y = new int [cnt];

for (int i = 0; i

{

pareto_x [i] = y [paretoSet [i]] [0];

pareto_y [i] = y [paretoSet [i]] [1];

}

panel1 = form2.GetPanel ();

var control = new Graph (). DisplayGrahpics (panel1, x_, y_, pareto_x, pareto_y);

panel1.Controls.Clear ();

panel1.Controls.Add (control);

panel1.Invalidate ();

}

// Random values ​​

private void button2_Click_1 (object sender, EventArgs e)

{

Random random = new Random ();

if (tabControl1.SelectedIndex == 0)

{

for (int i = 0; i

{

for (int j = 0; j

{

dataGridView1 [j, i]. Value = random.Next (20);

}

}

}

else if (tabControl1.SelectedIndex == 1)

{

for (int i = 0; i

{

for (int j = 0; j

{

dgA [i, j]. Value = random.Next (5);

dgK [i, j]. Value = random.Next (5);

}

for (int q = 0; q

{

dgX [i, q]. Value = random.Next (5);

}

}

}

}

private void сохранітьКакToolStripMenuItem_Click (object sender, EventArgs e)

{

if (this.saveFileDialog1.ShowDialog () == DialogResult.OK)

{

if (y.Count == 0)

GetValuesFromGrid ();

new File (). WriteData (y, this.saveFileDialog1.FileName);

}

}

private void откритьToolStripMenuItem_Click (object sender, EventArgs e)

{

if (this.openFileDialog1.ShowDialog () == DialogResult.OK)

{

y = new File (). ReadData (this.openFileDialog1.FileName);

FillGridFromList (y);

}

}

private void FillGridFromList (List > list)

{

n = list [0]. Count;

m = list.Count;

dataGridView1.ColumnCount = n;

dataGridView1.RowCount = m;

comboBox1.Text = n.ToString ();

comboBox2.Text = m.ToString ();

for (int i = 0; i

{

for (int j = 0; j

dataGridView1 [j, i]. Value = list [i] [j];

}

}

}

}


4. Приклад роботи програми 4.1 Багатокритеріальна задача

1) Реалізуємо приклад, описаний у посібнику № 1 з переліку використаної літератури. Для цього скористаємося вже заготовленим файлом прімер1.txt:

2) Знайдемо Парето-оптимальні рішення:


4.2 Двухкрітеріальная завдання

1) Продемонструємо роботу програми для двухкрітеріальной завдання. Нехай кількість рішень буде одно 11.

2) Результат роботи програми:


Червоним кольором виділені Парето-оптимальні рішення. Чорним - домініруемие рішення.


3. Аналітичне завдання критеріїв

Нехай кількість критеріїв 6

Кількість рішень 16

Вагові значення будуть знаходитися за формулою:

, де p - число критеріїв, n - кількість компонент рішення, a, k, x - задаються в таблиці:

В результаті отримуємо список Парето-оптимальних рішень, які складаються з трьох векторів:


Висновки

У результаті проробленої роботи було розроблено програмний засіб для пошуку Парето-оптимальних рішень для багатокритеріальних задач.

Цей додаток може використовуватися лише як демонстраційно-навчальне по темі В«Багатокритеріальні завдання. Безліч Парето В»дисципліниВ« Теорія прийняття рішень В». Це пов'язано з тим, що практично неможливо формалізувати математичну модель векторних оцінок. Кожна задача пошуку оптимальних рішень вимагає власного підходу.


Використана література

1. В.Д. Ногін. Прийняття рішень при багатьох критеріях. Учебнометодіческое

посібник. - СПб. Видавництво В«ЮТАСВ», 2007. - 104 с.

2. Парето-оптимальні рішення багатокритеріальних задач. Подінвоскій В.В., Ногін В.Д. -М. Головна редакція фізико-математичної літератури, 1982. - 256с.

Використовувані програмні засоби

Microsoft Visual Studio 2010



Предыдущая страницаСтраница 3 из 3

Друкувати реферат
Замовити реферат
Замовлення реферату
Реклама

Наверх Зворотнiй зв'язок