Визначення стратегії оптимального розподілу об’єму пам’яті між комп’ютерами з використанням методу динамічного програмування

Необхідність використання підходів і методів ТПР в управлінні. Основні поняття теорії прийняття рішень. Процес прийняття управлінських рішень. Метод динамічного програмування. Алгоритм рішення задач динамічного програмування. Моделювання системи.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 21.12.2016
Размер файла 346,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Міністерство освіти і науки України

Харківський національний університет

Будівництва та архітектури

Кафедра економічної кібернетики та інформаційних технологій

Курсоваа робота

з дисципліни "Теорія прийняття рішень"

на тему: "Визначення стратегії оптимального розподілу об'єму пам'яті між комп'ютерами з використанням методу динамічного програмування"

Зміст

Вступ

Розділ 1. Постановка задачі. Опис предметної області

Розділ 2. Теоретичні відомості

2.1 Основні поняття теорії прийняття рішень

2.2 Алгоритм рішення задач динамічного програмування

Розділ 3. Визначення оптимальної стратегії розподілу ресурсів

3.1 Моделювання системи

3.2 Рішення програмних засобом

Висновки

Список літератури

Додаток

Вступ

Мистецтво прийняття найкращих рішень, засноване на досвіді та інтуїції, є сутністю будь-якої сфери людської діяльності.

Як самостійна дисципліна загальна теорія прийняття рішень (ТПР) сформувалася на початку 60-х років, тоді ж була сформульована основна мета цієї теорії - раціоналізувати процес прийняття рішень. У наступні роки було створена і прикладна теорія статистичних рішень, що дозволяє аналізувати і вирішувати широкий клас управлінських завдань, пов'язаних з обмеженим ризиком - проблеми вибору, розміщення, розподілу і т.д.

В даний час теорія прийняття рішень застосовується переважно для аналізу тих ділових проблем, які можна легко і однозначно формалізувати, а результати дослідження адекватно інтерпретувати. Так, наприклад, методи ТПР використовують в самих різних областях управління - при проектуванні складних технічних і організаційних систем, плануванні розвитку міст, виборі програм розвитку економіки і енергетики регіонів, організації нових економічних зон і т.д.

Необхідність використання підходів і методів ТПР в управлінні очевидна: швидкий розвиток і ускладнення економічних зв'язків, виявлення залежності між окремими складними процесами і явищами, які раніше здавалися не пов'язаними один з одним, призводять до різкого зростання труднощів прийняття обґрунтованих рішень. Витрати на їх здійснення безперервно збільшуються, наслідки помилок стають все серйозніше, а звернення до професійного досвіду і інтуїції не завжди призводить до вибору найкращої стратегії. Використання методів ТПР дозволяє вирішити цю проблему, причому швидко і з достатнім ступенем точності [1].

Розділ 1. Постановка задачі. Опис предметної області

Метою роботи є оволодіти прийомами прийняття рішень, набути навички використання принципу цільового розкладення та опанувати метод динамічного програмування.

Під час виконання курсової роботи слід побудувати структуру складної організаційної системи, використовуючи метод динамічного програмування визначити стратегію оптимального розподілу ресурсів та створити програмний засіб, що забезпечує автоматизацію визначення оптимальної стратегії.

В даному випадку складною організаційною системою виступає сервер, а ресурсом - його об'єм пам'яті. Системний адміністратор повинен розділити між користувачами ресурси відповідно до їх роду діяльності. Він повинен зробити це таким чином, щоб усі користувачі могли як найефективніше працювати.

Якщо розглядати таку систему на прикладі кафедри, то можна зробити наступний висновок: викладачам, що викладають на сервері свої методичні матеріали та завдання, потрібно більше ресурсів ніж студентам, що тільки тимчасово зберігають там результати свої робіт, але менше ніж завідуючому кафедри, який окрім навчальних матеріалів зберігає ще й документи (рис. 1.1).

Рисунок 1.1 - Розділення ресурсів між агрегатами

Якщо розглядати приклад будь-якої звичайної it-компанії, бухгалтеру місце потрібне лише для зберігання документів, тому йому можна виділити місця менше, ніж програмісту, якому потрібно достатньо простору для апробації своїх програм. А дизайнеру потрібно більше місця ніж програмісту, так як графічні пакети потребують багато ресурсів.

