Постановка задачі
Існує доволі широкий клас задач математичного програмування, в економіко – математичних моделях яких одна або кілька змінних мають набувати цілих значень, наприклад, коли йдеться про кількість верстатів у цеху, тобто коли така вимога випливає з особливостей технології виробництва. До цілочислового програмування належать також задачі оптимізації, в яких змінні набувають лише двох значень – 0 або 1 (бульові, або бінарні, змінні).
До цілочислового програмування відносять задачі про призначення, найкоротший шлях і т. ін. У реальних задачах часто цілочислових значень набувають не всі, а одна чи кілька змінних. Такі задачі називають частково цілочисловими.
Задача цілочислового програмування записується так :
, (1)
за умов
; (2)
(3)
(4).
Для знаходження оптимального розв'язку цілочислових задач застосовують спеціальні методи. Найпростішим методом розв'язування цілочислової задачі є знаходження її оптимального роз в'язку як задачі, що має лише неперервні змінні, з подальші округленням останніх. Такий підхід часто є виправданим.
Для знаходження оптимальних планів задач цілочислової програмування застосовують дві основні групи методів:
методи відтинання;
комбінаторні методи.
Основою методів відтинання є ідея поступового «звуження» області допустимих розв'язків розглядуваної задачі. Пошук цілочислового оптимуму починається з розв'язування задачі з так званими послабленими обмеженнями, тобто без урахування вимог цілочисловості змінних. Далі введенням у модель спеціальних додаткових обмежень, що враховують цілочисловість змінних, многокутник допустимих розв'язків послабленої задачі поступово зменшуємо доти, доки змінні оптимального розв'язку не набудуть цілочислових значень. До цієї групи належать:
методи розв'язування повністю цілочислових задач (дробовий
алгоритм Гоморі);
методи розв'язування частково цілочислових задач (другий
алгоритм Гоморі, або змішаний алгоритм цілочислового програ
мування).
Комбінаторні методи цілочислової оптимізації базуються на повному переборі всіх допустимих цілочислових розв'язків, тобто вони реалізують процедуру цілеспрямованого перебору, під час якої розглядається лише частина розв'язків (досить невелика), а решта враховується одним зі спеціальних методів.
Найпоширенішим у цій групі методів є метод віток і меж.
Починаючи з розв'язування послабленої задачі, він передбачає розбиття початкової задачі на дві підзадачі виключенням областей, що не мають цілочислових розв'язків, і дослідженням кожної окремої частини многокутника допустимих розв'язків.
Для розв'язування задач із бульовими змінними застосовують комбіновані методи, причому оскільки змінні є бульовими, то методи пошуку оптимуму значно спрощуються.
Метод Гоморі
Нехай маємо задачу цілочислового програмування (1) – (4). Для її розв'язування можна скористатися ітеративним методом Гоморі. Суть його полягає ось у чому:
1.Знаходять розв'язок послабленої, тобто задачі без вимог ці-
лочисловості змінних — (1) - (3).
Якщо серед елементів умовно-оптимального плану немає дробових чисел, то цей план є оптимальним планом задачі цілочислового програмування (1) - (4).
2.Коли в умовно-оптимальному плані є дробові значення, то
вибирається змінна, яка має найбільшу дробову частину. На базі
цієї змінної (елементів відповідного рядка останньої симплексної
таблиці, в якому вона міститься) будується додаткове обмеження Гоморі:
де символ {} позначає дробову частину числа.
Для визначення дробової частини будь-якого числа від цього числа віднімають цілу його частину — найбільше ціле число, що неперевищує даного Цілу частину числа позначають символом [] .
Наприклад :
[1,3] = 1; [-1,3] =-2;
{1,3} = 1,3 - 1 = 03; {-1,3} = -1,3 - (-2) =2 - 1,3 = 0,7.
3. Додаткове обмеження після зведення його до канонічного вигляду і введення базисного елемента приєднується до останньої симплексної таблиці, яка містить умовно-оптимальний план. Здобуту розширену задачу розв'язують, а далі перевіряють її розв'язок на цілочисювість. Якщо він не цілочисловий, то процедуру повторюють повертаючись до пункту 2.
Так діють доти, доки не буде знайдено цілочислового розв'язку або доведено, що задача не має допустимих розв'язків у множині цілих чисел.
Досвід показує, що процес розв'язування задач великої розмірності методом Гоморі повільно збіжний. Істотними є також похибки округлення, які можуть призвести до того, що отриманий цілочисловий план не буде оптимальним .
Другие работы по теме:
Налагоджування та програмування промислового робота МП-9С
Основні системи у складі промислового робота: виконавча (рушійна), керуюча (інтелектна), інформаційно-вимірювальна (сенсорна) та система зв'язку. Налагоджування та програмування робота, основні режими роботи. Розробка програми для виконання операцій.
Автоматизований аналіз злочинності по областям
Розробка програми "Злочин", що призначена для збереження та перегляду, а також автоматичного аналізу всієї інформації про злочинність. Порядок і основні принципи формування структури даних, постановка задачі. Написання та лістинг розробленої програми.
Математичне моделювання економічних систем
Задача лінійного програмування. Розв’язання задачі геометричним методом. Приведення системи рівнянь до канонічного вигляду. Розв’язання симплекс-методом. Розв’язок двоїстої задачі. Задача цілочислового програмування і дробово-лінійного програм.
Контроль доступу до вибраних файлів з веденням протоколу
Ведення протоколу роботи комп’ютера. Розробка програми для створення списку розширень файлів і занесення часу і дати доступу до них на мові програмування Асемблер. Виклик переривання 21h код-функції та занесення до регістрів. Алгоритм та лістинг програми.
Створення програми "Шаховий кінь"
Створення програми "Шаховий кінь" в системі програмування Turbo Pascal. Генерування відповідно до заданих початкових кординат маршруту руху коня. Алгоритм задачі: початок, виведення зображення та пошук. Реалізація програми та демонтрація її роботи.
Створення програми "Залізничний вузол"
Використання мови програмування Turbo Pascal, алгоритмів та графічних примітивів модуля Graph. Розробка та реалізація програми для сортування вагонів з довільного порядку в порядок через один. Присвоєння початкових значень та сортувальний алгоритм.
Довідкова система по кримінальному праву
Створення довідкової системи по зменшенню витрат часу на здобуття інформації по кримінальному праву. Розробка алгоритму основної програми на мові програмування Turbo Pascal з підключенням модуля СRT, якій відповідає за графіку і DOS та працює з файлами.
Автоматизований аналіз злочинності
Створення програми "Аналізатор злочинності в регіоні". Структура зберігаючих даних. Неформальна постановка задачі. Алгоритм основної програми. Введення і збереження інформації. Можливість перегляду всіх існуючих документів. Вихідний код програми.
Автоматизоване нарахування заробітної плати
Методика та особливості створення програми "Автоматизоване нарахування платні" для збереження, перегляду та аналізу введеної інформації, її алгоритм та вихідний код. Аналіз факторів, які впливають на формування заробітної платні робітника підприємства.
Автоматизована реєстрація і облік автомобілей
Розробка програми реєстрації автомобілів для збереження та перегляду інформації про модель машини, рік її випуску, об'єм двигуна і витрати палива. Складання алгоритмів розв'язання поставленої задачі та написання тексту програми в середовищі Turbo Pascal.
База даних по приватним підприємствам регіону
Програма "Приватка" для збереження та перегляду всієї інформації, що стосується пошуку підприємства. Розробка алгоритму та програмування на мові Turbo Pascal. Формальна та неформальна постановка задачі. Структура зберігаючих даних. Вихідний код програми.
Програма "Screen Saver" (зберігач екрану)
Файл ssaver - резидентна програма, яка має призначення вимкнення екрану при тривалій перерві в роботі з комп’ютером і оберігає екран від передчасної втрати чіткості та кольоровості зображення. Алгоритм програми, функціонування та язик програмування.
Особливості використання функцій на мові Асемблер
Пошукова робота з дисципліни Системне програмування на тему : “Особливості використання функцій на мові Асемблер” 2001 Програма, яка викликається 1. Ім’я процедури (функції) повинна бути задана в директиві public:
Мови та системи програмування
ІНФОРМАТИКА Тема: Мови та системи програмування Однією з найпоширеніших мов з програмування серед сучасних мов високого рівня, що використовуються в ПК, є мова Visual BASIC.
Робота в системі програмування
Реферат з інформатики на тему: Робота в системі програмування Від складання програмістом до виконання комп'ютером програма проходить досить тривалий шлях спеціальними службовими програмами, що складають систему автоматизації програмування. З часом слово “автоматизація” випало із наведеного словосполучення, в результаті чого воно перетворилося на систему програмування.
Середовище програмування DELPHI 2 0
СЕРЕДОВИЩЕ ПРОГРАМУВАННЯ DELPHI 2.0 Зміст Основні елементи середовища 1. Головне вікно 2. Вікно форми 3. Вікно коду 4. Інспектор об’єктів Управління файлами проекту Delphi
Середовище програмування DELPHI 20
СЕРЕДОВИЩЕ ПРОГРАМУВАННЯ DELPHI 2.0 Зміст 5.Основні елементи середовища 2 a.1. Головне вікно 2 a.2. Вікно форми 2 a.3. Вікно коду 3 a.4. Інспектор об’єктів 3
Задачі нелінійного програмування
У задачах лінійного програмування, які розглядалися раніше, всі невідомі входили як до системи обмежень, так і до цільової функції, у першому степені. Тому ці задачі були досить простими у постановці і за методами розв'язування.
Лісп мова функціонального програмування
Реферат на тему: Лісп – мова функціонального програмування 1. Місце Ліспу у класифікації мов програмування За однією з класифікацій мови програмування діляться на
Структурне програмування
Реферат на тему: Структурне програмування План Структурне програмування Принцип модульності Процедурна абстракція. Модулі в Turbo Pascal. Література
База даних по приватних підприємствах регіону
Міністерство внутрішніх справ України Харківський національний університет внутрішніх справ Навчально-науковий інститут менеджменту, соціальних та інформаційних технологій Кафедра інформаційних систем і технологій в діяльності ОВС
Програмування на С і С Вказівник this
Реферат на тему: Розробником мови програмування Сі++ є Бьєрн Страуструп . У своїй роботі він спирався на досвід розробників мов Сімула, Модула 2, абстрактних типів даних. Основні роботи велися в дослідницькому центрі компанії Bell Labs.
Мовне забезпечення САПР
: Мовне (лінгвістичне) забезпечення САПР. Призначення, структура та вимоги до мовного забезпечення. Мовне проектування. Мови програмування. 1. Мови забезпечення САПР включають в себе мови проектування та мови програмування і охоплює терміни, визначення, правила формалізації звичайної мов, методи стиснення та розширення.
Математичне забезпечення САПР
Тема : . Загальні поняття та вимоги до МЗ. Способи отримання математичних моделей. Постановка задач оптимізації. Класифікація і характеристика методів оптимізації.
Опуклі множини
У курсі “Математичне програмування” та в деяких економічних дослідження використовуються поняття опуклої лінійної комбінації векторів та опуклої множини.