Решение базовых задач линейного программирования симплекс-методом, их реализация на языке программирования С . Математическое обеспечение; разработка алгоритма программы, решающей задачу с помощью симплекс-таблиц с произвольными свободными членами.
При низкой оригинальности работы "Реализация алгоритма симплекс-метода с произвольными свободными членами", Вы можете повысить уникальность этой работы до 80-100%
Основной целью данного проекта является закрепление теоретических знаний в области решения задач базовых линейного программирования симплекс - методом, получившем в литературе также название метода последовательного улучшения плана и реализация поставленной задачи на языке программирования С .Необходимо разработать программу, решающую базовую задачу линейного программирования симплекс-методом с помощью симплекс-таблиц.Примером задачи линейного программирования является целевая функция с определенным направлением экстремума и система ограничений для этой целевой функции.Первым делом был написан класс 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 с помощью функции «Поиск решения» и является абсолютно верным, также данная таблица строилась вручную.Был полностью освоен алгоритм решения базовой задачи симплекс-метода, и, намного поднят уровень в области программирования, что для автора данного проекта является наиболее важным фактором.
План
Содержание
Введение
1. Постановка задачи
2. Математическое обеспечение
3. Разработка алгоритма программы
4. Пример работы программы
Заключение
Список используемой литературы
Введение
Основной целью данного проекта является закрепление теоретических знаний в области решения задач базовых линейного программирования симплекс - методом, получившем в литературе также название метода последовательного улучшения плана и реализация поставленной задачи на языке программирования С .
Симплексный метод решения задач линейного программирования - вычислительная процедура, основанная на принципе последовательного улучшения решений - перехода от одной базисной точки к другой, для которой значение целевой функции больше (эти операции фиксируются в симплексной таблице). Доказано, что если оптимальное решение существует, то оно обязательно будет найдено через конечное число шагов (за исключением так называемой «вырожденной задачи; при которой возможно явление «зацикливания», т. е. многократного возврата к одному и тому же положению).
Данный метод был разработан американским математиком Джорджем Данцигом (George Dantzig) в 1947 году.
Вывод
Основная цель данного курсового проекта - освоение теоретических знаний в области решения задач линейного программирования и получение практических навыков программирования на языке С .
После написания данной курсовой работы, ее основная цель, несомненно, была выполнена. Был полностью освоен алгоритм решения базовой задачи симплекс-метода, и, намного поднят уровень в области программирования, что для автора данного проекта является наиболее важным фактором.
Данный проект, несомненно, будет развиваться, в скором времени будет добавлен алгоритм решения задач методом искусственного базиса и написан графический интерфейс с использованием кроссплатформенной библиотеки QT. Усовершенствованная версия программы, возможно, будет представлена в дипломной работе.
Список литературы
1. Бьерн Страуструп - Язык программирования С 2-е издание 2007 год.
2. Лунгу К.Н. - Линейное программирование. Руководство к решению задач. - 2005 год.
3. Настольная книга Gentoo Linux - веб-издание, 2008 год.
4. А.В. Андреев - Программирования в Unix-подобных операционных системах - 2006 год.
5. Система управления версиями GIT, полное руководство - веб издание, 2011 год.
6. Также были использованы различные материалы из Википедии - Свободной веб-энциклопедии и прочих интернет-ресурсов.
Размещено на .ru
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы