Реферат по предмету "Информатика, программирование"


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

Міністерствоосвіти та науки України
Вінницькийнаціональний технічний університет
Інститутавтоматики, електроніки та комп’ютерних систем управління
ФакультетАКСУ
КафедраАІВТ
Курсоваробота
здисципліни
«Алгоритмічнімови та програмування»
Аналізметодів рішення задачі лінійногопрограмування
симплекс-методом

Технічне завдання
 
/>Розробити програму, щодозволяє знайти рішення системи рівнянь:
/>
при умовах />, що забезпечує найменше значення функції/>
Мова програмування – Java.

Зміст
Анотація
Вступ
1. Загальнітеоретичні відомості
1.1Мова програмування Java
1.1.1Лексична структура
1.1.2Типи даних
1.1.3Короткий огляд задачі, що розв’язується
2. Функціональнепризначення
3.Аналіз методів розв’язання даної задачі
3.1Метод потенціалів
3.2Симплекс метод
3.3Двоїстий симплекс метод
4.Опис логічної структури програми
5.Технічні засоби
6.Виклик та завантаження
7.Вхідні та вихідні данні
8.Інструкція для користувача
Висновки
Література

Анотація
Дана курсова робота написана на мові програмування Java. В курсовій роботі розглядається „задачалінійного програмування” та методи її розв’язання.
Поставлена задача розв’язана за допомогою симплекс методу.
Завдання курсової включає в себе побудову зручногоінтерфейсу.
 

Вступ
У грудні 1951 року державна комісія на чолі з академікомМстиславом Келдишем прийняла в експлуатацію першу в Радянському Союзі таконтинентальній Європі електронно-обчислювальну машину, розроблену підкерівництвом академіка Сергія Лебедєва у Києві в лабораторії обчислювальноїтехніки Інституту електротехніки Академії наук України. З того часу минулопонад п’ятдесят років, і тепер ми вже точено знаємо, що це була епохальнаподія. Вона ознаменувала собою початок нового етапу в розвиткунауково-технічного прогресу суспільства.
Машину назвали МЭСМ (малая электронно-счетная машина), іпершими на ній розв’язували свої задачі всесвітньо відомі математики тамеханіки – академіки Келдиш, Дородніцин, Зельдович, Савін та багато іншихмолодих спеціалістів, які згодом стали відомими вченими.
Не варто порівнювати МЭСМ із сучасними комп’ютерами ні запам’яттю, ні за здатністю працювати в різноманітних технічних комплексах.Головне значення тієї першої машини полягає в тому, що при її розробці булизакладені основоположні структурно-алгоритмічні принципи організації обчислень,присутні у всіх поколіннях обчислювальних машин.
В середині дев’яностих років на базі Інституту кібернетикиім. В. Глушкова був створений Кібернетичний центр, до складу якого ввійшлитакож Інститут прикладного системного аналізу, Міжнародний науково-навчальнийцентр інформаційних технологій та систем. Сьогодні в даному Кібцентрі працюєблизько 2500 співробітників, серед них – 135 докторів близько 500 кандидатівнаук. За своїм потенціалом ця наукова організація є однією з найпотужніших у галузіінформатики в світі. Інститути Кібцентру роблять вагомий внесок в розробкунових інтелектуальних інформаційних технологій (ІТ).
У сучасному суспільстві інформація є важливим і ціннимресурсом, а рівень розвитку країни оцінюється рівнем її інформатизації. Томувсі країни світу докладають чималих зусиль для забезпечення розвиткуінформаційної сфери, створення відповідного комп’ютерного середовища. Зусиллямибагатьох організацій, насамперед Кібернетичного центру НАН України, іншихколективів учених і фахівців в Україні, створена платформа розвиткуінформаційного суспільства.
До речі, світова індустрія інформаційних і комунікаційнихкомп’ютерних технологій, за оцінками Світового банку, становить близько 1000млрд. Дол.., і хоча темпи її розвитку найвищі у світовому ринку (11% щорічно),попит на засоби інформатизації залишається далеко незадоволеним і зростає ще більшими темпами. Така тенденціяпрогнозується і на наступні десятиріччя.
США явно випереджають інші промислово розвинені країни світуза темпами комп’ютеризації усіх сфер господарювання. Вони контролюють понад 65%світового комп’ютерного ринку, 63% ринку програмного забезпечення ЗахідноїЄвропи, 53% аналогічного ринку Японії. З десяти найбільших у світі фірм, щорозробляють прорамне забезпечення, шість – американські. Американським фірмамта університетам належить більша частина світових патентів у галузіінформаційних технологій.
У сфері розробки та використання ІТ справжньою революцієюстало створення Інтернету. У цій специфічній галузі світової економіки з річнимобігом більш як 500 млн. Доларів уже нині зайнято понад 3 млн. Людей.
Варто зазначити, досягнення українських вчених в галузіоптимізації, математичного моделювання – світового рівня! Саме цим пояснюєтьсятой факт, що в складеній конкурентній боротьбі за місце на світовому ринкукомп’ютерних технологій нашим фахівцям нерідко вдається знайти свою нішу іздобути визнання.
В Україні за різними експертними оцінками, протягом останніхроків спостерігається постійне зростання ринку комп’ютерних засобів (15-20%щорічно). Ринок комп’ютерного обладнання, програмних засобів і різноманітнихпослуг тільки у кризовому 1996 році у нашій країні можна оцінити не менш як у500 млн. Дол… США.
Отже, можемо зробите маленький висновок, рівень розвиткукомп’ютерних технологій стає складовою „невагомої економіки” – тобто „економікизнань” і невід’ємною частиною кожної країни, кожного із нас.

