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

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



            10 октября 2008 г.


              Лекция основана на результатах из:
              «Beier, R. and V¨cking, B. (2003). In
                               o
              Proceedings of the 35th ACM Symposium on
              Theory of Computing (STOC), pages
              232–241».

                                              1 / 15
Полиномиальность в среднем
Определение
 «Полиномиальный в среднем (точно)»
Алгоритм 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 / 15
Задача о рюкзаке
Задача
«0–1 Рюкзак (Knapsack)»
Даны:
c1 , . . . , cn , cj ∈ N — «стоимости» предметов;
a1 , . . . , an , aj ∈ N — «размеры» или «веса»;
     B ∈ N — «размер рюкзака».
Найти максимальное значение f ∗ целевой функции
                                     n
                              f ≡         ci xi → max
                                    i=1

с ограничением на размер «рюкзака»:
                         n
                              ai xi ≤ B,     xi ∈ {0, 1}.
                        i=1
                                                            3 / 15
def KnapsackNemhauserUllman (Items, B) :
    ParetoS ← [Solution ()]                    # Парето-оптимальные по весу
    for item ∈ Items :
         newSolutions ← [ ]
         for solution ∈ ParetoS :
              if solution.weight + item.weight ≤ B :
                   newSolutions.append (solution + item)
         mergedSolution ← mergeSolutions (ParetoS, newSolutions)
         ParetoS ← mergedSolution
    return ParetoS[−1], len (ParetoS)


                     Предметы ( стоимость ): [ 6 ,
                                   вес         3
                                                           3 2 3 6
                                                            , , , ],
                                                           4 5 3 8
                                                                       B = 10


                     ParetoS            newSolutions         mergedSolution
                     [0]
                      0
                                                [6]
                                                 3
                                                             [0, 6]
                                                               0 3
                     [0, 6]
                      0 3
                                             [3, 9]
                                               4 7
                                                             [0, 6, 7]
                                                               0 3
                                                                       9

                      0 3
                            9
                     [0, 6, 7]               [2, 8]
                                               5 8
                                                               0 6 9
                                                             [0, 3, 7]
                      0 6 9                 3 9 12
                     [0, 3, 7]            [ 3 , 6 , 10 ]     [ 0 , 6 , 6 , 12 ]
                                                               0 3
                                                                       9
                                                                           10
                     [0, 6, 6,
                      0 3
                            9    12
                                 10
                                    ]           [6]
                                                 8
                                                                       9
                                                             [ 0 , 6 , 6 , 12 ]
                                                               0 3         10

                                                                12
                                  Оптимальное решение:          10




                                                                                  4 / 15
def KnapsackNemhauserUllman (Items, B) :
    ParetoS ← [Solution ()]                    # Парето-оптимальные по весу
    for item ∈ Items :
         newSolutions ← [ ]
         for solution ∈ ParetoS :
              if solution.weight + item.weight ≤ B :
                   newSolutions.append (solution + item)
         mergedSolution ← mergeSolutions (ParetoS, newSolutions)
         ParetoS ← mergedSolution
    return ParetoS[−1], len (ParetoS)


                     Предметы ( стоимость ): [ 6 ,
                                   вес         3
                                                           3 2 3 6
                                                            , , , ],
                                                           4 5 3 8
                                                                       B = 10


                     ParetoS            newSolutions         mergedSolution
                     [0]
                      0
                                                [6]
                                                 3
                                                             [0, 6]
                                                               0 3
                     [0, 6]
                      0 3
                                             [3, 9]
                                               4 7
                                                             [0, 6, 7]
                                                               0 3
                                                                       9

                      0 3
                            9
                     [0, 6, 7]               [2, 8]
                                               5 8
                                                               0 6 9
                                                             [0, 3, 7]
                      0 6 9                 3 9 12
                     [0, 3, 7]            [ 3 , 6 , 10 ]     [ 0 , 6 , 6 , 12 ]
                                                               0 3
                                                                       9
                                                                           10
                     [0, 6, 6,
                      0 3
                            9    12
                                 10
                                    ]           [6]
                                                 8
                                                                       9
                                                             [ 0 , 6 , 6 , 12 ]
                                                               0 3         10

                                                                12
                                  Оптимальное решение:          10




                                                                                  5 / 15
