SlideShare a Scribd company logo
1 of 21
Download to read offline
Полиномиальный в среднем алгоритм для
            «Упаковки»

        Н.Н. Кузюрин   С.А. Фомин



            10 октября 2008 г.


              Алгоритм динамического
              программирования для задачи упаковки
              подмножеств. Полиномиальность
              алгоритма «в среднем».


                                             1 / 21
Полиномиальность в среднем
Определение
 «Полиномиальный в среднем (точно)»
Алгоритм A называется полиномиальным в среднем, если среднее
время его работы ограничено полиномом от длины входа, т.е.
существует константа c > 0, такая, что En TA = O(nc ).

Упражнение
Приведите пример функции TA (времени работы некоторого
алгоритма A) и распределения исходных данных Pn (I ), для которых
TA является полиномиальной в среднем (En TA = O(nc )), а TA — нет.
                                                            2


Определение
«Полиномиальный в среднем»
Алгоритм называется полиномиальным в среднем, если существует
константа ε > 0, такая, что En T ε = O(n), где T — время работы
алгоритма.                                                    2 / 21
Полиномиальность в среднем
Определение
 «Полиномиальный в среднем (точно)»
Алгоритм A называется полиномиальным в среднем, если среднее
время его работы ограничено полиномом от длины входа, т.е.
существует константа c > 0, такая, что En TA = O(nc ).

Упражнение
Приведите пример функции TA (времени работы некоторого
алгоритма A) и распределения исходных данных Pn (I ), для которых
TA является полиномиальной в среднем (En TA = O(nc )), а TA — нет.
                                                            2


Определение
«Полиномиальный в среднем»
Алгоритм называется полиномиальным в среднем, если существует
константа ε > 0, такая, что En T ε = O(n), где T — время работы
алгоритма.                                                    3 / 21
Полиномиальность в среднем
Определение
 «Полиномиальный в среднем (точно)»
Алгоритм A называется полиномиальным в среднем, если среднее
время его работы ограничено полиномом от длины входа, т.е.
существует константа c > 0, такая, что En TA = O(nc ).

Упражнение
Приведите пример функции TA (времени работы некоторого
алгоритма A) и распределения исходных данных Pn (I ), для которых
TA является полиномиальной в среднем (En TA = O(nc )), а TA — нет.
                                                            2


Определение
«Полиномиальный в среднем»
Алгоритм называется полиномиальным в среднем, если существует
константа ε > 0, такая, что En T ε = O(n), где T — время работы
алгоритма.                                                    4 / 21
Задача об упаковке
Задача
«Упаковка» (Packing)
Дано конечное множество L из m элементов и система его
подмножеств S1 , . . . , Sn . Требуется найти максимальную по числу
подмножеств подсистему попарно непересекающихся подмножеств.

Определение
Для m-элементного множества L, L = {l1 , . . . , lm } и семейства его
подмножеств {S1 , . . . , Sn }:
    Элемент li и подмножество Sj инцидентны, если li ∈ Sj .
    Матрицей инцидентности называется {0,1}-матрица A = (aij )
    размером m × n, в которой aij = 1 в том и только в том случае,
    когда элемент li и подмножество Sj инцидентны.


                                                                  5 / 21
Задача об упаковке
Задача
«Упаковка» (Packing)
Дано конечное множество L из m элементов и система его
подмножеств S1 , . . . , Sn . Требуется найти максимальную по числу
подмножеств подсистему попарно непересекающихся подмножеств.

Определение
Для m-элементного множества L, L = {l1 , . . . , lm } и семейства его
подмножеств {S1 , . . . , Sn }:
    Элемент li и подмножество Sj инцидентны, если li ∈ Sj .
    Матрицей инцидентности называется {0,1}-матрица A = (aij )
    размером m × n, в которой aij = 1 в том и только в том случае,
    когда элемент li и подмножество Sj инцидентны.


                                                                  6 / 21
Задача об упаковке
Задача
«Упаковка» (Packing)
Дано конечное множество L из m элементов и система его
подмножеств S1 , . . . , Sn . Требуется найти максимальную по числу
подмножеств подсистему попарно непересекающихся подмножеств.

Определение
Для m-элементного множества L, L = {l1 , . . . , lm } и семейства его
подмножеств {S1 , . . . , Sn }:
    Элемент li и подмножество Sj инцидентны, если li ∈ Sj .
    Матрицей инцидентности называется {0,1}-матрица A = (aij )
    размером m × n, в которой aij = 1 в том и только в том случае,
    когда элемент li и подмножество Sj инцидентны.


                                                                  7 / 21
