русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

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


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Примечания


Дата додавання: 2014-11-27; переглядів: 853.


В основі комбінаторних методів є перебір можливих варіантів розв’язків поставленої задачі. Кожен з них характеризується певною послідовністю перебору варіантів та правилами виключення, що дають змогу ще в процесі розв’язування задачі виявити неоптимальні варіанти без попередньої їх перевірки. Відносна ефективність різних методів залежить від того, наскільки кожен з них уможливлює скорочення необхідного процесу перебору варіантів у результаті застосування правила виключення.

Розглянемо один із комбінаторних методів. Для розв’язування задач цілочислового програмування ефективнішим за метод Гоморі є метод гілок і меж. Спочатку, як і в разі методу Гоморі, симплексним методом розв’язується послаблена (без умов цілочисловості) задача. Потім вводиться правило перебору.

Нехай потрібно знайти хj – цілочислову змінну, значення якої хj= в оптимальному плані послабленої задачі є дробовим. Очевидно, що в деякому околі даної точки також не існує цілочислових значень, тому відповідний проміжок можна виключити з множини допустимих планів задачі в подальшому розгляді. Таким проміжком є інтервал між найближчими до цілочисловими значеннями. Можна стверджувати, що на інтервалі цілих значень немає.

Наприклад, якщо =2,7 дістаємо інтервал , де, очевидно, немає хj, яке набуває цілого значення і оптимальний розв’язок буде знаходитися або в інтервалі , або . Виключення проміжку з множини допустимих планів здійснюється введенням до системи обмежень початкової задачі додаткових нерів­ностей. Тобто допустиме ціле значення xj має задовольняти одну з нерівностей виду:

або .

Дописавши кожну з цих умов до задачі з послабленими обмеженнями, дістанемо дві, не пов’язані між собою, задачі. Тобто, почат­кову задачу цілочислового програмування (6.1)-(6.4) поділимо на дві задачі з урахуванням умов цілочисловості змінних, значення яких в оптимальному плані послабленої задачі є дробовими. Це означає, що симплекс-методом розв’язуватимемо дві такі задачі:

перша задача:

(6.14)

за умов:

; (6.15)

; (6.16)

– цілі числа, ; (6.17)

, (6.18)

друга задача

(6.19)

за умов:

, ; (6.20)

; (6.21)

— цілі числа ; (6.22)

, (6.23)

де – дробова компонента розв’язку задачі (6.1)-(6.4).

Наведені задачі (6.14)-(6.18) і (6.19)-(6.23) спочатку послаб­люємо, тобто розв’язуємо з відкиданням обмежень (6.17) і (6.22). Якщо знайдені оптимальні плани задовольняють умови цілочисловості, то ці плани є розв’язками задачі (6.1)-(6.4). Інакше пошук розв’язку задачі триває. Для дальшого розгалуження вибираємо розв’язок задачі з більшим значенням цільової функції, якщо йдеться про максимізацію, і навпаки – з меншим значенням цільової функції в разі її мінімізації. Подальше розгалуження виконується доти, доки не буде встановлено неможливість поліпшення розв’язку. Здобутий останній план – оптимальний.

Розв’язування цілочислових задач методом гілок і меж можна значно прискорити. Очевидно, що кожна наступна задача, яку отримують в процесі розв’язування відрізняється від попередньої лише одним обмеженням. Тому за послідовного розв’язування задач немає сенсу розв’язувати їх симплексним методом спочатку. Досить буде почергово приєднати нові обмеження виду (6.18) і (6.23) до останньої симплекс-таблиці попередньої задачі та вилучити (в разі необхідності) непотрібні «старі» обмеження.

Геометрично введення додаткових лінійних обмежень виду (6.18) та (6.23) в систему обмежень початкової задачі означає проведення гіперплощин (прямих), що розтинають багатогранник (багатокутник) допустимих планів відповідної задачі лінійного програмування у такий спосіб, що уможливлюється включення в план найближчої цілої точки цього багатокутника (рис.6.4). Допустимо, що А – точка максимуму, тоді за методом гілок та меж багатокутник допустимих планів задачі ABCOD поділяється на дві частини прямими та +1, що виключає з розгляду точку А, координата якої є не цілим числом.

Рисунок 6.4

Опишемо алгоритм методу гілок та меж:

1. Симплексним методом розв’язують задачу (6.1)-(6.3) (без вимог цілочисловості змінних).

Якщо серед елементів умовно-оптимального плану немає дробових чисел, то цей розв’язок є оптимальним планом задачі цілочислового програмування (6.1)-(6.4).

Якщо задача (6.1)-(6.3) не має розв’язку (цільова функція необмежена, або система обмежень несумісна), то задача (6.1)-(6.4) також не має розв’язку.