Сложность алгоритма — O(n · |ParetoSolutions|).




                                                  6 / 15
Мат. ожидание сложности алгоритма полиномиально


Теорема
Пусть:
          ai — «веса», произвольные положительные числа;
          ci — «стоимости», независимые случайные величины,
             равномерно распределенные на [0, 1];
q = max |ParetoSolutions| — число доминирующих подмножеств для
            всех n предметов.
Тогда
                          E(q) = O(n3 ).




                                                           7 / 15
Определения

m = 2n , S1 , . . . , Sm — подмножества [n] в порядке неубывания весов.
(Веса i∈Sk ai множеств Sk в нашей теме не возникают.)
Для любых 2 ≤ u ≤ m, 1 ≤ k ≤ u:

       Plusk   = Su  Sk
     Minusk    = Sk  Su
         Δ+
          k    =             ci
                   i∈Plusk

         Δ−
          k    =              ci
                   i∈Minusk
         Δu =       min Δ+ − Δ−
                         k    k
                   1≤k<u
∀u ≥ 2, Su — доминирующее множество ⇔ Δu > 0.


                                                                  8 / 15
События

Рассмотрим некоторое u, пусть Su = [1, . . . , t] (иначе перенумеруем).

        ∀ 1 ≤ k < u Plusk ⊆ [1, . . . , t], Minusk ⊆ [t + 1, . . . , n]
Пусть 0 < ε < 1.


                     ПаретоНабор   = {Δu > 0}
                      ДельтаМала   =    Δu < ε2
                     ЭлементМалj   = {cj < ε}
                   ЭлементНеМалj   =   ЭлементМалj = {cj ≥   ε}
                                        t
                ВНабореНеМалы      =   ∩j=1 ЭлементНеМалj




                                                                          9 / 15
