The Bin Packaging Problem

ΕΙΔΙΚΑ ΘΕΜΑΤΑ ΥΠΟΛΟΓΙΣΜΟΥ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑΣ
ΑΠΟΔΕΙΞΗ NP-ΠΛΗΡΟΤΗΤΑΣ ΤΟΥ “BIN PACKAGING”
Πατσιλινάκος Παναγιώτης Α.Μ: 4522
Περιγραφή του BIN PACKAGING:
Είσοδος: Ένα πεπερασμένο σύνολο U από αντικείμενα, ένα μέγεθος s(u)∈Z + , ∀ u∈U
και δύο θετικοί ακέραιοι B, K.
Ερώτημα: Υπάρχει μία κατάτμηση του U σε ανεξάρτητα σύνολα U 1 , U 2 , ..., U K τέτοια
ώστε το άθροισμα των μεγεθών των αντικειμένων σε κάθε U i να είναι το πολύ B;
Για να δείξουμε ότι η γλώσσα BIN PACKAGING είναι NP-ΠΛΗΡΗΣ, αρκεί να δείξουμε ότι
ανήκει στην κλάση NP και ότι κάθε γλώσσα στο NP ανάγεται σ'αυτήν.
Συμμετοχή στο NP:
Είναι εύκολο να παρατηρήσουμε πως αν μπορούσαμε να “μαντέψουμε” μία λύση στο
πρόβλημα για ένα δοσμένο στιγμιότυπο, τότε η επαλήθευση αυτής θα μπορούσε να γίνει σε
πολυωνυμικό, ως προς την είσοδο, χρόνο καθώς το μόνο που χρειάζεται είναι να διατρέξουμε το
βάρος κάθε στοιχείου της κάθε κατάτμησης (δηλαδή κάθε στοιχείο του U) προσθέτοντάς το στο
συνολικό βάρος της κατάτμησης.
Συνεπώς μπορούμε να φτιάξουμε έναν επαληθευτή που να επαληθεύει τη λύση σε
πολυωνυμικό χρόνο, άρα η γλώσσα BIN PACKAGING ανήκει στην κλάση NP.
Απόδειξη “πληρότητας”:
Αρκεί να δείξουμε ότι μία NP-ΠΛΗΡΗΣ γλώσσα ανάγεται πολυωνυμικά στο BIN
PACKAGING.
Θα δείξουμε δύο αναγωγές πολυωνυμικού χρόνου από δύο γνωστά NP-ΠΛΗΡΗ
προβλήματα, το 3-PARTITION [2] και το PARTITION [1].
Αναγωγή από 3-PARTITION:
Περιγραφή του 3-PARTITION:
Είσοδος: Ένα σύνολο A που αποτελείται από 3m στοιχεία, ένα όριο B∈Z + και ένα
μέγεθος s(a)∈Z + για κάθε a∈ A τέτοιο ώστε B /4<s(a)<B /2 και ∑ s(a)=mB .
a∈ A
Ερώτημα: Μπορεί το A να κατατμηθεί σε m ανεξάρτητα σύνολα
ώστε για 1≤i≤m , ∑ s(a)=B .
A 1 , A 2 ,... , A m τέτοια
a∈ Ai
Θα δείξουμε ότι 3−PARTITION ≤P BIN PACKAGING .
Αναγωγή.:
Έστω ένα οποιοδήποτε στιγμιότυπο Φ του 3-PARTITION. Θα δείξουμε μία διαδικασία
(συνάρτηση) με την οποία θα κατασκευάζουμε για το συγκεκριμένο στιγμιότυπο ένα (και
μοναδικό) στιγμιότυπο Ψ του BIN PACKAGING τέτοιο ώστε Ψ ∈BIN PACKAGING ανν
Φ∈3−PARTITION (με τον συμβολισμό Ψ ∈BIN PACKAGING ενοούμε ότι το Ψ ανήκει στη
γλώσσα που ορίζεται από το BIN PACKAGING, αντίστοιχα για το PARTITION..).
Κατασκευή:
Θέτουμε ΒΨ =Β Φ , Κ=m , U = A και sψ ≡s Φ . Όπου τα στοιχεία με υποσημείωση Ψ ή
Φ αναφέρονται σε στοιχεία των αντίστοιχων στιγμιότυπων. Καθώς τα θεωρούμε κοινά η
υποσημείωση θα παραλείπεται στη συνέχεια. (στην ουσία για σύνολο U δίνουμε το ίδιο το σύνολο
A, διατηρώντας τα βάρη των στοιχείων του)
Προφανώς η παραπάνω αναγωγή είναι πολυωνυμικού χρόνου ως προς την είσοδο (Φ)
καθώς το μόνο που απαιτεί είναι μια ανάγνωση (-αντιγραφή) όλης της εισόδου.
Απόδειξη ορθότητας της αναγωγής:
• Ορθή κατεύθυνση: αν Φ∈3−PARTITION τότε Ψ ∈BIN PACKAGING .
Εξ' ορισμού, αν το Φ επιδέχεται 3-PARTITION, τότε υπάρχει κατάτμηση του Α σε m
σύνολα, έτσι ώστε για 1≤i≤m , ∑ s(a)=B . Άρα προφανώς με την ίδια κατάτμηση
στο U (=A) θα είχαμε
a∈ Ai
∑ s (u)=B
•
∑ s (u)≤B
( sψ ≡sΦ ) άρα ισχύει και
u∈U i
συνεπώς το
u∈U i
Ψ επιδέχεται BIN PACKAGING.
Αντίστροφη κατεύθυνση: αν Ψ ∈BIN PACKAGING , τότε Φ∈3−PARTITION .
Εξ' ορισμού, αφού το Ψ επιδέχεται BIN PACKAGING, υπάρχει κατάτμηση του U σε Κ(=m)
σύνολα έτσι ώστε για 1≤i≤Κ , ∑ s (u)≤B .
u∈U i
Αρκεί να δείξουμε ότι σε οποιαδήποτε τέτοια κατάτμηση ισχύει
∑ s (u)=B
για κάθε
u∈U i
1≤i≤Κ , δηλαδή ότι δεν υπάρχει
1≤ j≤Κ τέτοιο ώστε
∑ s(u)<B
σε μία τέτοια
u∈U j
κατάτμηση.
Όμως αν υποθέσουμε ότι η παραπάνω πρόταση δεν ισχύει, δηλαδή ότι υπάρχει τουλάχιστον
ένα j, με 1≤ j≤Κ , ώστε ∑ s(u)<B τότε παρατηρούμε ότι υποχρεωτικά το άθροισμα
u∈U j
των συνολικών βαρών όλων των κατατμήσεων U 1 , U 2 , ..., U K του U είναι αυστηρά
μικρότερο από Κ*Β, αφού η κάθε κατάτμηση έχει βάρος το πολύ Β και υπάρχει
τουλάχιστον μία με βάρος αυστηρά μικρότερο από B.
Το παραπάνω άθροισμα όμως είναι το άθροισμα των βαρών όλων των στοιχείων του
συνόλου U.
Έτσι καταλήγουμε στη σχέση ∑ s(u)<Κ∗B . Αλλά K=m, άρα η σχέση γίνεται
∑ s(u)<mB
u∈U
που είναι άτοπο γιατί έχουμε ορίσει
u∈U
∑ s(a)=mB
στο στιγμιότυπο του
a∈ A
3-PARTITION και U=A από τον ορισμό της αναγωγής.
Συνεπώς αν το Ψ επιδέχεται BIN PACKAGING, θα ισχύει υποχρεωτικά
∑ s (u)=B
για
u∈U i
κάθε 1≤i≤Κ .
Άρα οποιαδήποτε BIN PACKAGING κατάτμηση του στιγμιότυπου Ψ, αφού ισχύει πάντα
∑ s (u)=B και Κ=m, είναι και κατάτμηση 3-PARTITION του αντίστοιχου στιγμιοτύπου
u∈U i
άρα υποχρεωτικά αν Ψ ∈BIN PACKAGING , τότε Φ∈3−PARTITION .
Αναγωγή από PARTITION:
Περιγραφή του PARTITION:
Είσοδος: Ένα πεπερασμένο σύνολο Α και ένα μέγεθος
Ερώτημα: Υπάρχει υποσύνολο Α' του Α, τέτοιο ώστε
+
s(a)∈Z για κάθε a∈ A .
∑ s(a)= ∑ s (a) ;
a∈ A '
a∈ A− A '
Η γλώσσα PARTITION είναι NP-ΠΛΗΡΗΣ.
Όμοια με προηγουμένως θα κάνουμε αναγωγή του PARTITION στο BIN PACKAGING.
Έστω Φ ένα οποιοδήποτε στιγμιότυπο του PARTITION και Ψ το αποτέλεσμα της αναγωγής του Φ
σε στιγμιότυπο του BIN PACKAGING.
Αναγωγή:
⌊
Θέτουμε U = A , sΨ ≡sΦ , B=
∑a∈ A s(a)
⌋
, K=2 .
2
Προφανώς η παραπάνω αναγωγή μπορεί να γίνει σε πολυωνυμικό χρόνο ως προς το μέγεθος
του στιγμιοτύπου Φ καθώς το μόνο που χρειάζεται να υπολογίσουμε είναι το άθροισμα των βαρών
όλων των στοιχείων του A.
Απόδειξη ορθότητας της αναγωγής:
Γενικά για ένα στιγμιότυπο Φ που επιδέχεται PARTITION παρατηρούμε το εξής:
Έχουμε ∑ s(a)+ ∑ s(a)= ∑ s(a) αφού οι δύο κατατμήσεις του Α περιέχουν όλα τα
a∈ A '
στοιχεία του.
Έτσι
∑
από
∑
την
s (a)=
a∈ A
παραπάνω
σχέση
και
από
∑
s(a)=
a∈ A '
∑a∈ A s (a)
∑
s (a) έχουμε
a∈ A− A '
(i).
2
Ως άμεσο συμπέρασμα του παραπάνω, παρατηρούμε ότι για να επιδέχεται PARTITION το
∑a∈ A s (a)
Α, πρέπει το
να είναι ακέραιος αφού δείξαμε ότι υποχρεωτικά τόσο θα είναι το βάρος
2
του κάθε partition ενώ το βάρος κάθε στοιχείου είναι ακέραιος. (Δηλαδή αν δεν ήταν ακέραιος θα
έπρεπε το άθροισμα των βαρών των στοιχείων στο A' να μην είναι επίσης ακέραιος που δεν γίνεται
γιατί κάθε στοιχείο έχει ακέραιο βάρος.)
a∈ A '
s(a)=
a∈ A− A '
a∈ A− A '
Όπως είναι εμφανές την στρογγυλοποίηση (προς τα κάτω) κατά τον ορισμό του Β την
έχουμε κάνει για να μην θέσουμε μη ακέραια τιμή στο Β, το οποίο έχει οριστεί ως ακέραιος.
Προφανώς, με βάση την παραπάνω παρατήρηση, θέλουμε όταν δεν είναι ακέραιος ο λόγος
∑a∈ A s (a)
, το Ψ να μην επιδέχεται BIN PACKAGING όπως και θα δείξουμε.
2
a) Αρχικά υποθέτουμε ότι το
•
•
∑a∈ A s (a)
είναι ακέραιος. Τότε
⌊
B=
⌋
∑a∈ A s(a) ∑a∈ A s(a)
=
.
2
2
2
Ορθή κατεύθυνση: αν Φ∈PARTITION τότε Ψ ∈BIN PACKAGING .
Όπως δείξαμε προηγουμένως, αν το Φ επιδέχεται PARTITION, τότε μπορούμε να το
χωρίσουμε σε δύο σύνολα έτσι ώστε το άθροισμα των βαρών του καθενός να ισούται με
∑a∈ A s (a)
(=Β).
2
Συνεπώς η ίδια κατάτμηση στο αντίστοιχο σύνολο U του στιγμιότυπου Ψ ικανοποιεί το BIN
PACKAGING (θυμίζεται Κ=2)
Αντίστροφη κατεύθυνση:αν Ψ ∈BIN PACKAGING τότε Φ∈PARTITION .
Εξ' ορισμού αν το Ψ επιδέχεται BIN PACKAGING, τότε μπορούμε να το κατατμήσουμε σε
δυο σύνολα U 1, U 2 (K=2), ώστε ∑ s (u)≤B ,i=1,2 (ii) και από την κατασκευή του
u∈U i
στιγμιοτύπου Ψ έχουμε
B=
∑a∈ A s (a)
2
, άρα η (ii) γίνεται:
i=1,2.
Παρατηρούμε όμως ότι αν ίσχυε
∑ s(u)<
u∈U j
∑ s (u)≤
∑a∈ A s(a)
u∈U i
∑a∈ A s (a)
2
για j = 1 ή 2 θα είχαμε:
2
,
∑ s(a)
⇒
∑ s(u)+ ∑ s(u)<2∗ a∈2A
u∈U
u∈U
∑ s(u)< ∑ s (a)⇒ορσ. αναγωγής
u∈U
a∈ A
s(a)<
∑
∑ s (a) ΑΤΟΠΟ
a∈ A
a∈ A
Άρα είναι ∑ s (u)=B ,i=1,2 .
1
2
.
u∈U i
Συνεπώς η ίδια κατάτμηση αποτελεί και PARTITION του συνόλου U (που είναι το ίδιο το
Α).
b) Αν υποθέσουμε τώρα ότι το
∑a∈ A s (a)
δεν είναι ακέραιος, τότε
2
Αν όμως τώρα το Ψ επιδέχεται BIN PACKAGING θα είχαμε:
⌊
⌋
∑a∈ A s(a) ∑a∈ A s(a)
2
<
2
.
∑ s(u)+ ∑ s(u)≤2∗Β ⇒
u∈U 1
u∈U 2
⌊
⌋
∑ s (a)
⇒
∑ s(u)+ ∑ s(u)≤2∗ a∈2A
u∈U
u∈U
∑ s(a)
⇒
∑ s(u)+ ∑ s(u)<2∗ a∈2A
u∈U
u∈U
∑ s(u)< ∑ s (a)⇒ορσ. αναγωγής
u∈U
a∈ A
∑ s(a)<a∈∑A s (a) ΑΤΟΠΟ
a∈ A
1
2
1
2
.
Έτσι βλέπουμε ότι σε αυτήν την περίπτωση το Ψ δεν μπορεί να επιδέχεται BIN PACKAGING,
όπως και το Φ δεν μπορεί να επιδέχεται PARTITION.
(Παρατηρούμε επίσης ότι εάν είχαμε επιτρέψει στο Β να είναι ρητός αλλά διατηρούσαμε τον
υπόλοιπο ορισμό του σιγμιοτύπου του BIN PACKAGING, δηλαδή ότι τα βάρη είναι ακέραια, τότε
στην αναγωγή θα μπορούσαμε να μην έχουμε την στρογγυλοποίηση προς τα κάτω και η αναγωγή
θα ήταν πάλι ορθή)
Αναφορές.:
[1] Karp, R. M. [1972], “Reducibility among combinatorial problems,” in R. E. Miller and J. W. Thatcher
(eds.), Complexity of Computer Computations, Plenum Press, New York, 85-103.
[2] Garey, M. R., AND D. S. Johnson [1975], “Complexity results for multiprocessor scheduling under
resource constraints,” SIAM J. Comput. 4, 397-411