1. Загальні теоретичні відомості
 
1.1 Мова програмування Java
Джава (англ. Java) — об'єктно-орієнтована мова програмування, розробленана початку 90-их компанією Sun Microsystems. У офіційній реалізації, Javaпрограми компілюється в байткод, який компілюється в рідний машинний код призапуску. Sun Microsystems надає компілятор Java та віртуальну машину Java, якізадовольняють специфікації Java Community Process, під ліцезією GNU GeneralPublic License. Мова значно запозичила синтаксис із C і C++, але має простішуоб'єктну модель і менше низькорівненвих можливостей. Мова сценаріїв JavaScriptмає схожу із Java назву і синтаксис, але не повязана із Java. Мова програмування Java зародилася в 1991 р.в лабораторіях компанії Sun Microsystems inc. Головним мотивом створення Javaбула потреба в мові програмування, яка б не залежала від платформи (тобто від архітектури) і якуможна було б використовувати для створення програмного забезпечення, яке вбудовується в різноманітні побутові електронніприлади, такі як мобільні засоби зв'язку, пристрої дистанційного керування тощо. Розробка першоїробочої версії зайняла 18 місяців і вона мала назву «Oak», але 1995 р. проектбув перейменований на «Java». Найбільш цікавоювластивістю є те, що програма на Java компілюється в псевдокод, якийвиконується віртуальною машиною (реалізація такої машини — своя для кожноїплатформи). Цим досягається можливість виконувати програмне забезпечення підбудь-якою операційною системою, для якої реалізовано віртуальну машину. Період становлення Java співпав за часом з розквітомміжнародної інформаційної служби World Wide Web. Ця обставина відіграла вирішальнуроль в майбутньому Java, оскільки Web теж вимагала платформо-незалежнихпрограм. Як наслідок, були зміщені акценти в розробці Sun з побутовоїелектроніки на програмування для Інтернет.
Програми на Java утворені з визначень класів та інтерфейсів. Класимістять змінні та сталі, які утримують дані, методи, які виконують дії, таконструктори, які створююсть екземпляри класів — об'єкти. Дані можуть матипростий тип (наприклад байт, ціле число, символ) або бути посиланням на об'єкт.Мова Java є статично типізованою.
1.1.1 Лексичнаструктура
Javaпрограми записуються в Юнікоді, також надається лексичне перетворення, якедозволяє записувати символи Юнікоду керівними кодами Unicode за допомогою лише множини символів ASCII. Мова Java представляє текст послідовностями 16-бітний кодовиходиниць, використовуючи кодування UTF-16. За винятком коментарів, ідентифікаторів та вмісту символьних тарядкових літералів, всі вхідні елементи програми на Java складаються із символів ASCII або відповідних їм керівних кодів Unicode.
1.1.2 Типи даних
Java єсильно типізованою мовою, кожна змінна та вираз має тип, відомий на етапікомпіляції. Типи мови Java належать до двох категорій:прості (primitive) та вказівникові (reference). До простих типів належить бульовийтип та числові типи. Числові типи складаються із цілих типів byte, short, int, long, char та дійсних типів float, double. Вказівникові типи складаються ізкласів, інтерфейсів, масивів. Значенням вказівникового типу є вказівник наоб'єкт — екземпляр класу чи масиву. Рядки є об'єктами класу String.
1.1.3 Короткий огляд задачі, що розв’язується
Задача лінійного програмування — задача оптимізації злінійною цільовою функцією та допустимою множиною обмеженою лінійнимирівностями або нерівностями.
Тобто, необхідно мінімізувати
/> (1.1.3.1)
при обмеженнях:
/> (1.1.3.2)
/> (1.1.3.3)
/> (1.1.3.4)
де cj (j = 1,..., n), aij(i = 1, ..., m) — задані числа.
Задача максимізації функції зводиться до задачі мінімізаціїшляхом заміни знаків всіх коефіціентів cj на протилежні.
Лінійне програмування (та дослідження задачі лінійногопрограмування) є однією із найрозвинутишіх галузей математичного програмуваннята теорії оптимізації. Загальнапостановка задачі лінійного програмування, та один із підходів до їїрозв'язання (ідея розрішаючих множників або двоїстих оцінок) вперше наведено вроботі радянського вченого Канторовича Л. В. в 1939. В цій же роботі наміченоодин із методів розв'язання задачі — метод послідовного зменшення невязок.

