Линейное программирование

Автор работы: Пользователь скрыл имя, 08 Октября 2013 в 22:16, курсовая работа

Краткое описание

Данный курсовой проект предназначен для решения задач линейного программирования. Для этого было необходимо произвести расчеты, используя ручной метод решения задачи симплекс методом, табличный процессор MS Excel из пакета программ Microsoft Office, а также необходимо было написать программу в среде Microsoft Visual Basic.
Для решения задач линейного программирования симплекс методом в любом из вышеперечисленных способов возникает ряд неудобств, например: при решении задачи вручную при подсчетах таблиц можно ошибиться и неправильно решить задачу, при решении задачи в табличном процессоре Microsoft Excel существует необходимость переписывать формулы при составлении новой таблицы, написание программы в среде Microsoft Visual Basic очень утомительное и занимает слишком много времени.

Содержание

Введение 4
1. ОБЩАЯ ЧАСТЬ 5
1.1 Общая задача линейного программирования, применение её для решения различных типов вычислительных задач. 5
1.2.Применение процессора Microsoft Excel для расчета задач линейного программирования 10
1.3. Использование технических и программных средств для решения задач линейного программирования 16
1.3.1.Microsoft Visual Basic 6.0 22
1.3.2 Microsoft Office 24
1.4. Алгоритм нахождения оптимального решения задач линейного программирования 26
2. СПЕЦИАЛЬНАЯ ЧАСТЬ 27
2.1. Задание для курсового проекта 27
2.1.1.Приведение задачи к каноническому виду 28
2.2. Нахождение начального опорного решения (НОР) 29
2.3. Нахождение оптимального решения 30
2.4. Алгоритмы и их описание 33
2.5. Описание программы 42
2.6. Описание процесса отладки программы обработка ошибок программы 44
2.7. Инструкция пользователю 48
3.Заключение 50

Прикрепленные файлы: 1 файл

Курсовой прект матметоды.docx

— 658.47 Кб (Скачать документ)

 

 

 

Для нахождения оптимального решения  данного курсового проекта понадобилось четыре итерации.

 

    1. Алгоритмы и их описание

 


 


Рис 3 Схема алгоритма процедуры обработки события кнопки  “След таблица”

 

 

 

 

 

 

 

 

 

 

 

 


 



 



 

 

Рис 4  Схема алгоритма процедуры обработки события кнопки  “Просчет”

 

 


 


Рис 5 Схема алгоритм процедуры обработки события кнопки  «Назад»

 

 

 

 

 

 

 


Рис 6 Схема алгоритма  процедуры  “ Next_Table ”

 

 





 



 


 



 




 









 

 






 

 






 








 

 

 

 

Рис 7 Схема алгоритма  процедуры  “ Cel_line ”




 

 


 

 






 




 


 


 


 






 

 

 

 

Рис 8 Схеме  алгоритма процедуры  “ Find_Col”

 

 



 





 



 


 


 


 


 

 


Рис 10 Схема  алгоритма процедуры  “ Calc_Q”

 

 


 

 

 

 

 

 

 

Рис 11 Схема алгоритма процедуры  “ ClearText ”

 

 

 

 

 

 


 

 

 

 

 

Рис 12. Схема алгоритм процедуры обработки события кнопки «Очистка»

 


 

 

 

 


 



 

 

Рис 13. Схема алгоритм процедуры обработки события кнопки «По умолчанию»

 

 


 

 

 

 

 

 

 

 

 

 

Рис 14  Схема алгоритма процедуры  “ Clear ”

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис 15  Схема алгоритма процедуры  “ Find_Row ”



 

 

 

 

 

Рис 16  Схема алгоритма процедуры  “ Nach_dan ”

 

 

 

 

 

 

 

 

 

 

 


 

 

Рис 17 Схема алгоритма функции ”Proverka”

 

 

 

 

 

 

 

 

 

2.5. Описание программы

Программная часть была создана на языке VB, вся расчетная часть программного кода основана на расчетах Excel. Все расчеты в Excel совпадают с расчетами, представленными в приложении.

В приложении создана одна форма, в  которой определены десять текстовых  полей, организованных массивом, два  переключателя Option, для выбора экстремума функции и один Check для авто просчета функции, шесть кнопок и одна надпись, для отображения индекса текущей таблицы. Текстовые поля предназначены для ввода исходных данных и вывода конечного результата. В каждом массиве элементы Textbox обозначены уникальным индексом, имели одинаковые значения свойств визуального представления элемента и свойства Name. Также использовалось свойство Text, в которое помещается введенный пользователем текст. По мере ввода данных Visual Basic автоматически изменяет значение этого свойства так, чтобы оно отображало текущее содержимое текстового поля. Благодаря использованию этого свойства при запуске программы в элементах Textbox отображаются вводимые и вычисляемые значения.

Элемент управления CommandButton используется для того, чтобы начать, прервать или закончить какой-либо процесс. Кнопка предназначена для выполнения основных расчетов: расчета элементов  основания матрицы, значений переменных включенных в базис, признаков критерия оптимальности, целевой строки, подсчета значений элементов целевой строки и столбца Q по формулам, выбора генерального столбца, ключевой строки и генерального элемента. Была использована процедура обработки события Click для всех кнопок.

В процессе разработки приложения данного  курсового проекта использованы процедуры обработки событий  и разработаны процедуры:

  1. Command1_Click() - “Переход к следующей таблице”
  2. Command2_Click - “Назад”
  3. Command3_Click - “Просчет”
  4. Next_Table- “Расчет следующей таблицы“
  5. Cel_line- “Поиск целевой строки”
  6. Find_Col- “Выбор генеральной строки ”
  7. ClearTexts - “Очистка ячеек”
  8. Command4_Click - “Отчистка”
  9. Command6_Click - “По умолчанию”