ЦЛП для «Упаковки»

                                  n
                                        xj → max
                                 j=1

                ∀j : 1 ≤ j ≤ n    xj ∈ {0, 1}
                                  n
                ∀i : 1 ≤ i ≤ m          aij xi ≤ 1
                                 j=1


ЦЛП для «Упаковки» (общий случай)

                                  n
                                       cj xj → max
                                 j=1

                ∀j : 1 ≤ j ≤ n   xj ∈ {0, 1}
                                  n
               ∀i : 1 ≤ i ≤ m          aij xi ≤ bi
                                 j=1
                                                     8 / 21
ЦЛП для «Упаковки»

                                  n
                                        xj → max
                                 j=1

                ∀j : 1 ≤ j ≤ n    xj ∈ {0, 1}
                                  n
                ∀i : 1 ≤ i ≤ m          aij xi ≤ 1
                                 j=1


ЦЛП для «Упаковки» (общий случай)

                                  n
                                       cj xj → max
                                 j=1

                ∀j : 1 ≤ j ≤ n   xj ∈ {0, 1}
                                  n
               ∀i : 1 ≤ i ≤ m          aij xi ≤ bi
                                 j=1
                                                     9 / 21
def PackingDynP (A) :
                                            [[0 1 0 1]
    (m, n) ← A.shape
                                             [1 0 1 0]
    X ← [(
                                             [0 1 1 0]] --> 3x4-matrix A
         zeros (n, int),       # решение
         zeros (m, int),       # покрытие
                                            column(0)+< [0 0 0 0], [0 0 0]>
         0         # размер покрытия           => [0 1 0]+[0 0 0]=[0 1 0] => [1 0 0 0]
         )]                                 column(1)+< [0 0 0 0], [0 0 0]>
    for j ∈ xrange (n) :                       => [1 0 1]+[0 0 0]=[1 0 1] => [0 1 0 0]
         Sj ← getColumn (j)                 column(1)+< [1 0 0 0], [0 1 0]>
         for sol, cov, size ∈ copy (X ) :      => [1 0 1]+[0 1 0]=[1 1 1] => [1 1 0 0]
              newcov ← cov + Sj             column(2)+< [0 0 0 0], [0 0 0]>
              if max (newcov) ≤ 1 :            => [0 1 1]+[0 0 0]=[0 1 1] => [0 0 1 0]
                   newsol ← copy (sol)      column(3)+< [0 0 0 0], [0 0 0]>
                   newsol[j] ← 1               => [1 0 0]+[0 0 0]=[1 0 0] => [0 0 0 1]
                   X .append ((             column(3)+< [1 0 0 0], [0 1 0]>

                        newsol,                => [1 0 0]+[0 1 0]=[1 1 0] => [1 0 0 1]
                                            column(3)+< [0 0 1 0], [0 1 1]>
                        newcov,
                                               => [1 0 0]+[0 1 1]=[1 1 1] => [0 0 1 1]
                        size + 1))
                                            Выбран набор   [1 1 0 0]   размером 2
    return getOptimalSet (X )
                                                                           10 / 21
Упражнение
Какие входные данные для этого алгоритма заставят его работать
экспоненциально долго?

Упражнение
На каких входных данных этот алгоритм будет работать O(n3 )?

Теорема
Пусть aij являются независимыми случайными величинами,
принимающими значения {0, 1}, причем выполняется:

                        P{aij = 1} = p
                        P{aij = 0} = 1 − p
                        mp 2 ≥ ln n.

Тогда алгоритм является полиномиальным в среднем.

                                                          11 / 21
Упражнение
Какие входные данные для этого алгоритма заставят его работать
экспоненциально долго?

Упражнение
На каких входных данных этот алгоритм будет работать O(n3 )?

Теорема
Пусть aij являются независимыми случайными величинами,
принимающими значения {0, 1}, причем выполняется:

                        P{aij = 1} = p
                        P{aij = 0} = 1 − p
                        mp 2 ≥ ln n.

Тогда алгоритм является полиномиальным в среднем.

                                                          12 / 21
Упражнение
Какие входные данные для этого алгоритма заставят его работать
экспоненциально долго?