Розділ 2. Теоретичні відомості

2.1 Основні поняття теорії прийняття рішень

Під прийняттям управлінських рішень можна розуміти процес їх розробки (підготовки) та вибору.

Рішення - це вибір певного поєднання мети, дій, спрямованих на досягнення цієї мети, і способів використання наявних ресурсів.

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

У вузькому сенсі прийняття рішень - це заключний акт аналізу варіантів, результат вибору.

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

Процес прийняття рішень може бути збільшено поділені на 2 операції: вироблення рекомендацій фахівцями з вибору кращого варіанти і прийняття остаточного варіанту безпосередньо особою, приймає рішення (ОПР).

Методи прийняття рішень

Процес прийняття управлінських рішень досить складний і багатогранний, а також залежить від кваліфікації керівника, його стилю керівництва, ситуації, культури організації та ін.

До основних методів прийняття управлінських рішень належать: матричний, теорії ігор, дерево рішень, аналітично-систематизаційний, ділових ігор, груповий тощо.

Матричний - це занесення до матриці усіх можливих наслідків реалізації рішення.

Теорії ігор - це розрахунки можливих дій "противника", конкурента, інших сторін, які беруть участь у конфліктній ситуації.

Дерево рішень - це з'ясування розгалуження проблем і рішень шляхом теорії графіків та ймовірності (буде чи не буде).

Аналітично-систематизаційний - це сукупність трьох складових: аналізу ситуації, аналізу проблем і аналізу рішень.

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

Груповий - це створення деякими організаціями груп для прийняття важливих рішень.

Управлінські рішення є багатоаспектними і містять економічну, соціальну, організаційну, правову, психологічну і педагогічну складові.

Інформаційно-пошукові, письмові (графічні), розрахункові, логічні й аналітичні операції -- це складові управлінської діяльності, пов'язані з розробкою, прийняттям та реалізацією рішень.

Успішне рішення має бути: науково обґрунтованим, цілеспрямованим, кількісно та якісно визначеним, правомірним, оптимальним, своєчасним, комплексним, гнучким, повністю оформленим [2].

Метод динамічного програмування

Динамічне програмування - це метод оптимізації, який полягає в тому, що переміщення функції мети до оптимуму відбувається крок за кроком, причому кожний крок визначається лише поточним станом і не залежить від попередніх подій.

Нехай є деяка операція О, що розкладається на ряд послідовних "кроків" або "етапів", - наприклад, діяльність промислової галузі впродовж декількох років; або послідовність тестів, що застосовуються для контролю апаратури.

Розглянемо операцію О, що складається з m етапів. Нехай ефективність операції характеризується деяким показником W - виграшем. Припустимо, що виграш за всю операцію складається з виграшів на кожному з етапів:

де wi - виграш на i-му етапі.

Операція О є процесом, яким ми керуємо, обираючи значення різних параметрів. На кожному етапі обирається рішення, від якого залежить виграш на цьому етапі та за операцію в цілому, таке рішення - етапне управління. Сукупність всіх етапних управлінь є управлінням операцією в цілому і позначається літерою x, а етапні управління - літерами х 1, х 2,…xm:

Слід мати на увазі, що х 1, х 2,…xm в загальному випадку не числа, а можуть бути векторами, функціями, тощо.

Потрібно знайти таке управління х, за якого виграш W перетворюється на максимум:

Управління х*, за якого такий максимум досягається, називається оптимальним управлінням. Воно складається із сукупності оптимальних управлінь на кожному етапі:

Максимальний виграш, що досягається за цього управління позначимо W* [3]:

2.2 Алгоритм рішення задач динамічного програмування

Нехай в системі є певний запас ресурсу К, який треба розподілити між m агрегатами А 1, А 2, …, Аm. Кожен агрегат Аi за умови давання йому ресурсу в розмирі х приносить дохід, що можна знайти за функцією ц(хi). Всі функції ц(хi) (i=1,2,…m) задані та є неубутніми. Треба знайти такий розподіл засобів К між агрегатами, за якого вони приносять найбільший дохід.

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

,

де i=1,2,…m, j=1,2,…К.