10. Command7_Click – “Выход”

11. Form_Load - “Загрузка формы“

12. FirstData - “Загрузка новых данных”

13. Clear - “Очистка расчетных полей”

14. ShowData - “Вывод данных на экран”

15. Calc_Q – “Расчет Q”

16. Celevaya – “Расчет целевой функции”

17. Find_Row – “Выбор генерального столбца”

18. Command6_Click – “Вызов процедуры возврата начальных данных”

19. Command7_Click – “Выход из приложения”

20. Nach_dan – “Процедуры возврата начальных данных”

 

 

 

 

2.6. Описание  процесса отладки программы   обработка ошибок программы

Во время разработки программ, программист  не может предугадать, какая ошибка может произойти в тот или  этот момент выполнения программы.

Процесс поиска и исправления ошибок в программе называется отладкой. В программном окружении VB имеется несколько средств, которые можно использовать для отслеживания и исправления ошибок в программах.

Ошибки могут появляться как  на этапе разработки и отладки, так  и в процессе работы приложения. Все ошибки можно разделить на 4 группы:

 Синтаксические – связанные с  неправильным синтаксисом операторов;

 Структурные – связанные с некорректным использованием операторов;

 Логические – связанные с неправильными  действиями программы;

 Ошибки выполнения – возникающие  в процессе исполнения приложения.

Отладку программы можно поделить на 3 этапа:

    1. ошибка компиляции
    2. ошибки выполнения
    3. логические ошибки

Ошибки компиляции возникают, если в Visual Basic не может интерпретировать код, например, некорректный вод числа скобок, неправильное написание оператора и так далее.

Ошибки выполнения возникают после  успешной компиляции ее завершения. Причины: некорректный вод данных, например, требуется ввести число, а пользователь вводит строковые значения; некорректное вычисление, например, деление на 0. В этом случае на экране отображается диалоговое окно с сообщением операции номере ошибки.

Логические ошибки труднее всего  обнаружить и устранить. Эти ошибки не приводят к прерыванию и выполнению ошибки. Визуально все идет гладко и выглядит так, как будто программа  идет правильно. Локализация логических ошибок связана с тщательным анализом алгоритма программы с привлечением средств отладки.

Для поиска ошибок я использовал  следующие методы:

Инструкция Option Explicit

Инструкция Option Explicit предписывает обязательное объявление переменных, встречающихся в программе.

Пошаговое выполнение программы

Редактор Visual Basic позволяет осуществлять пошаговое выполнение программы. Такой режим можно задать при помощи меню Debug. При выполнении программы в пошаговом режиме используется 4 команды:

    • Debug/StepInto – осуществляется последовательную шаг за шагом отладку программы, включая процедуры;
    • Debug/StepOpen - осуществляется последовательную шаг за шагом отладку всей программы, не заходя в код программы. Если встречается процедура, то она выполняет всю процедуру целиком.
    • Debug/StepOut – завершение выполнения текущей процедуры и останавливается на следующей инструментальной программе.
    • Debug/Run to Cursor –выполняет программу инструкции до места, где стоит курсор.

Точки прерывания

В Visual Basic можно установить точки прерывания. Устанавливаются командой Debug Toggle Break, а снимаются командой Debug Toggle Break Point.

Вызов сообщения

При помощи функции MsgBox выводил сообщения на экран, для проверки правильности выполнения программы.

Коды ошибок возникших  в результате создания приложения:

Ошибка  №13 – несоответствие типов (рис 18.):

Рис 18

 

Ошибка  №11 – деление на ноль (рис 19):

Рис 19

 

Ошибка  компиляции (рис 20):

Рис 20

 

Ошибка  №9– Ошибка режима выполнения (Рис 21):

Рис 21

 

 

Ошибка  типа - Неправильно задан тип переменной (Рис 22):

 

 

 Рис 22

 

2.7. Инструкция  пользователю

 

  1. В Microsoft Windows запустить исполняемый файл (Симплекс метод.exe).
  2. Появиться диалоговое окно приложения. Таблица будет заполнена стандартными данными (рис 23).

Рис 23 Окно приложения

 

  1. Если вы хотите ввести свои данные, то необходимо нажать кнопку «Очистка», затем  необходимо ввести в поля данные, которые предназначены для расчета элементов основания матрицы. Значений переменных включенных в базис. Указываем искомый признак критерия оптимальности целевой строки. И используем клавиши для  подсчета значений элементов целевой строки и столбца Q, выбора генерального столбца, ключевой строки и генерального элемента.
  2. Затем повторно пользуемся группой кнопок для расчёта следующей таблицы.
  3. Таким образом, мы рассчитываем таблицы до нахождения оптимального решения.

Рис 24 Таблица «0»

 

  1. После ввода собственных данных необходимо нажать кнопку «Очистка», затем  необходимо ввести в поля данные, которые предназначены для расчета элементов основания матрицы. Значений переменных включенных в базис. Указываем искомый признак критерия оптимальности целевой строки. И используем клавиши для  подсчета значений элементов целевой строки и столбца Q, выбора генерального столбца, ключевой строки и генерального элемента.
  2. Затем повторно пользуемся группой кнопок. Для расчёта следующей таблицы.
  3. Таким образом, мы рассчитываем таблицы до нахождения оптимального решения.

9. Для завершения работы с  программой необходимо                                                                                          щелкнуть на кнопке «Выход».  В результате вы вернетесь  в   интегрированную среду разработки  VB.

Информация о работе Линейное программирование