ВВЕДЕНИЕ 3
1 Теоретические основы линейного программирования 5
1.1 Элементы теории оптимизационных задач 5
1.2 Основные понятия линейного программирования 6
1.3 Геометрическая интерпретация 8
2 Симплекс-метод 13
2.1 Идея симплекс-метода 13
2.2 Математическая постановка симплекс-метода 14
2.3 Метод искусственного базиса для инициализации симплекс-метода . 18
2.4 Симплекс таблица 20
3 Реализация симплекс-метода в QT 25
3.1 Выбор инструментов разработки 25
3.2 Архитектура программы и структура классов 26
3.3 Преобразование задачи к канонической форме и использование метода
искусственного базиса 29
3.4 Реализация алгоритма симплекс-метода 30
3.5 Обеспечение точности вычислений 32
3.5.1 Сравнение с типами double и float 34
3.6 Визуализация процесса решения в графическом интерфейсе 34
3.6.1 Архитектура интерфейса 34
3.6.2 Интерфейс ввода 35
3.6.3 Визуализация симплекс-таблиц 36
3.6.4 Графическое отображение целевой функции и ограничений 37
3.6.5 Приведение к канонической форме и метод искусственного базиса 38
3.6.6 Финальный вывод и анализ результата 39
3.7 Тестирование и анализ результатов 39
3.7.1 Т естирование программы 41
ЗАКЛЮЧЕНИЕ 47
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ 49
В условиях цифровизации образования и растущей потребности в наглядных инструментах обучения возрастает значение программных средств, способных эффективно визуализировать работу классических математических алгоритмов. Одним из таких алгоритмов, широко применяемых в задачах оптимизации, является симплекс-метод [5], инструмент для нахождения оптимальных решений в задачах линейного программирования [2]. Благодаря своей универсальности и логической прозрачности, симплекс-метод активно используется в экономике, логистике, производственном планировании и других сферах, требующих рационального распределения ресурсов.
Однако, несмотря на математическую строгость, симплекс -метод может вызывать затруднения при его изучении в аудитории, особенно в части пошагового выполнения алгоритма и интерпретации промежуточных результатов. В связи с этим возникает необходимость в создании специализированных обучающих приложений, способных демонстрировать процесс работы алгоритма в интерактивной, визуально доступной форме. Такие приложения особенно актуальны при обучении студентов технических и экономических направлений, осваивающих курсы по методам оптимизации.
Цель работы: создание интерактивного обучающего приложения, реализующего симплекс-метод, обеспечивающего визуализацию этапов решения задачи линейного программирования.
Для достижения поставленной цели в работе решаются следующие задачи:
1. Изучить теоретические основы линейного программирования и симплекс-метода.
2. Проанализировать особенности алгоритмической реализации симплекс-метода.
3. Разработать архитектуру и программную реализацию приложения на языке С++ с использованием фреймворка Qt.
4. Обеспечить точность вычислений при помощи работы с рациональными числами.
5. Реализовать графический интерфейс с пошаговой визуализацией решений.
В условиях активной цифровизации образования и роста спроса на визуальные формы обучения особую актуальность приобретают программные средства, способные демонстрировать принципы работы классических математических алгоритмов. В рамках выпускной квалификационной работы был разработан программный продукт, реализующий симплекс-метод решения задач линейного программирования в виде интерактивного обучающего приложения. Поставленная цель достигнута в полном объеме.
В ходе выполнения работы были изучены теоретические основы симплекс-метода, проанализированы особенности его пошаговой
алгоритмической реализации, а также обеспечена высокая точность вычислений за счёт использования рациональных чисел. На языке программирования C++ с применением фреймворка Qt разработана архитектура приложения, включающая модуль визуализации, механизм пошагового отображения симплекс-таблиц. Графический интерфейс позволяет пользователю не только задать параметры задачи, но и наглядно проследить весь процесс решения, включая выбор ведущих элементов, изменение базиса и достижение оптимального решения.
Результаты тестирования подтвердили работоспособность и корректность алгоритма. Приложение успешно демонстрирует образовательную ценность: оно может быть использовано как
вспомогательный инструмент при изучении курсов по методам оптимизации, математическому программированию и операционным исследованиям.
В дальнейшем возможно расширение функциональности разработанного программного средства: реализация дополнительных методов оптимизации, включение графической интерпретации двумерных задач, поддержка целочисленного программирования и интеграция в электронные образовательные платформы.
Таким образом, выполненная работа обладает практической значимостью и потенциалом для дальнейшего развития в рамках учебного и прикладного программного обеспечения.