Якщо 0<бi<1 виробнича функція моє вигляд S-образної кривої опуклої вгору (рис. 2.4.1), при бi>1 вона опукла донизу(рис. 2.4.2), а при бi=1 вона є лінійною (рис. 2.4.3).

Рисунок 2.4.1 - 0<бi<1

Рисунок 2.4.2 - бi>1

Рисунок 2.4.3 - бi=1

На першому етапі приймаємо вкладення засобів у перший агрегат А 1, на другому - в агрегат А 2 і так далі.

Система управління S в даному випадку - засоби або ресурси, які розподіляються. Стан системи S перед кожним кроком характеризується одним числом S - початковим запасом ще не вкладених засобів. В цій задачі етапним управлінням є засоби х 1, х 2,…xm, що виділяються агрегатам. Потрібно знайти оптимальне управління, тобто таку сукупність чисел х 1, х 2,…xm, за якої сумарних дохід буде максимальним:

.

Перший етап починаємо з оптимізації останнього m-го кроку. Нехай ми підійшли до цього кроку із залишком засобів S. Звичайно, треба вкласти всю суму S в агрегат Аm. Тому умовне оптимальне управління на m-ому кроці: віддати останньому агрегатові всі засоби S, тобто:

хm(S)=S,

а умовний оптимальний виграш

Wm(S)=цm(S).Задаючись цілою гамою значень S, для кожного значення S розраховуємо хm(S) та Wm(S). Таким чином останній крок оптимізовано.