Упражнение
На каких входных данных этот алгоритм будет работать O(n3 )?

Теорема
Пусть aij являются независимыми случайными величинами,
принимающими значения {0, 1}, причем выполняется:

                        P{aij = 1} = p
                        P{aij = 0} = 1 − p
                        mp 2 ≥ ln n.

Тогда алгоритм является полиномиальным в среднем.

                                                          13 / 21
Мат. ожидание времени работы: O(nm E |T (n)|).
        x k — вектор с k единицами и n − k нулями;
        pki — вероятность выполнения i-неравенства для x k .
         Pk — вероятность того, что x k — допустимое решение;
                                           
              n                 k          
     pki ≡ P     aij xjk ≤ 1 ≤ P       aij ≤ 1 =
                                           
               j=1                                  j=1
                     k                     k−1
        = (1 − p) + kp(1 − p)                    = (1 − p)k−1 (1 + p(k − 1)) ≤
                                                                            2 (k−1)
        ≤ (1 − p)k−1 (1 + p)k−1 = (1 − p 2 )k−1 ≤ e −p                                .
                         m             m
                                                    2 (k−1)             2 (k−1)
              Pk =             pki ≤         e −p             = e −mp             .
                         i=1           i=1




                                                                                          14 / 21
Мат. ожидание времени работы: O(nm E |T (n)|).
        x k — вектор с k единицами и n − k нулями;
        pki — вероятность выполнения i-неравенства для x k .
         Pk — вероятность того, что x k — допустимое решение;
                                           
              n                 k          
     pki ≡ P     aij xjk ≤ 1 ≤ P       aij ≤ 1 =
                                           
               j=1                                  j=1
                     k                     k−1
        = (1 − p) + kp(1 − p)                    = (1 − p)k−1 (1 + p(k − 1)) ≤
                                                                            2 (k−1)
        ≤ (1 − p)k−1 (1 + p)k−1 = (1 − p 2 )k−1 ≤ e −p                                .
                         m             m
                                                    2 (k−1)             2 (k−1)
              Pk =             pki ≤         e −p             = e −mp             .
                         i=1           i=1




                                                                                          15 / 21
Мат. ожидание времени работы: O(nm E |T (n)|).
        x k — вектор с k единицами и n − k нулями;
        pki — вероятность выполнения i-неравенства для x k .
         Pk — вероятность того, что x k — допустимое решение;
                                           
              n                 k          
     pki ≡ P     aij xjk ≤ 1 ≤ P       aij ≤ 1 =
                                           
               j=1                                  j=1
                     k                     k−1
        = (1 − p) + kp(1 − p)                    = (1 − p)k−1 (1 + p(k − 1)) ≤
                                                                            2 (k−1)
        ≤ (1 − p)k−1 (1 + p)k−1 = (1 − p 2 )k−1 ≤ e −p                                .
                         m             m
                                                    2 (k−1)             2 (k−1)
              Pk =             pki ≤         e −p             = e −mp             .
                         i=1           i=1




                                                                                          16 / 21
Мат. ожидание времени работы: O(nm E |T (n)|).
        x k — вектор с k единицами и n − k нулями;
        pki — вероятность выполнения i-неравенства для x k .
         Pk — вероятность того, что x k — допустимое решение;
                                           
              n                 k          
     pki ≡ P     aij xjk ≤ 1 ≤ P       aij ≤ 1 =
                                           
               j=1                                  j=1
                     k                     k−1
        = (1 − p) + kp(1 − p)                    = (1 − p)k−1 (1 + p(k − 1)) ≤
                                                                            2 (k−1)
        ≤ (1 − p)k−1 (1 + p)k−1 = (1 − p 2 )k−1 ≤ e −p                                .
                         m             m
                                                    2 (k−1)             2 (k−1)
              Pk =             pki ≤         e −p             = e −mp             .
                         i=1           i=1




                                                                                          17 / 21
n                    n                       n
                     n                     n                      n
 E |T (n)| ≤           Pk = 1 +              Pk ≤ 1 + n +           Pk <
                     k                     k                      k
               k=0                  k=1                     k=2
                        n                               n
                              n −mp2 (k−1)                                 2 (k−1)
          <1+n+                 e          ≤1+n+             e k ln n−mp             =
                              k
                       k=2                             k=2
                         n
                                              2
          =1+n+n              e (k−1)(ln n−mp ) .
                        k=2