2. Функціональне призначення
Задача лінійного програмування широко використовується длярішення задач прикладної математики.
В сучасній ринковій економіці в умовах жорсткої конкуренції іборотьби за кожен відсоток рентабельності – а, значить, конкурентної здатності– ефективність вирішення задач з багатьма взаємопов’язаними факторами набуваєвирішального значення, коли потрібно прорахувати ефективність виробничогопроцесу з огляду на різні фактори ризику – кон’юнктуру ринку, наявністьсировини, доступ до джерел енергії, демографічну ситуацію та навіть наслідки глобальногопотепління.

3. Аналіз методів розв’язання даної задачі
 
3.1 Метод потенціалів
Метод потенціалів — розроблений в 1940 радянськими вченими КанторовічемЛ. В. та Гавуріним Л. В. в застосуванні до транспортної задачі;
Розглянемо алгоритм даного методу:
1. Порівнюють загальний запас вантажу з сумарним попитом іі увипадку порушення балансу приводять задачу до закритої моделі.
2. Умову задачі записують у формі транспортної таблиці.
3. Будують початковий опорний план перевезень
4. Перевіряють умову для базисних клітин (їх повинно бути m+n-1): якщо ця умова не виконується, тов одну з вільних клітинок (як правило, в клітинку з найменшим тарифом)вписуюють число 0, і така клітина вважається базисною. Однак число 0 записуюютьтільки в ті вільні клітинки, які не утворюють циклів з раніше зайнятимиклітинками.
5. Обчислюють потенціали ui i vj. Кожному постачальнику (кожнійстрічці) ставлять у відповідність деяке число ui, яке називають потенціаломпостачальника Аі (і=1,m), і записуюють праворуч таблиці, а кожному споживачу (або стовпчику) –деяке число vj, яке називають потенціаломспоживача Вj (j=1,n), і записують під таблицею. Числа ui i vjвибирають так, щоб убудь-якій базисній клітинці їх сума дорівнювала тарифу, тобто ui+vj=сіj. Так, як кількість всіхпотенціалів ui i vj складає m+n, а зайнятих клітинок m+n-1, то для визначення чисел ui i vj доведется вирішувати систему із m+n-1 рівнянь з m+n невідомими. Тому одному із невідомихпотенціалів надають довільне значення. Тоді інші визначаються однозначно.
6. Для перевірки оптимальності плану переглядають вільніклітинки, для яких визначають оцінки ∆іj – різниця між тарифомклітинки і сумою потенціалів строки і стовпчика, тобто ∆іj= сіj-( ui+vj). Економічно, оцінка покаже наскільки грошових одиниць змінятся транспортні витрати від завантаження даноїклітинки одиницею вантажу. Якщо всі оцінки невід′ємні, тобто ∆іj≥0, то план оптимальнийі залишається підрахувати транспортні витрати. Інакше переходять до пункту 7.
7. З від′ємних оцінок ∆іj≤0 вибирають мінімальну. Нехайце буде ∆іk. Тоді клітинку (1, k) вводять в число базисних, тобто будують цикл позавантаженим клітинкам з початком в цій клітинці і перерозподіляють поставкитак, щоб баланс циклу зберігався. Для цьогго вершинам циклу приписують знаки„+” і ”-”, які чергуються, (вільній клітинці (1, k) приписують позитивний знак „+”). В„мінусових” клітинках віднаходять найменший вантаж w, тобто w=min xіj=xst, який і переміщається клітинкамизамкнутого циклу, тобто додається до перевозок xіj в клітинках зі знаком „+” (включаючивільну) і віднімається з перевозок xіj в клітинках із знаком ”-”. З цього слідує, що клітинка (s, t) стане вільною і змінна xst вийде з базису. Значенняінших базисних змінних переписуюються. Таким чином, отримуюють або одержуютьнову транспортну таблицю с поліпшеним планом, для якого транспортні витратизмінюються на величину ∆1k* xst. Переходять до пункту №4.
3.2 Симплекс-метод
Симплекс-метод — цей метод є узагальненням методу потенціалів для випадкузагальної задачі лінійного програмування. Розроблений американським вченимДанциґом Дж.-Б. в 1949 році.
Симплекс-метод — метод розв'язання задачі лінійного програмування, вякому здійснюється скерований рух по опорних планах до знаходження оптимальногорозв'язку; симплекс-метод також називають методом поступового покращення плану.
Розглянемо опис методу:
Нехай невироджену задачу лінійного програмування представлено вканонічному вигляді:
/> (3.2.1)
/> (3.2.2)
де X = (x1, …, xn) — вектор змінних, C = (c1, …., cn), B = (b1, …, bm)T,         Aj = (a1j, …, amj)T, j = 1, …, n — задані вектори, T — знак транспонування, та /> відмінні від нуля компонентиопорного плану, для полегшення пояснення розташовані на перших m місцях вектору X. Базис цього плану — /> Тоді
/> (3.2.3)
/> (3.2.4)
де /> значеннялінійної форми на даному плані. Так як вектор-стовпці матриці A лінійнонезалежні, будь який із векторів умов Aj розкладається по ним єдинимчином:
/> (3.2.5)
/> (3.2.6)
/> (3.2.7)
де xij — коефіцієнт розкладання. Системаумов

/> (3.2.8)
zk ≥0, xj = 0, j = m + 1,…, n, j ≠ k (3.2.9)
при заданому k визначає впросторі змінних задачі промінь, який виходить із точки, яка відповідаєопорному плану, що розглядається. Нехай значення змінної xk при русі по цьому проміню дорівнює θ, тоді значення базисних зміннихдорівнюють xi(θ). В цих позначеннях рівняння (5) можна представити ввигляді:
/> (3.2.10)
помноживши рівняння (3) на θ при j = k та віднявши відрівняння (1), отримаємо:
/> (3.2.11)
Із рівнянь (10-11) отримаємо:
/> (3.2.12)
Оскільки xi(θ) при θ = 0 визначають планзадачі, то найбільше θ, яке не порушує обмеження xi (θ) ≥0, визначається із умови:
/> (3.2.13)

де I = {i | xik > 0}
В силу невиродженості задачі мінімум досягається не більш ніждля одного i = J та θ > 0. Значення лінійної форми при θ = θ0визначається із рівнянь (9), (4), (2)
/> (3.2.14)
де Δk = zk — ck.Очевидно, Δj = 0 для j = 1, …, m.
Нехай /> — початковий базис із m одиничнихвекторів. Всі дані задачі записуються у вигляді симплекс-таблиці (першоїітерації обчислювального процесу). Симплекс-алгоритм розв'язання задачілінійного програмування складається із наступних операцій:
1. Знайти Δk = minjΔj.Якщо Δk = 0, тоді план, який розглядається оптимізовано; якщоΔk
2. Знайти θ0та l для якого />, із формули (10). ЯкщоI = Λ — порожня множина, лінійна форма необмежена зверху; якщо I ≠Λ вектор Al виводиться із базису;
3. По знайденим l, k обчислити нові значення елементівтаблиці по формулам
Перетворення (12) замінює вектор коефіцієнтів Xk =(x1k, …, xmk) на одиничний вектор Xk з xlk= 1. В силу монотонного збільшення x0 повернення до вже пройденого планунеможливе, а із скінченності кількості опорних планів випливає скінченністьалгоритму. Початковий опорний план з одиничним базисом можна отримати,розв'язавши описаним алгоритмом допоміжну задачу,

/> (3.2.15)
при обмеженнях
/> (3.2.16)
/> (3.2.17)
/> (3.2.18)
яка містить одиничний базис, який складається із векторів An+1,…, An+m. Цим векторам відповідають штучні змінні із значеннями />, i = 1, …, m.Якщо в оптимальному розв'язку цієї задачі/>, вихідна задача не має розв'язку.Якщо ж /> тазадача невироджена, оптимальний базис складається лише тільки із векторіввихідної задачі, які по формулам (12) перетворені в одиничну матрицю. Якщозадача має невироджені плани, значення z0може не збільшуватись наряді ітерацій. Це відбувається через те, що значення відповідних дорівнює нулюта визначається неоднозначно. В таких випадках монотонність методу порушуєтьсяі може трапитись зациклювання, тобто, повернення до вже пройденого базису.Невелика зміна вектора обмежень задачі, яка полягає в заміні величин biна bi + εi, де εi достатньо малі,при вдалому виборі εi не змінюють множину векторів оптимальногоопорного плану вихідної задачі і робить її невиродженою.
Описаний вище алгоритм називається першим (або прямим)алгоритмом симплекс-методу. Також відомий другий алгоритм (алгоритм ізоберненою матрицею). В ньому перетворюється лише матриця A-1, обернена добазисної матриці.