На другому етапі переходимо до передостаннього (m-1)-го кроку. Припустимо ми підійшли до нього із запасом засобів S. Позначимо Wm-1(S) умовний оптимальний виграш на двох останніх кроках: (m-1)-м та m-м (який вже оптимізовано на першому етапі розв'язання). Якщо виділити (m-1)-му кроці (m-1)-му агрегату засоби у розмирі х, то на останній крок залишиться S-x. Тоді виграш на двох останніх кроках буде дорівнювати:

цm-1(х) + Wm(S-х),

треба знайти таке х, за якого виграш максимальний:

Wm-1(S)=max{цm-1(x)+Wm(S-x)}.

Цей максимум - умовний оптимальний виграш за останні два кроки, а значення х, за якого цей максимум досягається - умовне оптимальне управління на (m-1)-м кроці.

На наступних етапах оптимізуємо (m-2)-ий, (m-3)-ий і т.д. кроки. В загальному випадку, для будь-якого і-го кроку знаходимо умовний оптимальний виграш за всі кроки до цього та до кінця за формулою:

Wі(S)=max{ці(x)+Wі+1(S-x)}.

А відповідне йому умовне оптимальне управління хі(S) - те значення х, за якого цей максимум досягається.

На останньому етапі дійшли до першого агрегату А 1. На цьому кроці не треба перебирати значення S, оскільки точно відомо, що запас засобів перед першим кроком дорівнює К:

W*=W1(K)=max{ц1(x)+W2(K-x)}.

Таким чином максимальний виграш (дохід) від всіх агрегатів знайдений. Залишається лише "прочитати рекомендації". Те значення х, за якого досягається максимум, є оптимальне управління х 1* на першому кроці. Після того, як ці засоби вкладено у перший агрегат залишається К-х 1*. "Читаючи" рекомендацію для S=К-х 1*, другому агрегату надаємо оптимальну кількість засобів х 2*=х 2-(К-х 1*) і т.д. до кінця.

Розділ 3. Визначення оптимальної стратегії розподілу ресурсів

3.1 Моделювання системи

Вхідними даними для розрахунку даної системи є:

- m - кількість мережевих комп'ютерів, між якими слід ділити ресурси;

- K - об'єм ресурсів, який слід розділити між m комп'ютерами.

Також для кожного комп'ютера системний адміністратор повинен вказати коефіцієнти bi, di min, di max та бi (i=1,2,…m) для визначення ефективності певного агрегату.

Вихідні дані:

- максимальна ефективність системи;

- вектор-розподіл ресурсів між комп'ютерами.

Ефективність роботи агрегату при певній кількості ресурсів буде автоматично рахуватись в окремій процедурі.

Для спрощення розв'язку, кількість ресурсів є цілочисленими величинами. управління моделювання програмування

Також слід урахувати можливі помилки при вводі даних.

3.2 Рішення програмних засобом

Для розрахунку даної системи у середовищі Visual Studio 2013 мовою C# була створений програмний засіб.

Для нормальної роботи програмі необхідні процесор частотою від 1.6 Гц, монітор, миша і клавіатура.

Розроблене програмне забезпечення підтримується на операційних системах Windows XP/Vista/7/8/8.1/10 і не потребує встановлення.

Програма відкривається подвійним натиском на піктограму.

Першим етапом роботи з програмою є введення початкових даних: кількості агрегатів і об'єму пам'яті (рис. 3.2.1), що треба розподілити, та відповідних коефіцієнтів bi, di min, di max та бi (рис. 3.2.2).

Рисунок 3.2.1 - Введення кількості агрегатів та ресурсів

Рисунок 3.2.2 - Введення коефіцієнтів для агрегатів

Слід зауважити, що потрібно обов'язково заповнювати всі поля, інакше система видає повідомлення про помилки (рис. 3.2.3 та рис. 3.2.4).

Рисунок 3.2.3 - Помилка при незаповненому полі ресурсів

Рисунок 3.2.4 - Помилка при невказаному коефіцієнті

Якщо ж усі початкові дані введені, то по натисканню на кнопку "Розрахувати" система видає повідомлення, що містить значення максимальної ефективності при заданих вхідних даних та їх параметрах, та інформацію про те, як краще ефективніше розділити ресурси між комп'ютерами (рис. 3.2.5).

Рисунок 3.2.5 - Вивід рішення задачі

При натисканні кнопки "Назад" можна повернутися до вводу початкових даних та корегувати їх.

При натисканні кнопки "Вихід" система уточнює, чи дійсно вийти з програми (рис. 3.2.6), та у випадку позитивної відповіді робота програми завершується.

Рисунок 3.2.6 - Вікно-попередження про вихід

При натисканні кнопки "Новий розв'яз" програма повертається до першого етапу введення даних (рис. 3.2.1).

Слід зазначити, що всі поля вводу обмежені на введення символів і приймають тільки числа, а поля для вводу бi ще сприймають кому. Тому програма буде нескладною у використання навіть для неуважного користувача.

Висновки

В даному курсовому проекті досягнуті всі поставлені завдання.

Для цього були опрацьовані теоретичні матеріали, основні поняття та методи теорії прийняття рішень.

У реальності всі робочі процеси та явища функціонують і розвиваються в часі, тобто за своєю природою динамічні. Це вимагає від адміністраторів мережі розв'язання практичних задач, в яких необхідно враховувати можливі зміни процесів у часі за умов, що процесом можна керувати, тобто впливати на хід його розвитку. Тому в ході виконання курсової роботи для досягнення поставленої мети був вивчений та опрацьований метод динамічного програмування, набуті навички прийняття управлінських рішень та побудована структура розподілу системним адміністратором пам'яті на сервері між користувачами мережі.

Також були покращені знання мови програмування C# та вміння роботи з простором розробки Visual Studio Community 2013.

Також на основі предметної області та поставленої задачі був створений програмний засіб, що визначає стратегію оптимального розподілу ресурсів.

Отриманий засіб є простим у використанні і може бути пристосований для розподілу ресурсів у будь-якій галузі.

Список літератури

1. Урицкая О.Ю. Теория принятия решений. Курс лекций.

2. StudFiles [Електронний ресурс]. URL: http://www.studfiles.ru/preview

3. Конспект лекцій з дисципліни "Теорія прийняття рішень", Солодовнік Г.В.

4. Ларичев О.И. Наука и искусство принятия решений. - М.: Наука. 1979. - 200 с.

5. 2. Вентцель Е.С. Исследование операций: задачи, принципы, методология. - М.: Наука, Главная редакция физико-матеметической литературы, 1980. 208с.

6. Орлов А.И. Теория принятия решений: учебник. - М.: Экзамен, 2006. - 573 с. ISBN 5-472-01393-3

7. Литвак Б.Г. Разработка управленческого решения - М.: Издательство "Дело", 2004 г. - 392 с.

8. Выкидалка. Ру [Електронний ресурс]. URL: http://vikidalka.ru/3-123621.html

Додаток

Лістинг програми

public partial class Form1 : Form

{

public Form1()

{InitializeComponent();}

int agregaty = 0;

int resourse = 0;

List<TextBox> MainList = new List<TextBox>() { };

List<Class_agr> all_a = new List<Class_agr>() { };

private void next1_Click(object sender, EventArgs e)

{if ((agr.Text == string.Empty)||(komp.Text == string.Empty))

{warning.Text = "Введіть кількість комп'ютерів та об'єм пам'яті!";

return; }

warning.Text = "";

groupBox1.Visible = true;

agregaty = Convert.ToInt16(agr.Text);

resourse = Convert.ToInt32(komp.Text);

List<string> names = new List<string>() { "d min", "d max", "б", "b" };

for (int i = 0; i < names.Count; i++)

{Label lll1 = new Label();

lll1.Text = names[i];

lll1.Location = new Point(110+i*100, 25);

lll1.Size = new Size(70, 20);

panel1.Controls.Add(lll1); }

for (int j = 0; j < agregaty; j++)

{for (int y = 1; y < 5; y++)

{Label lbl = new Label();

int z = j + 1;

lbl.Size = new Size(70, 30);

lbl.Text = "Для " + z;

lbl.Location = new Point(10, 50 + j * 30);

panel1.Controls.Add(lbl);

TextBox textBox1 = new TextBox();

textBox1.Location = new Point(100*y, 50 + j * 30);

textBox1.Size = new Size(70, 50);

MainList.Add(textBox1);

panel1.Controls.Add(textBox1);

if (y == 3) { textBox1.KeyPress += myTextBox_for_alfa_KeyPress; }

else { textBox1.KeyPress += myTextBox_KeyPress; }

}

}

}

private void myTextBox_KeyPress(object sender, KeyPressEventArgs e)

{char c = e.KeyChar;

e.Handled = !(char.IsDigit(c) || c == '\b'); }

private void myTextBox_for_alfa_KeyPress(object sender, KeyPressEventArgs e)

{char c = e.KeyChar;

e.Handled = !(char.IsDigit(c) || c == ',' || c == '\b'); }

private void Back2_Click(object sender, EventArgs e)

{panel1.Controls.Clear();

MainList.Clear();

groupBox1.Visible = false;

warning2.Text = "";}

private void Next2_Click(object sender, EventArgs e)

{for (int i = 0; i < MainList.Count; i++)

{if (MainList[i].Text == string.Empty)

{warning2.Text = "Заповніть всі поля!";

return; }

}

rish(MainList, lble);

groupBox2.Visible = true; }

public void rish(List<TextBox> lt, Label lb)

{for (int i = 0; i < agregaty*4; i = i+4)

{Class_agr new_a = new Class_agr(Convert.ToDouble(lt[i].Text), Convert.ToDouble(lt[i + 1].Text), Convert.ToDouble(lt[i + 3].Text), Convert.ToDouble(lt[i + 2].Text));

all_a.Add(new_a);}

all_a[agregaty-1].culc_last(resourse);

for (int i = agregaty - 2; i >0; i--)

{all_a[i].culc(all_a[i+1],resourse); }

all_a[0].culk_first(all_a[1], resourse);

lb_ef.Text = "Максимальна ефективність системи = " + round(all_a[0].ws[0]) ;

vector(all_a,lble); }

private void button1_Click(object sender, EventArgs e)

{groupBox2.Visible = false; }

private void ext_Click(object sender, EventArgs e)

{MessageBoxButtons button = MessageBoxButtons.YesNo;

DialogResult result;

result = MessageBox.Show("Дійсно вийти з програми?", "Вихід", button);

if (result == System.Windows.Forms.DialogResult.Yes)

{this.Close();}

}

private void button2_Click(object sender, EventArgs e)

{groupBox2.Visible = false;

panel1.Controls.Clear();

groupBox1.Visible = false;

agr.Text = "";

komp.Text = "";

warning2.Text = "";

MainList.Clear();

all_a.Clear();}

private void agr_TextChanged(object sender, EventArgs e)

{next1.Enabled = agr.Text.Length != 0; }

private void vector(List<Class_agr> l_a, Label lll)

{lll.Text = "";

lll.Text = "1 комп'ютеру краще віддати " + Convert.ToString(l_a[0].xs[0])+ " ГБ \n";

int i = resourse-l_a[0].xs[0];

int j = 1;

if (i > 0)

{while (j < agregaty)

{if (i > 0)

{lll.Text = lll.Text + (j + 1) + " комп'ютеру краще віддати " + Convert.ToString(l_a[j].xs[i - 1]) + " ГБ \n";

i = i - l_a[j].xs[i - 1]; }

else{lll.Text = lll.Text + (j + 1) + " комп'ютеру краще віддати 0 ГБ \n"; }j++;}}

else

lll.Text = "Краще віддати всі ресурси першому комп'ютеру";

}

static double round(double x)

{return Math.Round(x * 100) / 100; }

}

class Class_agr

{public double dmin;

public double dmax;

public double b;

public double alfa;

public List<int> xs = new List<int>() { };

public List<double> ws = new List<double>() { };

public Class_agr(double dmin, double dmax, double b, double alfa)

{this.dmin = dmin;

this.dmax = dmax;

this.b = b;

this.alfa = alfa; }

public double eff(int d)

{return b*Math.Pow((d/(dmax-dmin)),alfa); }

public void culc_last(int res)

{for (int i = 1; i <= res; i++)

{int j = i;

xs.Add(j);

ws.Add(eff(j)); }

}

public void culc(Class_agr previos, int res)

{for (int i = 1; i <= res; i++)

{int maxxs = 0;

double maxws = previos.eff(i);

for (int j = 1; j <= i; j++)

{if (maxws < eff(j) + previos.eff(i-j))

{maxxs = j;

maxws = eff(j) + previos.eff(i - j); }

}

xs.Add(maxxs);

ws.Add(maxws); }

}

public void culk_first(Class_agr previos, int res)

{int maxxs = 0;

double maxws = previos.eff(res);

for (int j = 1; j <= res; j++)

{if (maxws < eff(j) + previos.eff(res - j))

{maxxs = j;

maxws = eff(j) + previos.eff(res - j); }

}

xs.Add(maxxs);

ws.Add(maxws); }

}

Размещено на Allbest.ru

...

Подобные документы

  • Загальні відомості, методи та постановка задачі динамічного програмування. Практичне застосування методу динамічного програмування на прикладі розподілення вантажів між 4-ма торговими суднами. Рекурентна природа обчислень в динамічному програмуванні.

    курсовая работа [1,1 M], добавлен 22.05.2015

  • Лінійне програмування як один з найбільш популярних апаратів математичної теорії оптимального управління рішень. Опис існуючих методів розв’язку задач лінійного програмування. Завдання, основні принципи, алгоритми і головна мета лінійного програмування.

    курсовая работа [363,8 K], добавлен 03.12.2009

  • Класифікація інформаційних систем. Дослідження особливостей мови UML як засобу моделювання інформаційних систем. Розробка концептуальної моделі інформаційної системи поліклініки з використанням середи редактора програмування IBM Rational Rose 2003.

    дипломная работа [930,4 K], добавлен 26.10.2012

  • Системи автоматичного керування. Описання методу стикування розв'язків на основі теореми по n-інтервалів. Застосування методу динамічного програмування (рівняння Р. Белмана). Моделювання задачі синтезу та аналізу на електронній обчислювальній машині.

    контрольная работа [632,5 K], добавлен 31.03.2014

  • Використання графічного методу і симплекс-методу при вирішенні задач лінейного програмування. Сутність двоякого симплекс-методу і М-методу, приклади використання. Аналіз методу динамичного програмування. Специфіка вирішення матричної, антагоністичної гри.

    контрольная работа [1,1 M], добавлен 02.07.2011

  • Комп’ютерні інформаційні системи СППР (системи підтримки прийняття рішень). Призначення, переваги, компоненти, архітектура. Приклади використовуваних СППР, їх основні види і опис. Нейронні мережі та СППР. Чинники, які сприяють сприйняттю і поширенню СППР.

    курсовая работа [323,7 K], добавлен 28.12.2010

  • Метод Якобі є узагальненням симплекса-методу лінійного програмування. Він використовується для дослідження чутливості оптимального значення функції до змін у правих частинах обмежень. Умови існування екстремумів функцій при відсутності обмежень.

    курсовая работа [326,6 K], добавлен 09.01.2009

  • Планування цілеспрямованих дій і прийняття рішень. Характеристика методу повного перебору - універсального методу вирішення оптимізаційних задач, якщо множина допустимих рішень обмежена. Експоненційна складність евристичного пошуку. Складність алгоритмів.

    реферат [62,2 K], добавлен 13.06.2010

  • Розробка програми для моделювання роботи алгоритму Дейкстри мовою C# з використанням об’єктно-орієнтованих принципів програмування. Алгоритм побудови робочого поля. Програмування графічного інтерфейсу користувача. Тестування програмного забезпечення.

    курсовая работа [991,4 K], добавлен 06.08.2013

  • Топологічний аналіз початкового графу. Розробка підходів до розпаралелювання і послідовного рішення задачі – розрахунку потоків повітря у кожній гілці мережевого динамічного об’єкту – вентиляційної мережі. Аналіз ефективності паралельних рішень.

    курсовая работа [743,4 K], добавлен 27.08.2012

  • Огляд та аналіз методів розв’язання системи диференціальних рівнянь та вибір методів рішення. Алгоритми методів Ейлера. Вибір методу рішення задачі Коші. Рішення диференціальних рівнянь. Отримання практичних навиків програмування на мові Паскаль.

    курсовая работа [174,3 K], добавлен 06.03.2010

  • Використання мови програмуванння Java при виконанні "задачі лінійного програмування": її лексична структура і типи даних. Методи розв’язання задачі. Особливості логічної структури програми, побудова її зручного інтерфейсу за допомогою симплекс методу.

    курсовая работа [437,9 K], добавлен 24.01.2011

  • Загальний вид двовимірного завдання лінійного програмування. Алгоритм рішення задач графічним методом. Максимізація (мінімізація) цільової функції. Послідовність рішення завдань лінійного програмування симплексом-методом. Принцип перетворення Гауса.

    контрольная работа [149,8 K], добавлен 24.11.2010

  • Методика та порядок програмування алгоритмів циклічної структури із заданим числом повторень за допомогою мови програмування VAB. Алгоритм роботи з одновимірними масивами. Програмування алгоритмів із структурою вкладених циклів, обробка матриць.

    курсовая работа [27,7 K], добавлен 03.04.2009

  • Фундаментальні поняття об'єктно-орієнтованого програмування. Система лінійних нерівностей та опуклі багатогранники. Системи лінійних рівнянь лінійної алгебри як частковий випадок систем лінійних обмежень. Використання середовища програмування Delphi7.

    курсовая работа [222,7 K], добавлен 20.05.2015

  • Теоретичні основи та приклади економічних задач лінійного програмування. Розробка математичної моделі задачі (запис цільової функції і системи обмежень) і програмного забезпечення її вирішення за допомогою "Пошуку рішень" в Excel симплекс-методом.

    курсовая работа [993,9 K], добавлен 10.12.2010

  • Об’єктно-орієнтоване програмування мовою С++. Основні принципи об’єктно-орієнтованого програмування. Розробка класів з використанням технології візуального програмування. Розробка класу classProgressBar. Базовий клас font. Методи тестування програми.

    курсовая работа [211,3 K], добавлен 19.08.2010

  • Постановка лінійної цілочисленної задачі. Теоретичні основи методів відсікання. Задача з булевими змінними. Перший та другий алгоритми Гомори. Алгоритм Дальтона й Ллевелина. Поняття припустимого й оптимального рішення. Область пошуку екстремума.

    курсовая работа [187,8 K], добавлен 27.01.2011

  • Розгляд особливостей мови програмування С++: основні можливості, характеристика функцій. Аналіз файлів з вхідними даними. Використання похідних класів як ефективний засіб об’єктно-орієнтованого програмування. Способи роздруківки графічного вирішення.

    курсовая работа [510,9 K], добавлен 14.03.2013

  • Розробка програми на мові програмування С++ з використанням об'єктно-орієнтованого програмування. Робота з файлами, графікою, класами, обробка числової інформації. Графічні засоби мови програмування. Алгоритм задачі та допоміжні програмні засоби.

    курсовая работа [102,5 K], добавлен 14.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.