Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Teoria della Programmazione Lineare Intera Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 27 Ottobre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa A.A. 2014/15 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 1 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL D’ora in poi consideriamo un problema di PLI nella forma max c T x Ax ≤ b x ∈ Zn (P) dove i dati A, b, c sono a componenti intere e la regione ammissibile Ω `e limitata. Teorema Il problema (P) `e NP-hard. Definizione Il problema di PL max c T x Ax ≤ b (RC) `e detto rilassamento continuo di (P). L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 2 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Che relazione c’`e tra (P) e (RC)? Teorema • Il valore ottimo di (RC) ` e maggiore o uguale del valore ottimo di (P). • Se la soluzione ottima di (RC) ` e ammissibile per (P), allora `e ottima anche per (P). Spesso la soluzione ottima di (RC) non `e ammissibile per (P)... L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 3 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 c 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 c 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 c 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 c 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 c 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 7 7 , 2 2 ottimo rilas. continuo x2 4 3 c 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 7 7 , 2 2 ottimo rilas. continuo arrotondamento → (3, 3) x2 4 3 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 7 7 , 2 2 ottimo rilas. continuo arrotondamento → (3, 3) x2 4 3 12 2 1 (3, 3) non `e ottima 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e arrotondare la soluzione trovata? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 7 7 , 2 2 ottimo rilas. continuo arrotondamento → (3, 3) x2 4 ottimo 3 13 12 2 1 (3, 3) non `e ottima la sol. ottima `e (1, 4) L. Galli Corso di Ricerca Operativa 2 0 - 1 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 4 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Per risolvere (P) `e sufficiente risolvere il suo rilassamento continuo e scegliere la soluzione ammissibile pi`u vicina rispetto alla distanza euclidea? NO Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 7 7 , 2 2 ottimo ril. cont. sol. pi` u vicina `e (3, 3) x2 ottimo 4 3 2 1 ma (3, 3) non `e ottima la sol. ottima `e (1, 4) L. Galli 0 Corso di Ricerca Operativa 2 1 - 2 3 Laurea Magistrale in Ingegneria Gestionale 4 5 Universit` a di Pisa x1 5 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Consideriamo i problemi: max c T x x ∈Ω max c T x x ∈ conv(Ω) dove conv(Ω) `e l’involucro convesso delle soluzioni ammissibili, cio`e il pi`u piccolo insieme convesso che contiene Ω. Esempio x2 x2 4 4 3 3 2 2 1 1 0 L. Galli 1 2 3 4 5 Corso di Ricerca Operativa 2 x1 0 - Laurea Magistrale in Ingegneria Gestionale 1 2 3 4 Universit` a di Pisa 5 x1 6 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Relazioni tra PLI e PL Teorema • conv(Ω) ` e un poliedro • I vertici di conv(Ω) appartengono a Ω • I problemi max c T x x ∈Ω max c T x x ∈ conv(Ω) hanno lo stesso valore ottimo e almeno una soluzione ottima comune Corollario Il problema di PLI max c T x x∈Ω `e equivalente al problema di PL max c Tx x∈conv(Ω) In generale `e difficile trovare i vincoli che definiscono conv(Ω) . . . L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 7 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Caratterizzazioni di conv(Ω) Per alcuni particolari problemi si riesce a caratterizzare conv(Ω): • problemi con matrici totalmente unimodulari • problema dell’accoppiamento di massima cardinalit` a • problema della copertura per archi di costo minimo L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 8 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Matrici totalmente unimodulari Teorema Sia Ω = {x ∈ Zn : A x ≤ b}. Se A `e una matrice totalmente unimodulare (cio`e il determinante di ogni sua sottomatrice quadrata `e 0 oppure 1 oppure −1), allora conv(Ω) = {x ∈ Rn : A x ≤ b}, cio`e conv(Ω) coincide con la regione ammissibile del rilassamento continuo. Esempi In un problema di flusso di costo minimo con variabili intere: min c T x Ex=b 0≤x≤u x ∈ Zn la matrice dei vincoli `e totalmente unimodulare. Quindi per risolverlo basta trovare un vertice ottimo del suo rilassamento continuo. Lo stesso vale per il problema dell’assegnamento di costo minimo e per il problema del cammino minimo. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 9 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Disuguaglianze valide In generale `e difficile caratterizzare conv(Ω). Si aggiungono vincoli alla regione ammissibile del rilassamento continuo in modo da approssimare conv(Ω). Definizione La disequazione p T x ≤ p0 `e detta disuguaglianza valida (DV) per l’insieme Ω se p T x ≤ p0 ∀ x ∈ Ω. Come si trovano disuguaglianze valide? L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 10 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Arrotondamento intero ⌊z⌋ indica la parte intera inferiore di un numero reale z. Teorema Supponiamo che Ω = {x ∈ Zn : A x ≤ b, x ≥ 0}. n X Se pi xi ≤ p0 `e una DV per Ω, i =1 allora anche n X ⌊pi ⌋ xi ≤ ⌊p0 ⌋ `e una DV per Ω. i =1 Dimostrazione Se x ∈ Ω, allora Z (x∈Zn ) ∋ n X (x≥0) ⌊pi ⌋xi n P n X (ipotesi) pi xi ≤ p0 . i =1 i =1 quindi ≤ ⌊pi ⌋ xi ≤ ⌊p0 ⌋. i =1 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 11 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Arrotondamento intero Esempio max x1 + 3 x2 x 1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 Laurea Magistrale in Ingegneria Gestionale 3 4 Universit` a di Pisa 5 x1 12 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Arrotondamento intero Esempio max x1 + 3 x2 x 1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 Divido per 5 il 1 vincolo e arrotondo: 1 21 x1 + x2 ≤ 5 5 ◦ 3 2 cio`e x2 ≤ 4 `e una DV. 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 Laurea Magistrale in Ingegneria Gestionale 3 4 Universit` a di Pisa 5 x1 12 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Arrotondamento intero Esempio max x1 + 3 x2 x 1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 Divido per 5 il 1 vincolo e arrotondo: 1 21 x1 + x2 ≤ 5 5 ◦ 3 2 cio`e x2 ≤ 4 `e una DV. 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 Laurea Magistrale in Ingegneria Gestionale 3 4 Universit` a di Pisa 5 x1 12 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Arrotondamento intero Esempio max x1 + 3 x2 x 1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 Divido per 5 il 1 vincolo e arrotondo: 1 21 x1 + x2 ≤ 5 5 ◦ 3 2 cio`e x2 ≤ 4 `e una DV. Divido per 2 il 2◦ vincolo e arrotondo: 35 4 x1 + x2 ≤ ≤ 17 2 1 0 1 2 3 4 5 x1 `e una DV. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 12 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Arrotondamento intero Esempio max x1 + 3 x2 x 1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 Divido per 5 il 1 vincolo e arrotondo: 1 21 x1 + x2 ≤ 5 5 ◦ 3 2 cio`e x2 ≤ 4 `e una DV. Divido per 2 il 2◦ vincolo e arrotondo: 35 4 x1 + x2 ≤ ≤ 17 2 1 0 1 2 3 4 5 x1 `e una DV. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 12 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Combinazione conica di DV Teorema Supponiamo che Ω = {x ∈ Zn : A x ≤ b, x ≥ 0}. Se n n X X pi xi ≤ p0 e qi xi ≤ q0 i =1 i =1 sono DV per Ω e α, β ≥ 0, allora anche n X (α pi + β qi ) xi ≤ α p0 + β q0 i =1 `e una DV per Ω. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 13 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Combinazione conica di DV Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 2 1 0 L. Galli Corso di Ricerca Operativa 2 - 1 2 Laurea Magistrale in Ingegneria Gestionale 3 4 Universit` a di Pisa 5 x1 14 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Combinazione conica di DV Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 x2 ≤ 4 e 4 x1 + x2 ≤ 17 sono DV. Sommando si ottiene che 2 4 x1 + 2 x2 ≤ 21 `e una DV. 1 Dividendo per 2 e arrotondando: 2 x1 + x2 ≤ 10 `e una DV. L. Galli Corso di Ricerca Operativa 2 0 - 1 2 Laurea Magistrale in Ingegneria Gestionale 3 4 Universit` a di Pisa 5 x1 14 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Combinazione conica di DV Esempio max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 x2 4 3 x2 ≤ 4 e 4 x1 + x2 ≤ 17 sono DV. Sommando si ottiene che 2 4 x1 + 2 x2 ≤ 21 `e una DV. 1 Dividendo per 2 e arrotondando: 2 x1 + x2 ≤ 10 `e una DV. L. Galli Corso di Ricerca Operativa 2 0 - 1 2 Laurea Magistrale in Ingegneria Gestionale 3 4 Universit` a di Pisa 5 x1 14 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Piani di taglio Definizione Sia x¯ l’ottimo del rilassamento continuo. Un piano di taglio `e una disuguaglianza valida p T x ≤ p0 per Ω tale che p T x¯ > p0 . Idea alla base del metodo dei piani di taglio: se P `e un poliedro contenente Ω e la soluzione ottima xˆ di max c T x appartiene ad x∈P Ω, allora xˆ `e ottima anche per max c T x; x∈Ω altrimenti si costruisce un piano di taglio p T x ≤ p0 in modo da ’tagliare fuori’ xˆ e poi risolvere il nuovo problema di PL: max c T x x∈P T p x ≤ p0 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 15 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Piani di taglio di Gomory Supponiamo che il problema di PLI sia nella forma max c T x Ax = b x ≥0 x ∈ Zn (P) e che B sia una base ottima del rilassamento continuo di (P). Poniamo: xB e = A−1 AN e A b = x¯B A = (AB AN ) x= B xN La parte frazionaria di un numero reale z `e {z} := z − ⌊z⌋ Teorema Se esiste r ∈ B tale che e br ∈ / Z, allora X {e arj }xj ≥ {e br } j∈N `e un piano di taglio (di Gomory) per il problema (P). L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 16 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Piani di taglio di Gomory Dimostrazione Fissiamo x ∈ Ω. Allora A x = AB xB + AN xN = b, quindi −1 e e xB = A−1 B b − AB AN xN = b − A xN . Definiamo il vettore e x = xB . Quindi: P e e xr = e br − arj xj j∈N = ⌊e br ⌋ + { e br } − P (⌊e arj ⌋ + {e arj }) xj P P = ⌊e br ⌋ + { e {e arj }xj , ⌊e arj ⌋xj − br } − j∈N j∈N j∈N di conseguenza L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 17 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Piani di taglio di Gomory Dimostrazione (segue) X X {e arj }xj − {e br } = ⌊e br ⌋ − ⌊e arj ⌋xj − e xr ∈ Z. j∈N Inoltre si ha: (1) j∈N X j∈N {e arj }xj − {e br } ≥ −{e br } > −1. (2) Dalle relazioni (1) e (2), otteniamo che: X {e arj }xj ≥ {e br }. (3) j∈N quindi la (3) `e una DV per Ω. Inoltre la (3) non `e soddisfatta da x¯, infatti: X 0= {e arj }¯ xj < {e br }, j∈N quindi la (3) `e un piano di taglio. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 18 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Piani di taglio di Gomory Esempio Consideriamo di nuovo il problema max x1 + 3 x2 x1 + 5 x2 ≤ 21 8 x1 + 2 x2 ≤ 35 x ≥0 x ∈ Z2 Trasformiamo i vincoli di ≤ in vincoli di = aggiungendo variabili di scarto x3 , x4 : max x1 + 3 x2 x1 + 5 x2 + x3 = 21 8 x1 + 2 x2 + x4 = 35 x ≥0 x ∈ Z4 . 1 5 1 0 21 A= , b= , cT = 1 3 0 0 . 8 2 0 1 35 L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 19 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Piani di taglio di Gomory Esempio La soluzione ottima del rilassamento continuo `e x¯ = 7 7 , , 0, 0 . 2 2 Quindi la base ottima `e B = {1, 2}, 1 1 5 5 − − 19 38 38 1 5 e = 19 , . AB = AB−1 = A 8 2 1 1 4 4 − − 19 38 19 38 7 7 ha entrambe le componenti non intere, esistono due tagli di Poich´e e b= , 2 2 Gomory. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 20 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Piani di taglio di Gomory Esempio Se r = 1, allora il piano di taglio di Gomory `e 5 7 1 x3 + x4 ≥ , − 19 38 2 cio`e 18 5 1 x3 + x4 ≥ , 19 38 2 ossia 36x3 + 5x4 ≥ 19, che nelle variabili (x1 , x2 ) equivale a 36(21 − x1 − 5x2 ) + 5(35 − 8x1 − 2x2 ) ≥ 19 cio`e 2x1 + 5x2 ≤ 24. Analogamente per r = 2 si ottiene il piano di taglio 8x1 + 3x2 ≤ 38. L. Galli Corso di Ricerca Operativa 2 - Laurea Magistrale in Ingegneria Gestionale Universit` a di Pisa 21 / 22 Relazioni tra PLI e PL Disuguaglianze valide Piani di taglio Piani di taglio di Gomory Esempio x2 r =2 4 x¯ 3 r =1 2 1 0 L. Galli 1 Corso di Ricerca Operativa 2 2 - 3 4 5 Laurea Magistrale in Ingegneria Gestionale x1 Universit` a di Pisa 22 / 22
© Copyright 2024 Paperzz