Автор работы: Пользователь скрыл имя, 01 Декабря 2011 в 00:54, курсовая работа
Подобно методу «разделяй и властвуй», динамическое программирование решает задачу, разбивая её на подзадачи и объединяя их решения. Алгоритмы типа «разделяй и властвуй» делят задачу на независимые подзадачи, эти подзадачи—на более мелкие подзадачи и так далее, а затем собирают решение основной задачи «снизу вверх». Динамическое программирование применимо тогда, когда подзадачи не являются независимыми, иными словами, когда у подзадач есть общие «подподзадачи». В этом случае алгоритм типа «разделяй и властвуй» будет делать лишнюю работу, решая одни и те же подподзадачи по нескольку раз. Алгоритм, основанный на динамическом программировании, решает каждую из подзадач единожды и запоминает ответы в специальной таблице. Это позволяет не вычислять заново ответ к уже встречавшейся подзадаче.
В типичном случае динамическое программирование применяется к задачам оптимизации. Примерами задач динамического программирования являются задача о перемножении матриц и задача о нахождении найбольшей общей подпоследовательности. Эти задачи и методы их решения будут рассмотрены в данной работе.
ВСТУПЛЕНИЕ 5
1 МАТЕМАТИЧНА ПОСТАНОВКА ЗАДАЧІ 6
2 ПРИКЛАДИ ЗМІСТОВИХ ПОСТАНОВОК ЗАДАЧІ 8
3 АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ О ПЕРЕМНОЖЕНИИ МАТРИЦ 10
3.1 Метод північно-західного кута 12
3.2 Метод найменшого часу 13
3.3 Оцінка складності алгоритмів 14
4 ПРИКЛАДИ РОЗВ’ЯЗАННЯ ЗАДАЧ «ВРУЧНУ» 15
5 РОЗВ’ЯЗАННЯ ЗАДАЧІ З ДОПОМОГОЮ EXCEL 26
6 ПРОГРАМНА РЕАЛІЗАЦІЯ АЛГОРИТМУ 31
ВИСНОВОК 33
ПЕРЕЛІК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ 34
Додаток А 34
Лістинг програми 34
Рисунок 5.2 - Допоміжні матриці та цільова функція.
Після виконання цих дій, можна заповняти відповідні комірки відповідними даними і запускати пошук розв’язку.
Далі наведені 3 приклади використання Microsoft Excel для розв’язання транспортної задачі за критерієм часу.
На
рисунку 5.3 наведений розв’язок прикладу
2, розв’язаного «вручну».
Рисунок 5.3 - Перший приклад розв’язання з допомогою Excel.
Аналогічні дії виконані для прикладів 3 і 4, розв’язаних «вручну». На рисунку 5.4 зображений третій приклад.
Рисунок 5.4 - Розв’язання в Excel прикладу транспортної задачі.
Як видно з рисунку 5.4, Excel знайшов оптимальний розв’язок, який не зовсім співпадає з тим, який був знайдений «вручну». Оскільки нас цікавить лише наявність перевезень в клітинках, то оптимальних планів може бути дуже багато.
На рисунку 5.5 показаний третій приклад розв’язання транспортної задачі за критерієм часу з використанням Microsoft Excel.
Рисунок 5.5 - Третій приклад розв’язання задачі в Excel.
6 ПРОГРАМНА РЕАЛІЗАЦІЯ АЛГОРИТМУ
З
точки зору простоти програмної реалізації
розв’язання транспортної задачі за
критерієм часу, найкраще використати
алгоритм побудови початкового допустимого
розв’язку методом північно-
Для створення програми, яка реалізує алгоритм північно-західного кута, було використано Microsoft Visual Studio 2010. Програма написана на мові програмування C#. Вони були обрані для того, щоб програмний продукт мав зручний і привабливий інтерфейс та високу швидкодію. Використовуючи Java, можна було б зробити сумісність програми з операційними системами, відмінними по архітектурі від операційних систем сімейства Windows NT. Оскільки більшість комп’ютерів мають операційну систему на базі ядра Windows NT , то не доцільно віддавати в жертву привабливий графічний інтерфейс і швидкодію програми для підтримки екзотичних операційних систем.
Програма
має дуже простий інтерфейс. Користувач
спочатку обирає пункт меню Файл ->
Розв’язати задачу. Далі отримує вікно,
в якому задає кількість виробників і
споживачів продукції. Після натиснення
кнопки «Ок» програма дає вікно з таблицею,
яку користувач повинен заповнити. Після
заповнення таблиці, користувач натискає
кнопку «Знайти оптимальний розв’язок».
І програма записує в таблицю перше число
– кількість відправленої продукції по
маршруту, далі ставить знак «|» і записує
час проходження часу. Разом з тим, програма
відразу дає повідомлення, в якому чітко
прописано, який час максимальний буде
при оптимальному плані перевезення.
На рисунку 6.1 наведений результат виконання програми
Рисунок
6.1. Результат роботи програми.
ВИСНОВОК
В даній курсовій роботі детально розібрана транспортна задача за критерієм часу. В роботі: описані математична модель і приклади постановок задач, які приводять до транспортної задачі за критерієм часу; побудовані алгоритми побудови початкового плану, «розвантаження» маршрутів з найдовшим часом, наведені приклади розв’язання задачі «вручну» та за допомогою Microsoft Excel, побудована програма, яка знаходить оптимальний план перевезень.
Виконуючи
курсову роботу, було зроблено кілька
важливих висновків. Один з них –
оптимальних планів перевезення
може бути дуже багато, особливо, якщо
не накладати умову
В ході написання курсової роботи, мною була знайдена складність алгоритмів знаходження початкового розв’язку методом північно-західного кута і методом найменшого часу.
В математичній моделі транспортної задачі за критерієм часу є функція max. Тому дана задача не може бути лінійною Цим зумовлені особливості розв’язання цієї задачі.
Оскільки транспортна задача за критерієм часу не є лінійною, як, наприклад, транспортна задача за критерієм вартості, то для неї не підходять всі алгоритми, що були використані в транспортній задачі за критерієм вартості. Прикладом може служити побудова циклу. В класичній транспортній задачі можна побудувати лише один цикл. В транспортній задачі за критерієм часу можна побудувати більше ніж один цикл.
ПЕРЕЛІК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ
1. Калихман И.Л. Линейная алгебра и программирование. – Высшая школа, 1964-426 с.
2. Лунгу К.Н. Линейное программирование. Руководство к решению задач. – М.: ФИЗМАТЛИТ, 2005. – 128с. – ISBN 5-9221-0631-7.
Додаток А. Лістинг програми
Информация о работе Задача о наибольшей общей подпоследовательности