Core Concepts
Es wird ein verbesserter Algorithmus präsentiert, der das Pigeonhole-Problem mit gleichen Teilsummen in O*(20.4n) Zeit löst, was eine Verbesserung gegenüber dem bisherigen Rekord von O*(2n/2) Zeit ist.
Abstract
In dieser Arbeit wird ein effizienterer Algorithmus für das Pigeonhole-Problem mit gleichen Teilsummen vorgestellt. Das Problem besteht darin, gegeben n positive Ganzzahlen w1, ..., wn mit der Zusicherung, dass ihre Summe w([n]) < 2n - 1 ist, zwei verschiedene Teilmengen A, B ⊆ [n] zu finden, so dass die Summe der Elemente in A gleich der Summe der Elemente in B ist.
Der Algorithmus nutzt eine einfache strukturelle Charakterisierung von Instanzen mit wenigen Lösungen aus, um die Laufzeit gegenüber dem bisherigen Rekord von O*(2n/2) Zeit auf O*(20.4n) zu verbessern. Außerdem wird ein polynomieller Platz-Algorithmus in O*(20.75n) Zeit präsentiert.
Der Algorithmus besteht aus zwei Teilen:
Für Instanzen mit wenigen Nicht-Teilsummen (d ≤ Δ) wird eine deterministische Lösung in O*(√Δ) Zeit präsentiert. Dafür wird eine scharfe Charakterisierung der Struktur der Eingabezahlen ausgenutzt.
Für Instanzen mit vielen Nicht-Teilsummen (d ≥ Δ) wird ein randomisierter Algorithmus in O*((22n/Δ)1/3) Zeit präsentiert. Dieser nutzt Unterabtastung und modulare dynamische Programmierung aus.
Durch Wahl eines geeigneten Δ lassen sich diese beiden Ansätze kombinieren, um die Gesamtlaufzeit auf O*(20.4n) zu bringen.
Stats
Es gibt t ∈ [2n], so dass #{S ⊆ [n] : w(S) = t} ≥ h.
Es gibt mindestens m = ⌈Δ/(2j+1n)⌉ Zahlen t ∈ [2n], so dass #{S ⊆ [n] : w(S) = t} ≥ h.
Quotes
Keine relevanten Zitate gefunden.