При условии mp 2 ≥ ln n в последней сумме каждый член не
превосходит 1. Это и означает, что E[T (n)] = O(n2 ).




                                                                           18 / 21
n                    n                       n
                     n                     n                      n
 E |T (n)| ≤           Pk = 1 +              Pk ≤ 1 + n +           Pk <
                     k                     k                      k
               k=0                  k=1                     k=2
                        n                               n
                              n −mp2 (k−1)                                 2 (k−1)
          <1+n+                 e          ≤1+n+             e k ln n−mp             =
                              k
                       k=2                             k=2
                         n
                                              2
          =1+n+n              e (k−1)(ln n−mp ) .
                        k=2

При условии mp 2 ≥ ln n в последней сумме каждый член не
превосходит 1. Это и означает, что E[T (n)] = O(n2 ).




                                                                           19 / 21
20 / 21
Интернет поддержка курса




http://discopal.ispras.ru/
Вопросы?



                           21 / 21

More Related Content

What's hot

Testo stationary solutions -Transmitters and monitoring systems
Testo stationary solutions -Transmitters and monitoring systemsTesto stationary solutions -Transmitters and monitoring systems
Testo stationary solutions -Transmitters and monitoring systemsTesto Azerbaijan
 
OrthoClassic Product Catalogue
OrthoClassic Product CatalogueOrthoClassic Product Catalogue
OrthoClassic Product Cataloguevlnkhn
 
Press Club Hanoi - Autumn Newsletter 2012
Press Club Hanoi - Autumn Newsletter 2012Press Club Hanoi - Autumn Newsletter 2012
Press Club Hanoi - Autumn Newsletter 2012Hang Do
 
ENC Times May-08,2017
ENC Times May-08,2017 ENC Times May-08,2017
ENC Times May-08,2017 ENC
 
ENC Times-May 26,2017
ENC Times-May 26,2017ENC Times-May 26,2017
ENC Times-May 26,2017ENC
 
Year 9, issue 334
Year 9, issue 334Year 9, issue 334
Year 9, issue 334VIJAY NEWS
 
ENC Times-June 22,2017
ENC Times-June 22,2017ENC Times-June 22,2017
ENC Times-June 22,2017ENC
 
Edelman Trust Barometer'09, Russia
Edelman Trust Barometer'09, RussiaEdelman Trust Barometer'09, Russia
Edelman Trust Barometer'09, RussiaOlga Genn
 
ENC Times-May 14, 2018
ENC Times-May 14, 2018ENC Times-May 14, 2018
ENC Times-May 14, 2018ENC
 
ENC Times-May 09, 2018
ENC Times-May 09, 2018ENC Times-May 09, 2018
ENC Times-May 09, 2018ENC
 
ENC Times-July 15,2017
ENC Times-July 15,2017ENC Times-July 15,2017
ENC Times-July 15,2017ENC
 
AlgoPerm2012 - 06 Mireille Bousquet-Mélou
AlgoPerm2012 - 06 Mireille Bousquet-MélouAlgoPerm2012 - 06 Mireille Bousquet-Mélou
AlgoPerm2012 - 06 Mireille Bousquet-MélouAlgoPerm 2012
 
ENC Times-July 13,2017
ENC Times-July 13,2017ENC Times-July 13,2017
ENC Times-July 13,2017ENC
 
ENC Times-December 30,2017
ENC Times-December 30,2017ENC Times-December 30,2017
ENC Times-December 30,2017ENC
 
Leone Product Catalogue 2016
Leone Product Catalogue 2016Leone Product Catalogue 2016
Leone Product Catalogue 2016vlnkhn
 
John deere lx289 garden tractor service repair manual (tm2046)
John deere lx289 garden tractor service repair manual (tm2046)John deere lx289 garden tractor service repair manual (tm2046)
John deere lx289 garden tractor service repair manual (tm2046)fjjskefksmm
 
ENC Times-August 18,2017
ENC Times-August 18,2017ENC Times-August 18,2017
ENC Times-August 18,2017ENC
 
Jagruk janta 12 - 18 june 2019
Jagruk janta 12 - 18 june 2019Jagruk janta 12 - 18 june 2019
Jagruk janta 12 - 18 june 2019JagrukJanta
 

What's hot (19)

Testo stationary solutions -Transmitters and monitoring systems
Testo stationary solutions -Transmitters and monitoring systemsTesto stationary solutions -Transmitters and monitoring systems
Testo stationary solutions -Transmitters and monitoring systems
 
OrthoClassic Product Catalogue
OrthoClassic Product CatalogueOrthoClassic Product Catalogue
OrthoClassic Product Catalogue
 
Press Club Hanoi - Autumn Newsletter 2012
Press Club Hanoi - Autumn Newsletter 2012Press Club Hanoi - Autumn Newsletter 2012
Press Club Hanoi - Autumn Newsletter 2012
 
ENC Times May-08,2017
ENC Times May-08,2017 ENC Times May-08,2017
ENC Times May-08,2017
 
ENC Times-May 26,2017
ENC Times-May 26,2017ENC Times-May 26,2017
ENC Times-May 26,2017
 
presentazione
presentazionepresentazione
presentazione
 
Year 9, issue 334
Year 9, issue 334Year 9, issue 334
Year 9, issue 334
 
ENC Times-June 22,2017
ENC Times-June 22,2017ENC Times-June 22,2017
ENC Times-June 22,2017
 
Edelman Trust Barometer'09, Russia
Edelman Trust Barometer'09, RussiaEdelman Trust Barometer'09, Russia
Edelman Trust Barometer'09, Russia
 
ENC Times-May 14, 2018
ENC Times-May 14, 2018ENC Times-May 14, 2018
ENC Times-May 14, 2018
 
ENC Times-May 09, 2018
ENC Times-May 09, 2018ENC Times-May 09, 2018
ENC Times-May 09, 2018
 
ENC Times-July 15,2017
ENC Times-July 15,2017ENC Times-July 15,2017
ENC Times-July 15,2017
 
AlgoPerm2012 - 06 Mireille Bousquet-Mélou
AlgoPerm2012 - 06 Mireille Bousquet-MélouAlgoPerm2012 - 06 Mireille Bousquet-Mélou
AlgoPerm2012 - 06 Mireille Bousquet-Mélou
 
ENC Times-July 13,2017
ENC Times-July 13,2017ENC Times-July 13,2017
ENC Times-July 13,2017
 
ENC Times-December 30,2017
ENC Times-December 30,2017ENC Times-December 30,2017
ENC Times-December 30,2017
 
Leone Product Catalogue 2016
Leone Product Catalogue 2016Leone Product Catalogue 2016
Leone Product Catalogue 2016
 
John deere lx289 garden tractor service repair manual (tm2046)
John deere lx289 garden tractor service repair manual (tm2046)John deere lx289 garden tractor service repair manual (tm2046)
John deere lx289 garden tractor service repair manual (tm2046)
 
ENC Times-August 18,2017
ENC Times-August 18,2017ENC Times-August 18,2017
ENC Times-August 18,2017
 
Jagruk janta 12 - 18 june 2019
Jagruk janta 12 - 18 june 2019Jagruk janta 12 - 18 june 2019
Jagruk janta 12 - 18 june 2019
 

Viewers also liked

Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеStas Fomin
 
Integrating Open Source Software Environments into Software Development Pro...
Integrating  Open Source Software Environments  into Software Development Pro...Integrating  Open Source Software Environments  into Software Development Pro...
Integrating Open Source Software Environments into Software Development Pro...Stas Fomin
 
Small business survival presentation
Small business survival presentationSmall business survival presentation
Small business survival presentationAdamMelson
 
activity sriram
activity sriramactivity sriram
activity sriramsiranee
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut SemidefiniteStas Fomin
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeenStas Fomin
 

Viewers also liked (6)

Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программирование
 
Integrating Open Source Software Environments into Software Development Pro...
Integrating  Open Source Software Environments  into Software Development Pro...Integrating  Open Source Software Environments  into Software Development Pro...
Integrating Open Source Software Environments into Software Development Pro...
 
Small business survival presentation
Small business survival presentationSmall business survival presentation
Small business survival presentation
 
activity sriram
activity sriramactivity sriram
activity sriram
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut Semidefinite
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeen
 

More from Stas Fomin

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdfStas Fomin
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beamStas Fomin
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-linkStas Fomin
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...Stas Fomin
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Stas Fomin
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеологияStas Fomin
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в SubversionStas Fomin
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized ComplexityStas Fomin
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And NpcStas Fomin
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable ProofsStas Fomin
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate ReviewStas Fomin
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent SetStas Fomin
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And SamplesStas Fomin
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy KnapsackStas Fomin
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost OkStas Fomin
 