2. Коли в умовно-оптимальному плані є дробові значення, то вибирають одну з нецілочислових змінних і визначають її цілу частину .

3. Записують два обмеження, що відтинають нецілочислові розв’язки:

,

.

4. Кожну з одержаних нерівностей приєднують до обмежень початкової задачі. В результаті отримують дві нові цілочислові задачі лінійного програмування.

5. У будь-якій послідовності розв’язують обидві задачі.
У разі, коли отримано цілочисловий розв’язок хоча б однієї із задач, значення цільової функції цієї задачі зіставляють з почат­ковим значенням. Якщо різниця не більша від заданого числа e, то процес розв’язування може бути закінчено. У разі, коли цілочисловий розв’язок одержано в обох задачах, то з роз­в’язком початкової зіставляється той, який дає краще значення цільової функції. Якщо ж в обох задачах одержано нецілочислові розв’язки, то для дальшого гілкування вибирають ту задачу, для якої здобуто краще значення цільової функції і здійснюють перехід до кроку 2.

Приклад 6.2. Розв’яжемо методом гілок і меж задачу з прикладу 6.1.

Розв’язання. Відкинувши умову цілочисловості, дістанемо розв’язок: х1=1, х2= . Отже, допустиме ціле значення х2 має задовольняти одну з нерівностей або . Приєднуємо до початкової задачі окремо кожне з обмежень, нехтуючи умовою цілочисловості, і розв’язуємо по черзі обидві утворені задачі:

Для задачі І (з обмеженням ) оптимальним буде розв’язок , , а для задачі IІ (з обмеженням ) – розв’язок , . Оскільки цілочислового плану не знайдено, процес необхідно продовжити, узявши для дальшого розгалуження першу задачу, оптимальний план якої дає більше значення функціонала. Розв’язуємо задачу І, окремо приєднуючи до неї обмеження: і . Отримуємо такі дві задачі:

Розв’язком задачі ІІІ є план , , а задачі IV – план , . Обидва розв’язки є цілочисловими, проте краще значення цільової функції забезпечує розв’язок задачі IV. Тому оптимальним планом початкової цілочислової задачі буде , , що збігається з розв’язком, отриманим за методом Гоморі.

Схема процесу розв’язування задачі з прикладу 6.1 (рис.6.5) досить наочно пояснює назву методу гілок та меж. Початкова задача розділяється (гілкується) на дві простіші, і, якщо серед них не існує задачі з цілочисловим оптимальним розв’язком, то процес гілкування продовжується. Отже, всі розглянуті дії можна зоб­разити у вигляді «дерева»:

Рисyнок 6.5

Кожен елемент такого «дерева» – це певна задача, що має відповідний оптимальний план. Після одержання нецілочислового розв’язку послабленої (тобто без умови цілочисловості) початкової задачі ми перетворили її на дві інші з додатковими умовами. З них кращим виявився розв’язок задачі І, однак оскільки він був не цілочисловим, то ми продовжили процес гілкування. Задачу І введенням додаткових обмежень перетворили в задачу ІІІ та задачу IV. Оптимальні плани обох цих задач цілочислові, але план задачі IV дає більше значення функціонала, тому цілочисловим оптимальним планом початкової задачі є розв’язок задачі IV.

Самостійна робота №7 – Наближені методи розв’язування задачі цілочислового лінійного програмування

1. Наближені методи. Метод вектора спаду. Приклад розв’язку задачі цілочислового лінійного програмування методом вектора спаду [4, с.272-276].

2. Приклади розв’язку задачі цілочислового лінійного програмування методом Гоморі та методом гілок і меж [2, с.155-157], [4, с.159-160].

Примечания

1. Metacomco выпустила так называемую «evolution» версию оригинальной файловой системы Amiga, реализованной первой Amiga Corporation (бывшая Hi-Toro) в 1982-83/85. По правде говоря, Metacomco сделала кашу из ранних ФС, убивших ее простую и легкую структуру. Сперва OFS называлась просто Amiga File System. Название изменили с появлением «новой» Fast File System, созданной в 1987 для той же платформы.

2. Microsoft впервые представила FAT32 в Windows 95 OSR2 (OEM Service Release 2) и впоследствии в Windows 98.

3. IBM представила JFS с начальным релизом AIX версии 3.1 в 1990 году. Эта файловая система сейчас называется JFS1. Новая JFS (сейчас называемая JFS2), базирующаяся наLinux‐портах, была впервые применена в OS/2 Warp Server for e-Business в 1999 году.

[править]Ограничения

  Максимальная длина имён файлов Допустимые символы в названиях[1] Максимальная длина пути файла Максимальный размер файла Максимальный размер тома[2]
RT-11 6+3 символа в кодеRADIX50 A-Z, 0-9, $ . % <пробел> 14 символов 33,554,432 байт (65536 * 512) 33,554,432 байт
V6FS 14 байт[3] Любые символы, кроме NUL и /[4] Нет установленных ограничений[5] 8MiB[6] 2TiB
V7FS 14 байт[3] Любые символы, кроме NUL и /[4] Нет установленных ограничений[5] 1GiB[7] 2TiB
FAT12 8+3 символов (255 байт для VFAT)[3] Любые символы ANSI (Unicode для VFAT), кроме NUL[3][4] Нет установленных ограничений[5] 32MiB 1MiB — 32MiB
FAT16 8+3 символов (255 байт для VFAT)[3] Любые символы ANSI (Unicode для VFAT), кроме NUL,[3][4] Нет установленных ограничений[5] 2GiB 16MiB — 2GiB
MFS 30 байт[3] Любые символы, кроме NUL и :[4] Нет установленных ограничений[5] ? ?
HFS 30 байт[3] Любые символы, кроме NUL и :[4] Нет установленных ограничений[5] ? ?
FAT32 255 байт[3] Любые символы Юникода, кроме NUL[3][4] Нет установленных ограничений[5] 4GiB 512MiB — 8TiB[8]
HPFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 4GiB 2TiB[9]
NTFS 255 символов Любые символы Юникода, кроме NUL, " / \ * ? < > | : 32 767 символов Юникода; каждая компонента пути (каталог или имя файла) — до 255 символов[5] 16 EiB[10] 16 EiB[10]
HFS+ 255 символов[11] Любые символы Юникода, кроме NUL[4][12] ? 8EiB 8EiB
FFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 4GiB 256TiB
Amiga FFS 30 байт Любые символы, кроме NUL, / и : Нет установленных ограничений[5] 2GiB 4GiB
SFS 107 байт Любые символы, кроме NUL, / и : Нет установленных ограничений[5] 4GiB 128GiB
PFS3 31-106 байт[13] Любые символы, кроме NUL, / и : Нет установленных ограничений[5] 108GiB 2TiB
UFS1 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 4GiB — 256TiB 256TiB
UFS2 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 512GiB — 32PiB 1YiB
ext2 255 байт Любые символы, кроме NUL, /[4] Нет установленных ограничений[5] 16GiB — 2TiB[2] 2TiB — 32TiB
ext3 255 байт Любые символы, кроме NUL, /[4] Нет установленных ограничений[5] 16GiB — 2TiB[2] 2TiB — 32TiB
ext4 255 байт Любые символы, кроме NUL, /[4] Нет установленных ограничений[5] 16GiB — 16TiB[2] 1 EiB
ReiserFS 4032 байт/255 символов Любые символы, кроме NUL, /[4] Нет установленных ограничений[5] 8TiB[14] 16TiB
Reiser4 ? ? Нет установленных ограничений[5] 8TiB on x86 ?
XFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 9EiB[15] 9EiB[15]
JFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 8EiB 512TiB — 4PiB
JFS2 255 байт Любые символы Юникода, кроме NUL Нет установленных ограничений[5] 4PiB 32PiB
Be File System 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 12288 байт — 260GiB[16] 256PiB — 2EiB
AdvFS 255 символов Любые символы, кроме NUL[4] Нет установленных ограничений[5] 16TiB 16TiB
NSS 256 символов Depends on namespace used[17] Ограничивается только возможностями клиента 8TiB 8TiB
NWFS 80 байт[18] Depends on namespace used[17] Нет установленных ограничений[5] 4GiB 1TiB
ODS-5 236 байт[19] ? 4096 байт[20] 1TiB 1TiB
VxFS 255 байт Любые символы, кроме NUL[4] Нет установленных ограничений[5] 16EiB ?
UDF 255 байт Любые символы Юникода, кроме NUL 1023 байт[21] 16EiB ?
ZFS 255 байт Любые символы Юникода, кроме NUL Нет установленных ограничений[5] 16EiB 16EiB
Btrfs 255 байт Любые символы Юникода, кроме NUL и / ? 16EiB 16EiB
exFAT Неизвестно Любые символы Юникода, кроме NUL Нет установленных ограничений 16EiB 64 ZiB[22] в теории 512 TiB
  Максимальная длина имён файлов Допустимые символы в названиях[1] Максимальная длина пути файла Максимальный размер файла Максимальный размер тома[2]

<== попередня лекція | наступна лекція ==>
Комбінаторні методи. Метод гілок та меж | Завдання.


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн