русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Целочисленное программирование

Под задачей целочисленного программирования понимается задача, в которой все или некоторые переменные должны принимать целые значения.

В случае, когда ограничения и целевая функция задачи представляют собой линейные зависимости, задачу называют целочисленной задачей линейного программирования. Если хотя бы одна зависимость будет нелинейной, такая задача формулируется как целочисленная задача нелинейного программирования.

Модель целочисленной задачи линейного программирования:

(3.6)

(3.7)

(3.8)

(3.9)

Условие - условие целочисленности. Если n1 = n, то задачу называют полностью целочисленной; если n1 < n, то - частично целочисленной.

В ряде случаев задачу целочисленного программирования решают как непрерывную задачу линейного программирования, т.е. без условия целочисленности. Затем округляют переменные и проверяют допустимость округленного решения. Если решение допустимое, то оно принимается как целочисленное.

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

Метод ветвей и границ

Метод ветвей и границ - один из комбинаторных методов. Идея состоит в разбиении допустимого множества на подмножества (правило ветвления) и вычислении оценок целевой функции на этих подмножествах, которые позволяют исключать из рассмотрения подмножества, заведомо не содержащие оптимальных точек.

Алгоритм решения задачи методом ветвей и границ

Шаг 1. Задача линейного программирования решается без учета целочисленности. Если все компоненты оптимального плана целые, то он является оптимальным планом.

Шаг 2. Далее рассматривают одну из переменных xj, на которую накладывают ограничение целочисленности, но которая получила дробное значение. На основе полученного решения составляют дополнительные ограничения:

хj ≤ [хj*] и хj ≥ [хj*] + 1,

где [хj*] - целая часть нецелочисленного значения переменной хj в оптимальном решении.

Шаг 3. Из исходной задачи формируются две задачи линейного программирования, в каждую из которых вошли все исходные ограничения и одно из дополнительных.

Шаг 4. Полученное решение новых задач проверяют на целочисленность переменных. Если решение не удовлетворяет требованию целочисленности, на основе каждой из задач составляют, аналогично предыдущим, две новые и т. д.

Если одно из решений удовлетворяет требованию целочисленности, значение целевой функции принимается за граничное . При этом рассмотрение других задач продолжается до тех пор, пока не будет получено:

- на одной из ветвей недопустимое решение;

- на одной из ветвей целочисленное решение. Тогда значение целевой функции сравнивается с (верхним - при max, нижним - при min); если полученное значение хуже, оно отбрасывается; если лучше, то принимается за граничное;

- на одной из ветвей нецелочисленное решение, однако при этом значение целевой функции хуже граничного. Тогда дальнейшее рассмотрение также прекращается.

На первом цикле расчета

Просмотров: 536


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.