Greedy Covering
Greedy CoveringGreedy Covering
Greedy CoveringStas Fomin
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming KnapsackStas Fomin
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized RoundingStas Fomin
 

More from Stas Fomin (20)

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdf
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beam
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-link
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеология
 
Введение в Subversion
Введение в SubversionВведение в Subversion
Введение в Subversion
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized Complexity
 
Ptas Knapsack
Ptas KnapsackPtas Knapsack
Ptas Knapsack
 
P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And Npc
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable Proofs
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate Review
 
Maximal Independent Set
Maximal Independent SetMaximal Independent Set
Maximal Independent Set
 
Intro Erevan
Intro ErevanIntro Erevan
Intro Erevan
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And Samples
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy Knapsack
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost Ok
 
Greedy Covering
Greedy CoveringGreedy Covering
Greedy Covering
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming Knapsack
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized Rounding
 

Packing Average

  • 1. Полиномиальный в среднем алгоритм для «Упаковки» Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. Алгоритм динамического программирования для задачи упаковки подмножеств. Полиномиальность алгоритма «в среднем». 1 / 21
  • 2. Полиномиальность в среднем Определение «Полиномиальный в среднем (точно)» Алгоритм A называется полиномиальным в среднем, если среднее время его работы ограничено полиномом от длины входа, т.е. существует константа c > 0, такая, что En TA = O(nc ). Упражнение Приведите пример функции TA (времени работы некоторого алгоритма A) и распределения исходных данных Pn (I ), для которых TA является полиномиальной в среднем (En TA = O(nc )), а TA — нет. 2 Определение «Полиномиальный в среднем» Алгоритм называется полиномиальным в среднем, если существует константа ε > 0, такая, что En T ε = O(n), где T — время работы алгоритма. 2 / 21
  • 3. Полиномиальность в среднем Определение «Полиномиальный в среднем (точно)» Алгоритм A называется полиномиальным в среднем, если среднее время его работы ограничено полиномом от длины входа, т.е. существует константа c > 0, такая, что En TA = O(nc ). Упражнение Приведите пример функции TA (времени работы некоторого алгоритма A) и распределения исходных данных Pn (I ), для которых TA является полиномиальной в среднем (En TA = O(nc )), а TA — нет. 2 Определение «Полиномиальный в среднем» Алгоритм называется полиномиальным в среднем, если существует константа ε > 0, такая, что En T ε = O(n), где T — время работы алгоритма. 3 / 21
  • 4. Полиномиальность в среднем Определение «Полиномиальный в среднем (точно)» Алгоритм A называется полиномиальным в среднем, если среднее время его работы ограничено полиномом от длины входа, т.е. существует константа c > 0, такая, что En TA = O(nc ). Упражнение Приведите пример функции TA (времени работы некоторого алгоритма A) и распределения исходных данных Pn (I ), для которых TA является полиномиальной в среднем (En TA = O(nc )), а TA — нет. 2 Определение «Полиномиальный в среднем» Алгоритм называется полиномиальным в среднем, если существует константа ε > 0, такая, что En T ε = O(n), где T — время работы алгоритма. 4 / 21
  • 5. Задача об упаковке Задача «Упаковка» (Packing) Дано конечное множество L из m элементов и система его подмножеств S1 , . . . , Sn . Требуется найти максимальную по числу подмножеств подсистему попарно непересекающихся подмножеств. Определение Для m-элементного множества L, L = {l1 , . . . , lm } и семейства его подмножеств {S1 , . . . , Sn }: Элемент li и подмножество Sj инцидентны, если li ∈ Sj . Матрицей инцидентности называется {0,1}-матрица A = (aij ) размером m × n, в которой aij = 1 в том и только в том случае, когда элемент li и подмножество Sj инцидентны. 5 / 21
  • 6. Задача об упаковке Задача «Упаковка» (Packing) Дано конечное множество L из m элементов и система его подмножеств S1 , . . . , Sn . Требуется найти максимальную по числу подмножеств подсистему попарно непересекающихся подмножеств. Определение Для m-элементного множества L, L = {l1 , . . . , lm } и семейства его подмножеств {S1 , . . . , Sn }: Элемент li и подмножество Sj инцидентны, если li ∈ Sj . Матрицей инцидентности называется {0,1}-матрица A = (aij ) размером m × n, в которой aij = 1 в том и только в том случае, когда элемент li и подмножество Sj инцидентны. 6 / 21
  • 7. Задача об упаковке Задача «Упаковка» (Packing) Дано конечное множество L из m элементов и система его подмножеств S1 , . . . , Sn . Требуется найти максимальную по числу подмножеств подсистему попарно непересекающихся подмножеств. Определение Для m-элементного множества L, L = {l1 , . . . , lm } и семейства его подмножеств {S1 , . . . , Sn }: Элемент li и подмножество Sj инцидентны, если li ∈ Sj . Матрицей инцидентности называется {0,1}-матрица A = (aij ) размером m × n, в которой aij = 1 в том и только в том случае, когда элемент li и подмножество Sj инцидентны. 7 / 21
  • 8. ЦЛП для «Упаковки» n xj → max j=1 ∀j : 1 ≤ j ≤ n xj ∈ {0, 1} n ∀i : 1 ≤ i ≤ m aij xi ≤ 1 j=1 ЦЛП для «Упаковки» (общий случай) n cj xj → max j=1 ∀j : 1 ≤ j ≤ n xj ∈ {0, 1} n ∀i : 1 ≤ i ≤ m aij xi ≤ bi j=1 8 / 21
  • 9. ЦЛП для «Упаковки» n xj → max j=1 ∀j : 1 ≤ j ≤ n xj ∈ {0, 1} n ∀i : 1 ≤ i ≤ m aij xi ≤ 1 j=1 ЦЛП для «Упаковки» (общий случай) n cj xj → max j=1 ∀j : 1 ≤ j ≤ n xj ∈ {0, 1} n ∀i : 1 ≤ i ≤ m aij xi ≤ bi j=1 9 / 21
  • 10. def PackingDynP (A) : [[0 1 0 1] (m, n) ← A.shape [1 0 1 0] X ← [( [0 1 1 0]] --> 3x4-matrix A zeros (n, int), # решение zeros (m, int), # покрытие column(0)+< [0 0 0 0], [0 0 0]> 0 # размер покрытия => [0 1 0]+[0 0 0]=[0 1 0] => [1 0 0 0] )] column(1)+< [0 0 0 0], [0 0 0]> for j ∈ xrange (n) : => [1 0 1]+[0 0 0]=[1 0 1] => [0 1 0 0] Sj ← getColumn (j) column(1)+< [1 0 0 0], [0 1 0]> for sol, cov, size ∈ copy (X ) : => [1 0 1]+[0 1 0]=[1 1 1] => [1 1 0 0] newcov ← cov + Sj column(2)+< [0 0 0 0], [0 0 0]> if max (newcov) ≤ 1 : => [0 1 1]+[0 0 0]=[0 1 1] => [0 0 1 0] newsol ← copy (sol) column(3)+< [0 0 0 0], [0 0 0]> newsol[j] ← 1 => [1 0 0]+[0 0 0]=[1 0 0] => [0 0 0 1] X .append (( column(3)+< [1 0 0 0], [0 1 0]> newsol, => [1 0 0]+[0 1 0]=[1 1 0] => [1 0 0 1] column(3)+< [0 0 1 0], [0 1 1]> newcov, => [1 0 0]+[0 1 1]=[1 1 1] => [0 0 1 1] size + 1)) Выбран набор [1 1 0 0] размером 2 return getOptimalSet (X ) 10 / 21
  • 11. Упражнение Какие входные данные для этого алгоритма заставят его работать экспоненциально долго? Упражнение На каких входных данных этот алгоритм будет работать O(n3 )? Теорема Пусть aij являются независимыми случайными величинами, принимающими значения {0, 1}, причем выполняется: P{aij = 1} = p P{aij = 0} = 1 − p mp 2 ≥ ln n. Тогда алгоритм является полиномиальным в среднем. 11 / 21
  • 12. Упражнение Какие входные данные для этого алгоритма заставят его работать экспоненциально долго? Упражнение На каких входных данных этот алгоритм будет работать O(n3 )? Теорема Пусть aij являются независимыми случайными величинами, принимающими значения {0, 1}, причем выполняется: P{aij = 1} = p P{aij = 0} = 1 − p mp 2 ≥ ln n. Тогда алгоритм является полиномиальным в среднем. 12 / 21
  • 13. Упражнение Какие входные данные для этого алгоритма заставят его работать экспоненциально долго? Упражнение На каких входных данных этот алгоритм будет работать O(n3 )? Теорема Пусть aij являются независимыми случайными величинами, принимающими значения {0, 1}, причем выполняется: P{aij = 1} = p P{aij = 0} = 1 − p mp 2 ≥ ln n. Тогда алгоритм является полиномиальным в среднем. 13 / 21
  • 14. Мат. ожидание времени работы: O(nm E |T (n)|). x k — вектор с k единицами и n − k нулями; pki — вероятность выполнения i-неравенства для x k . Pk — вероятность того, что x k — допустимое решение;      n   k  pki ≡ P aij xjk ≤ 1 ≤ P aij ≤ 1 =     j=1 j=1 k k−1 = (1 − p) + kp(1 − p) = (1 − p)k−1 (1 + p(k − 1)) ≤ 2 (k−1) ≤ (1 − p)k−1 (1 + p)k−1 = (1 − p 2 )k−1 ≤ e −p . m m 2 (k−1) 2 (k−1) Pk = pki ≤ e −p = e −mp . i=1 i=1 14 / 21
  • 15. Мат. ожидание времени работы: O(nm E |T (n)|). x k — вектор с k единицами и n − k нулями; pki — вероятность выполнения i-неравенства для x k . Pk — вероятность того, что x k — допустимое решение;      n   k  pki ≡ P aij xjk ≤ 1 ≤ P aij ≤ 1 =     j=1 j=1 k k−1 = (1 − p) + kp(1 − p) = (1 − p)k−1 (1 + p(k − 1)) ≤ 2 (k−1) ≤ (1 − p)k−1 (1 + p)k−1 = (1 − p 2 )k−1 ≤ e −p . m m 2 (k−1) 2 (k−1) Pk = pki ≤ e −p = e −mp . i=1 i=1 15 / 21
  • 16. Мат. ожидание времени работы: O(nm E |T (n)|). x k — вектор с k единицами и n − k нулями; pki — вероятность выполнения i-неравенства для x k . Pk — вероятность того, что x k — допустимое решение;      n   k  pki ≡ P aij xjk ≤ 1 ≤ P aij ≤ 1 =     j=1 j=1 k k−1 = (1 − p) + kp(1 − p) = (1 − p)k−1 (1 + p(k − 1)) ≤ 2 (k−1) ≤ (1 − p)k−1 (1 + p)k−1 = (1 − p 2 )k−1 ≤ e −p . m m 2 (k−1) 2 (k−1) Pk = pki ≤ e −p = e −mp . i=1 i=1 16 / 21
  • 17. Мат. ожидание времени работы: O(nm E |T (n)|). x k — вектор с k единицами и n − k нулями; pki — вероятность выполнения i-неравенства для x k . Pk — вероятность того, что x k — допустимое решение;      n   k  pki ≡ P aij xjk ≤ 1 ≤ P aij ≤ 1 =     j=1 j=1 k k−1 = (1 − p) + kp(1 − p) = (1 − p)k−1 (1 + p(k − 1)) ≤ 2 (k−1) ≤ (1 − p)k−1 (1 + p)k−1 = (1 − p 2 )k−1 ≤ e −p . m m 2 (k−1) 2 (k−1) Pk = pki ≤ e −p = e −mp . i=1 i=1 17 / 21
  • 18. n n n n n n E |T (n)| ≤ Pk = 1 + Pk ≤ 1 + n + Pk < k k k k=0 k=1 k=2 n n n −mp2 (k−1) 2 (k−1) <1+n+ e ≤1+n+ e k ln n−mp = k k=2 k=2 n 2 =1+n+n e (k−1)(ln n−mp ) . k=2 При условии mp 2 ≥ ln n в последней сумме каждый член не превосходит 1. Это и означает, что E[T (n)] = O(n2 ). 18 / 21
  • 19. n n n n n n E |T (n)| ≤ Pk = 1 + Pk ≤ 1 + n + Pk < k k k k=0 k=1 k=2 n n n −mp2 (k−1) 2 (k−1) <1+n+ e ≤1+n+ e k ln n−mp = k k=2 k=2 n 2 =1+n+n e (k−1)(ln n−mp ) . k=2 При условии mp 2 ≥ ln n в последней сумме каждый член не превосходит 1. Это и означает, что E[T (n)] = O(n2 ). 19 / 21