Page 34 - 6449
P. 34

Дробовою  частиною  числа  називають  різницю  між  числом  і  його
               цілою        частиною.        Дробову         частину        числа       називають f[x] :

                f   .10  3  10   3 .  10   3 . 0 ;    03.0f    3 .   0   3 . 0 ;   7f   3 .   7   3 .  7     3 . 7   8   7 . 0
                        Дробова  частина  числа  має  ряд  властивостей,  серед  яких
               використаємо  лише  дві: (f       a   b  )   a ( f  )  ) b ( f  ,  f  n (  )   nf  a (  ),  де  n  –  ціле
               додатнє число.
                        На основі вказаних двох властивостей було встановлено нерівність
               Гоморі: якщо
                                                     n  j  1 a ij  x j    i , b                 (1.37)

               а  x  – ціле число, то
                   j
                                                     n  j 1  x  j  f ( a )   f ( b ).            (1.38)
                                                              ij
                                                                     i
                        Рівняння  (1.37)  представляє  собою  одне  з  обмежень  ОДР  ЗЛП,  а
               нерівність  Гоморі  (1.38)  дозволяє  встановити  додаткове  обмеження  в
               систему обмежень ЗЛП, яке дозволяє  відсікати від ОДР деяку множину ,
               що не містить цілочисельні точки.
                        Алгоритм  методу  Гоморі  розв’язування  задач  цілочисельного
               програмування є таким: нехай потрібно розв’язати задачу цілочисельного
               програмування:
                                                                             min
                                                   z   xc  c  x  c  x  ...c  x                   (1.39)
                                                       1  1  2  2  3  3  1n  n
                                                                            max
               при умовах:
                                                 a 11 x 1   a 12 x 2   ...   a  n 1  x n   b 1
                                                 
                                                  a 21 x 1   a 22  x 2   ...  a 2 n x n   b2
                                                                                                  (1.40)
                                                  .......... .......... .......... .......... .......... .......... .
                                                  a  x   a  x   ...  a  x   b
                                                  m1  1  m2  2      mn 1  n  m
                                                     x    0 ,  x – цілі.
                                                      i      i
                        Спочатку  знаходимо  розв’язок  задачі  звичайним  симплекс-
               методом.  Якщо  знайдений  оптимальний  розв’язок  є  цілочисельним,  то
               задача вважається розв’язаною. Зауважимо, що в системі обмежень (1.40)
               умова  цілочиселності  може  накладатися  не  на  всі,  а  лише  на  деякі
               невідомі,  в  цьому  випадку  задача  вважається  розв’язаною,  якщо  цілі
               значення  є  в  потрібних  невідомих  –  інші  невідомі  можуть  бути  і
               дробовими.
                        Якщо  ж  в  оптимальному  розв’язку  не  всі  потрібні  змінні  є
               цілочисельними,  здійснюється  наступна  процедура:  в  симплекс  таблиці,
               яка  відповідає  оптимальному  розв’язку  задачі,  знаходимо  рівняння-
               обмеження  з  найбільшою  дробовою  частиною.  До  цього  рівняння
               застосовуємо  нерівність  Гоморі,  після  чого  додаємо  цю  нерівність  до
               системи обмежень задачі і знову розв’язуємо задачу симплекс-методом. За
               скінченну       кількість      кроків     вдається      знайти      розв’язок       задачі
               цілочисельного програмування або встановити його відсутність – в такому




                                                           34
   29   30   31   32   33   34   35   36   37   38   39