3.3 Двоїстий симплекс-метод
Двоїстий симплекс-метод розроблений згодом після прямогосимплекс-методу, і який є, по суті, симплекс-методом розв'язання двоїстоїзадачі лінійного програмування, але сформульованої в термінах вихідної задачі.
Симплекс метод приміняється для рішення задач с невідємнимивільними членами віі вільні у виборі знаку приведенимикоефіцієнтами цільової функції сj’. Іноді буває легше знайти базис, якийзадовільняє ознаку оптимальності (усі сj’ ≥0), але незадовільняє критерії допуску (не всі ві ≥0). Варіантсимплекс метода, який приміняється для рішення таких задач, називаєтьсядвоїстим симплекс методом. За його допомоги рішаються задачі лінійногопрограмування виду:
/> (4.3.1)
де система обмежень має такий вигляд і всі приведенікоефіцієнти цільової функції сj’ ≥0, і=1,n. При цьому умова ві≥0,і=1, т, не потрібно. Виділену таким методом задачу будемо називатизадачею в двоїстій базисній формі. Вона має базисне, але не опорне рішення.
Двоїстий симплекс метод, який приміняється до задачі вдвоїстій базисній формі, приводить до послідовності задач із збільшуючимзначаченням цільової функції з невідємними коефіцієнтами сj’, j=1,n і значеннями ві, і=1, тбудь-якого знаку. Двоїстий симплекс метод називають методом поступовогопокращення оцінок. Перебудова задачі виконується до тих пір, поки не будевстановлено, що вихідна задача не має допустимого рішення або буде отриманазадача з допустимим базисним планом (всі ві ≥0), якийодночасно буде і оптимальним.
Розглянемо етапи рішення задач ЛП двоїстим симплекс методом:
1. Привестивихідну задачу до канонічного виду.
2. Виключитибазисні змінні із цільової функції z.
3. Перевірити приведені коефіцієнти цільової функції: якщовсі преведені коефіцієнти сj’≥0, j=1,n, а серед значень ві,і=1, т, є від'ємні, то задача рішається двоїстим симплекс методом. Якщосеред приведених коефіцієнтів сj’ є додатні, то в системіобмежень слід пребудувати вільні члени в невід'ємні (перемноживши на число (-1)стрічки, які містять від'ємні ві) і вирішувати задачу прямим симплексметодом.

4. Опислогічної структури програми
Дана програма умовно розділена 8 модулів, які і утворюютьпрограму, що розв′язуєдану нам систему сиплекс методом. Всього є 8 модулів. Кожний модуль окремовідповідає за певну функцію, яку він повинен виконувати.
1. Модуліпід назвою „colorPanel” та „numberCrunchingFrame”. Дані модулі відповідають завізуальне оформлення нашої програми. В ньому ми реалізовуєм кольоривікон, клавіші за допомогою яких ми будемо вводити данні і просуватися попрограмі, розміри та всі інші параметри, які мають відношення до візульногооформлення нашої програми.
2. ”SimplexTool.java” В даному модулі ми ініціалізуємо основне вікно нашої програми. В ньомуми вводимо всі обмеження: кількість рівнянь в нашій системі (Constraint) такількість обмежень (Variable).
3. Модуль „Matrix.java” даний модуль проводить всі дії зматрицями. Знаходить визначники, і т.д.
4. „Numbertextfield.java” Даний модуль перевіряє дані, які ввели з клавіатури на правильність.Тобто перевіряє правальність заданої кількості (в дані програмі можливо тількивід 2 до 7) рівнянь та обмежень функції.
5. „problemDimensionWindow.java” Даний модуль відповідає задіалогове вікно в яке ми вводимо початкові дані (коефіцієнти функції, рівняньнашої системи рівнянь та знаки рівності або нерівності)
6. Модуль „revisedSimplex.java” реалізує сам симплекс метод. Наведемо деякі методи з даного класу:
а) public revisedSimplex(int nv, int nc) – ініціалізує об’єкти класу revisedSimplex: nv (Number of Variables – кількість рівнянь), nc (Number of Constrains – кількість обмежень)
б) public int iterateOneStep() – виконання поточної ітерації
в) public int iterateOneStep()- відповідає за проведенняусіх кроків одної ітерації.
г) public float calculateObjective() – функція знаходженнязначення цільової функції.
д) public void chooseLeavingVariable() – знаходження змінної,яка буде виведена із базису.
е) public void updateSolution() – функція, яка обновляєрішення задачі
є) public void ChooseEnteringVariable() — знаходження змінної,яка буде введена в базис.
ж) public booleantestUnboundedness() – функція перевірки існуваннярішення.
з) public void calculateReducedCosts() – підрахунок значеньіндексної стрічки (/>)
/> (4.1)
и) public booleantestForOptimality() – перевірка, чи являєтьсяпоточне значення цільової функції оптимумом, тобто вірним рцшенням.
і) private void makeBt() – заповнення матриці вільнихчленів
 privatevoid makeB() – заповнення основної матриці.
й) public void addConstraint(float [] coefficients, float rhs,int type) – додавання умови
к) public void specifyObjective(float [] coefficients, boolean type) – відповідає за ініціалізаціюцільової функції
л) public booleanpreprocess(int numberOfVariables, int numberOfConstraints) – функція, заповнення ививедення данних, які ми вводимо на екран.
м) public void SetCostForPhaseOne() — визначає можливістьвирішення данної задачі.
н) public float Dot (float []row, float []col, int size) — підраховування суми:
/> (4.2)
о) public void reset(int numberOfVariables, int numberOfConstraints) – функція, яка закриває поточневирішення задачі і дає можливість вести нові початкові дані.
7. Модуль „enterDataFrame.java” Модуль за допомогою якого дані, які вводить користувач присвоюютьсявиділеним змінним. Тобото проводить їх ініціалізацію.

5. Технічні засоби
У розробленні даної програми було використано обладнання зтакими характеристиками: а) Процесор: Intel Pentium 4,1,8 Ггц; б) ОЗУ: 256 Мб; в) HDD: 40 Гб; г) Відеокарта – GeForce 5500 – 128 Mб; д) операційна система Windows XP Professional SP2;
Вище приведені дані саме того комп′ютера, на якомурозроблялась програма. Ця програма не тестувалась на іншому обладнанні, але заїї складністю та використанню ресурсів (приблизно 19 000 Кб) можнасказати, що дана програма не потребує великого об′єму пам′яті, щодасть їй можливість коректно працювати і на іншому обладнанні нижчого рівня,ніж приведений.

6. Виклик та завантаження програми
Для того, щоб скористуватися даною програмою потрібно простоскопіювати її на жорсткий диск. Детальнішої установки вона не потребує. Длязапуску програми потрібно вибрати файл з назвою “run (пакетний файл MS-DOS)” та запустити його на виконання. Після проведення даної дії з′явитьсядіалогове вікно роботи з програмою.

7. Вхідні та вихідні данні
Після запуску програми на виконання програма пропонує ввеститакі данні: а) кількість рівнянь та кількість обмежень; б) після цього з’являєтьсявікно в якому потрібно ввести коефіцієнти функції та коефіцієнти рівняньсистеми; в) потім потрібно вибрати куди прямує функція (МАХ або MIN); г) вибрати знаки рівності абонерівності (=, ≥, ≤)
Після того, як програма все підрахує на екрані з’являєтьсяматриця, в якій будуть знаходитись відповідь та повідомлення рішення даноїзадачі або неможливість рішення.

8. Інструкціядля користувача
Для коректної роботи з програмою потрібно мати певну базу знаньанглійської мови, адже всі посилання, назви, та написи на клавішах написановиключно на англійські мові. Щодо користування даної програми, то воно доситьпросте та елементарне: вводите в діалоговому вікні коефіцієнти функції тасистем рівнянь, вибираєте МАХ або MIN (відповідно до задачі, яка перед вами ставиться) танатискаєте клавішу рішення. Далі є два варіанти подальшої роботи з програмою –перший – це одразу отримати кінцевий результат, а інший – натискати клавішувиконання завдання декілька раз. Другий спосіб дає можливість поступово (крокза кроком) спостерігати за роботою програми та вирішенні задачі. Все цепредставлено на рис. 9.1
/>

Висновки
В даній роботі ми розглянули одну з задач лінійногопрограмування та методи її вирішення. Один з методів покладений в основу роботиданої програми – симплекс метод. Виконуючи курсову я вдосконалив свої знання танавички використання мови програмування Java. Робота вимагала знань основалгоритмічної мови, вміння складати програми різної складності використовуючидану мову програмування. Я вдосконалив свої знання у області роботи з класами,методами, функціями та вказівниками. Набув суттєвих практичних навиків у роботіз компілюванням файлів Java.
Література
1 Симплекс метод. Материал из Википедии — свободнойэнциклопедии — ru.wikipedia.org/wiki/Симплексметод
2Еремин И.И., Астафьев Н.Н. Введение в теорию линейного и выпуклого программированияМ.: Наука, 1976р. – 409с.
3Карманов В.Г. Математическое программирование. – М.: Наука, 1986р. -250с.
4Иванов Ю.П., Лотов А.В. Математические модели в экономике. – М.: Наука, 1979р.-359с.
5Моисеев Н.Н., Иванов Ю.П., Столярова Е.М. Методы оптимизации. – М.:
Наука,1978р. -506с.
6Бронштейн И.Н., Семендяев К.А. Справочник по математике. – М.: Наука, 1986р.560с.
7 Коробов П.Н. Математическое программирование и моделирование
экономическихпроцессов.- С.Т.Б. Издательство ДНК 2003р. -601с.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.