Изучение понятия симплексного метода - вычислительной процедуры последовательного улучшения решений. Разработка программы, решающей задачу линейного программирования симплекс-методом на языке программирования С . Ознакомление с алгоритмом программы.
Аннотация к работе
Специальность 230105 «Программное обеспечение вычислительной техники и автоматизированных систем» «Реализация алгоритма симплекс-метода с произвольными свободными членами»Основной целью данного проекта является закрепление теоретических знаний в области решения задач базовых линейного программирования симплекс - методом, получившем в литературе также название метода последовательного улучшения плана и реализация поставленной задачи на языке программирования С .Необходимо разработать программу, решающую базовую задачу линейного программирования симплекс-методом с помощью симплекс-таблиц.Примером задачи линейного программирования является целевая функция с определенным направлением экстремума и система ограничений для этой целевой функции.Первым делом был написан класс user_data, который принимает пользовательские данные, т.е. #define _USER_DATA_H_ class user_data {public: void get_data_from_user(); Это член является указателем на массив указателей, который в последующем будет инициализирован как матрица, соответствующая по размеру системе ограничений поставленной задачи (num_l x num_v). int *sign хранит в себе знак каждого ограничения системы. У нас есть три знака: =, которые храняться в *sign как 0, 1 и 2 соответственно. bool way хранит в себе направление целевой функции задачи (min/max). Функция void get_data_from_user(), собственно запрашивает у пользователя данные, которые обрабатывает должным образом и помещает в защищенные переменные-члены данного класса, приведенные выше.Задана целевая фукнция: F(X) = 3x1 5x2 4x3 => max Решение, приведенное на данных скриншотах было проверено в MS Excel с помощью функции «Поиск решения» и является абсолютно верным, также данная таблица строилась вручную.Был полностью освоен алгоритм решения базовой задачи симплекс-метода, и, намного поднят уровень в области программирования, что для автора данного проекта является наиболее важным фактором.