P(ВНабореНеМалы|ПаретоНабор) ≤ nε
∀j ≤ t и 0 < ε < 1:


 P (cj < ε| ∀k : Δ+ > Δ−
                  k    k      =    P (cj < ε| cj > x)
                                     при x ≥ ε: 0
                              ≤                 ε−x          ε(1−x)       x(1−ε)
                                     при x < ε: 1−x =         1−x     −    1−x
                              ≤ ε
     P(cj < ε|cj > x)
                         -
    0      x      ε      1


        P(ВНабореНеМалы|ПаретоНабор) = P(∪t ЭлементМалj |ПаретоНабор)
                                          j=1
                                          t
                                    ≤         P(ЭлементМалj |ПаретоНабор)
                                        j=1
                                    ≤ t · ε ≤ nε.

                                                                          10 / 15
P(ДельтаМала|ПаретоНабор ∧ ВНабореНеМалы) ≤ nε
Оценим P(ПаретоНабор) при априорности событий (при условии):
«∀j cj ∈ [0, 1]», «ВНабореНеМалы»(и, следовательно, «Δ+ ≥ ε»):
                                                      k

  P(ПаретоНабор|ВНабореНеМалы) = P ∀k Δ− ≤ Δ+ , ∀j > t cj ∈ [0, 1] =
                                        k      k
             1
    =               P ∀k Δ− ≤ (1 − ε) Δ+ , ∀j > t cj ∈ [0, 1 − ε] ≤
                             k            k
       (1 − ε)n−t
               1
      ≤              P ∀k Δ− ≤ Δ+ − ε2 , ∀j > t cj ∈ [0, 1 − ε] ≤
                               k    k
         (1 − ε)n−t
                                       1
                                 ≤            P (ДельтаМала|ВНабореНеМалы)
                                   (1 − ε)n−t
С другой стороны,   ДельтаМала   ⊂ ПаретоНабор, и

  P(ДельтаМала|ПаретоНабор ∧ ВНабореНеМалы) =
           P(ДельтаМала|ВНабореНеМалы)
       =                                 ≥ (1 − ε)n−t ≥ (1 − ε)n ≥ 1 − nε
           P(ПаретоНабор|ВНабореНеМалы)

                                                                  11 / 15
P(A|B) = P(A|B ∩ C ) · P(C |B) + P(A|B ∩ C ) · P(C |B)


                                                x +y
                                  P(A|B) =
                                             x +y +z +w

событие A           событие C
                                P(A|B ∩ C ) · P(C |B) =
                                           y          y +z
                y                     =         ·
       x              z                  y +z x +y +z +w

            w
       событие B                P(A|B ∩ C ) · P(C |B) =
                                           x          x +w
                                     =          ·
                                        x +w x +y +z +w

                                                    12 / 15
P(ДельтаМала|ПаретоНабор) ≤ 2nε



         P(A|B) = P(A|B ∩ C ) · P(C |B) + P(A|B ∩ C ) · P(C |B)
Оценим P(ДельтаМала|ПаретоНабор):

  P(ДельтаМала|ПаретоНабор) =
   = P(ДельтаМала|ПаретоНабор ∩ ВНабореНеМалы) · P(ВНабореНеМалы|ПаретоНабор)
   + P(ДельтаМала|ПаретоНабор ∩ ВНабореНеМалы) · P(ВНабореНеМалы|ПаретоНабор)
  ≤ P(ДельтаМала|ПаретоНабор ∩ ВНабореНеМалы) + P(ВНабореНеМалы|ПаретоНабор)
                                                           ≤ nε + nε = 2nε




                                                                     13 / 15
E(q) = O(n3 )
               1
Возьмем ε =   3n ,   тогда

      E(Δu |Δu > 0) ≥ ε2 · P(ДельтаМала|ПаретоНабор)
                             = ε2 · (1 − P[ДельтаМала|ПаретоНабор])
                                                  1          2       1
                             ≥ ε2 · (1 − 2nε) = 2 · (1 − ) =
                                                 9n          3      27n2
Обозначим мат. ожидание стоимости Sm через Cm . Имеем две оценки:

          n · E(ci ) = n
                       2
  Cm =       m                                        1     m
             u=2 P(Δu > 0) E(Δu |Δu > 0) ≥           27n2   u=2 P(Δu   > 0)
                             m
                                                   n
          E(q) = 1 +             P(Δu > 0) ≤ 1 +     · 27n2 = O(n3 )
                                                   2
                         u=2




                                                                       14 / 15
Интернет поддержка курса




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



                           15 / 15

More Related Content

Viewers also liked

P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And NpcStas Fomin
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost OkStas Fomin
 
Derandomization Maxsat
Derandomization MaxsatDerandomization Maxsat
Derandomization MaxsatStas Fomin
 
activity sriram
activity sriramactivity sriram
activity sriramsiranee
 
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
 
Max Cut Semidefinite
Max Cut SemidefiniteMax Cut Semidefinite
Max Cut SemidefiniteStas Fomin
 
Теория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеТеория ограничений и Линейное программирование
Теория ограничений и Линейное программированиеStas Fomin
 
Fake Flash Drives from TopKeen
Fake Flash Drives from TopKeenFake Flash Drives from TopKeen
Fake Flash Drives from TopKeenStas Fomin
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beamStas Fomin
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And SamplesStas Fomin
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Stas Fomin
 

Viewers also liked (11)

P Reducibility And Npc
P Reducibility And NpcP Reducibility And Npc
P Reducibility And Npc
 
Greedy Covering Almost Ok
Greedy Covering Almost OkGreedy Covering Almost Ok
Greedy Covering Almost Ok
 
Derandomization Maxsat
Derandomization MaxsatDerandomization Maxsat
Derandomization Maxsat
 
activity sriram
activity sriramactivity sriram
activity sriram
 
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...
 
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
 
Levenstein distance.beam
Levenstein distance.beamLevenstein distance.beam
Levenstein distance.beam
 
Intro And Samples
Intro And SamplesIntro And Samples
Intro And Samples
 
Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?Какой у вас Agile: свежевыжатый или порошковый?
Какой у вас Agile: свежевыжатый или порошковый?
 

More from Stas Fomin

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdfStas Fomin
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-linkStas Fomin
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...Stas Fomin
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеологияStas Fomin
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized ComplexityStas 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
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy KnapsackStas Fomin
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming KnapsackStas Fomin
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized RoundingStas Fomin
 
Derandomization Luby
Derandomization LubyDerandomization Luby
Derandomization LubyStas Fomin
 
Amplifying Reduction Non Approx
Amplifying Reduction Non ApproxAmplifying Reduction Non Approx
Amplifying Reduction Non ApproxStas Fomin
 

More from Stas Fomin (15)

average-knapsack.beam.pdf
average-knapsack.beam.pdfaverage-knapsack.beam.pdf
average-knapsack.beam.pdf
 
testopia-missing-link
testopia-missing-linktestopia-missing-link
testopia-missing-link
 
«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...«Собор или базар»: системы контроля версий — централизованные или распределен...
«Собор или базар»: системы контроля версий — централизованные или распределен...
 
Mindmaps: история и идеология
Mindmaps: история и идеологияMindmaps: история и идеология
Mindmaps: история и идеология
 
Randomized Complexity
Randomized ComplexityRandomized Complexity
Randomized Complexity
 
Probabilistically Checkable Proofs
Probabilistically Checkable ProofsProbabilistically Checkable Proofs
Probabilistically Checkable Proofs
 
Obfuscation Curstate Review
Obfuscation Curstate ReviewObfuscation Curstate Review
Obfuscation Curstate Review
 
Intro Erevan
Intro ErevanIntro Erevan
Intro Erevan
 
Greedy Knapsack
Greedy KnapsackGreedy Knapsack
Greedy Knapsack
 
Dynamic Programming Knapsack
Dynamic Programming KnapsackDynamic Programming Knapsack
Dynamic Programming Knapsack
 
Randomized Rounding
Randomized RoundingRandomized Rounding
Randomized Rounding
 
Dnf Counting
Dnf CountingDnf Counting
Dnf Counting
 
Derandomization Luby
Derandomization LubyDerandomization Luby
Derandomization Luby
 
Christofides
ChristofidesChristofides
Christofides
 
Amplifying Reduction Non Approx
Amplifying Reduction Non ApproxAmplifying Reduction Non Approx
Amplifying Reduction Non Approx
 

Recently uploaded

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Recently uploaded (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Average Knapsack

  • 1. Полиномиальный в среднем алгоритм для «Рюкзака» Н.Н. Кузюрин С.А. Фомин 10 октября 2008 г. Лекция основана на результатах из: «Beier, R. and V¨cking, B. (2003). In o Proceedings of the 35th ACM Symposium on Theory of Computing (STOC), pages 232–241». 1 / 15
  • 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 / 15
  • 3. Задача о рюкзаке Задача «0–1 Рюкзак (Knapsack)» Даны: c1 , . . . , cn , cj ∈ N — «стоимости» предметов; a1 , . . . , an , aj ∈ N — «размеры» или «веса»; B ∈ N — «размер рюкзака». Найти максимальное значение f ∗ целевой функции n f ≡ ci xi → max i=1 с ограничением на размер «рюкзака»: n ai xi ≤ B, xi ∈ {0, 1}. i=1 3 / 15
  • 4. def KnapsackNemhauserUllman (Items, B) : ParetoS ← [Solution ()] # Парето-оптимальные по весу for item ∈ Items : newSolutions ← [ ] for solution ∈ ParetoS : if solution.weight + item.weight ≤ B : newSolutions.append (solution + item) mergedSolution ← mergeSolutions (ParetoS, newSolutions) ParetoS ← mergedSolution return ParetoS[−1], len (ParetoS) Предметы ( стоимость ): [ 6 , вес 3 3 2 3 6 , , , ], 4 5 3 8 B = 10 ParetoS newSolutions mergedSolution [0] 0 [6] 3 [0, 6] 0 3 [0, 6] 0 3 [3, 9] 4 7 [0, 6, 7] 0 3 9 0 3 9 [0, 6, 7] [2, 8] 5 8 0 6 9 [0, 3, 7] 0 6 9 3 9 12 [0, 3, 7] [ 3 , 6 , 10 ] [ 0 , 6 , 6 , 12 ] 0 3 9 10 [0, 6, 6, 0 3 9 12 10 ] [6] 8 9 [ 0 , 6 , 6 , 12 ] 0 3 10 12 Оптимальное решение: 10 4 / 15
  • 5. def KnapsackNemhauserUllman (Items, B) : ParetoS ← [Solution ()] # Парето-оптимальные по весу for item ∈ Items : newSolutions ← [ ] for solution ∈ ParetoS : if solution.weight + item.weight ≤ B : newSolutions.append (solution + item) mergedSolution ← mergeSolutions (ParetoS, newSolutions) ParetoS ← mergedSolution return ParetoS[−1], len (ParetoS) Предметы ( стоимость ): [ 6 , вес 3 3 2 3 6 , , , ], 4 5 3 8 B = 10 ParetoS newSolutions mergedSolution [0] 0 [6] 3 [0, 6] 0 3 [0, 6] 0 3 [3, 9] 4 7 [0, 6, 7] 0 3 9 0 3 9 [0, 6, 7] [2, 8] 5 8 0 6 9 [0, 3, 7] 0 6 9 3 9 12 [0, 3, 7] [ 3 , 6 , 10 ] [ 0 , 6 , 6 , 12 ] 0 3 9 10 [0, 6, 6, 0 3 9 12 10 ] [6] 8 9 [ 0 , 6 , 6 , 12 ] 0 3 10 12 Оптимальное решение: 10 5 / 15
  • 6. Сложность алгоритма — O(n · |ParetoSolutions|). 6 / 15
  • 7. Мат. ожидание сложности алгоритма полиномиально Теорема Пусть: ai — «веса», произвольные положительные числа; ci — «стоимости», независимые случайные величины, равномерно распределенные на [0, 1]; q = max |ParetoSolutions| — число доминирующих подмножеств для всех n предметов. Тогда E(q) = O(n3 ). 7 / 15
  • 8. Определения m = 2n , S1 , . . . , Sm — подмножества [n] в порядке неубывания весов. (Веса i∈Sk ai множеств Sk в нашей теме не возникают.) Для любых 2 ≤ u ≤ m, 1 ≤ k ≤ u: Plusk = Su Sk Minusk = Sk Su Δ+ k = ci i∈Plusk Δ− k = ci i∈Minusk Δu = min Δ+ − Δ− k k 1≤k<u ∀u ≥ 2, Su — доминирующее множество ⇔ Δu > 0. 8 / 15
  • 9. События Рассмотрим некоторое u, пусть Su = [1, . . . , t] (иначе перенумеруем). ∀ 1 ≤ k < u Plusk ⊆ [1, . . . , t], Minusk ⊆ [t + 1, . . . , n] Пусть 0 < ε < 1. ПаретоНабор = {Δu > 0} ДельтаМала = Δu < ε2 ЭлементМалj = {cj < ε} ЭлементНеМалj = ЭлементМалj = {cj ≥ ε} t ВНабореНеМалы = ∩j=1 ЭлементНеМалj 9 / 15
  • 10. P(ВНабореНеМалы|ПаретоНабор) ≤ nε ∀j ≤ t и 0 < ε < 1: P (cj < ε| ∀k : Δ+ > Δ− k k = P (cj < ε| cj > x) при x ≥ ε: 0 ≤ ε−x ε(1−x) x(1−ε) при x < ε: 1−x = 1−x − 1−x ≤ ε P(cj < ε|cj > x) - 0 x ε 1 P(ВНабореНеМалы|ПаретоНабор) = P(∪t ЭлементМалj |ПаретоНабор) j=1 t ≤ P(ЭлементМалj |ПаретоНабор) j=1 ≤ t · ε ≤ nε. 10 / 15
  • 11. P(ДельтаМала|ПаретоНабор ∧ ВНабореНеМалы) ≤ nε Оценим P(ПаретоНабор) при априорности событий (при условии): «∀j cj ∈ [0, 1]», «ВНабореНеМалы»(и, следовательно, «Δ+ ≥ ε»): k P(ПаретоНабор|ВНабореНеМалы) = P ∀k Δ− ≤ Δ+ , ∀j > t cj ∈ [0, 1] = k k 1 = P ∀k Δ− ≤ (1 − ε) Δ+ , ∀j > t cj ∈ [0, 1 − ε] ≤ k k (1 − ε)n−t 1 ≤ P ∀k Δ− ≤ Δ+ − ε2 , ∀j > t cj ∈ [0, 1 − ε] ≤ k k (1 − ε)n−t 1 ≤ P (ДельтаМала|ВНабореНеМалы) (1 − ε)n−t С другой стороны, ДельтаМала ⊂ ПаретоНабор, и P(ДельтаМала|ПаретоНабор ∧ ВНабореНеМалы) = P(ДельтаМала|ВНабореНеМалы) = ≥ (1 − ε)n−t ≥ (1 − ε)n ≥ 1 − nε P(ПаретоНабор|ВНабореНеМалы) 11 / 15
  • 12. P(A|B) = P(A|B ∩ C ) · P(C |B) + P(A|B ∩ C ) · P(C |B) x +y P(A|B) = x +y +z +w событие A событие C P(A|B ∩ C ) · P(C |B) = y y +z y = · x z y +z x +y +z +w w событие B P(A|B ∩ C ) · P(C |B) = x x +w = · x +w x +y +z +w 12 / 15
  • 13. P(ДельтаМала|ПаретоНабор) ≤ 2nε P(A|B) = P(A|B ∩ C ) · P(C |B) + P(A|B ∩ C ) · P(C |B) Оценим P(ДельтаМала|ПаретоНабор): P(ДельтаМала|ПаретоНабор) = = P(ДельтаМала|ПаретоНабор ∩ ВНабореНеМалы) · P(ВНабореНеМалы|ПаретоНабор) + P(ДельтаМала|ПаретоНабор ∩ ВНабореНеМалы) · P(ВНабореНеМалы|ПаретоНабор) ≤ P(ДельтаМала|ПаретоНабор ∩ ВНабореНеМалы) + P(ВНабореНеМалы|ПаретоНабор) ≤ nε + nε = 2nε 13 / 15
  • 14. E(q) = O(n3 ) 1 Возьмем ε = 3n , тогда E(Δu |Δu > 0) ≥ ε2 · P(ДельтаМала|ПаретоНабор) = ε2 · (1 − P[ДельтаМала|ПаретоНабор]) 1 2 1 ≥ ε2 · (1 − 2nε) = 2 · (1 − ) = 9n 3 27n2 Обозначим мат. ожидание стоимости Sm через Cm . Имеем две оценки: n · E(ci ) = n 2 Cm = m 1 m u=2 P(Δu > 0) E(Δu |Δu > 0) ≥ 27n2 u=2 P(Δu > 0) m n E(q) = 1 + P(Δu > 0) ≤ 1 + · 27n2 = O(n3 ) 2 u=2 14 / 15
  • 15. Интернет поддержка курса http://discopal.ispras.ru/ Вопросы? 15 / 15