1. Fejezet

LINEÁRIS ALGEBRA ÉS LINEÁRIS EGYENLETRENDSZEREK

1.1 VEKTORTÉR, ALTÉR, LINEÁRIS FÜGGETLENSÉG

Az alábbiakban áttekintjük a V Euklideszi vektortér néhány alaptulajdonságát. Az alaptest mindig a valós (R) vagy a racionális (Q) számok teste. Amikor Euklideszi vektortérről beszélünk, a valós szám n-esek R^{n} terére (vagy a racionális szám n-esek Q^{n} terére) gondolunk. (Lineáris algebrában bebizonyítják, hogy bármely két n dimenziós Euklideszi vektortér egymással izomorf.) Mindig az R-t használjuk alaptestként, de valamennyi állítás érvényes a Q esetén is. Remélhetőleg nem okoz majd zavart, hogy jelölésben nem teszünk különbséget a 0 szám és a vektortér nulleleme között. A vektortér elemeit néha vektoroknak, néha pontoknak tekintjük.

Legyen x és y két azonos dimenziós vektor. Azt mondjuk, hogy x ≥ y, ha x minden komponense nagyobb vagy egyenlő y megfelelő komponensénél. Amennyiben x ≤ y és x ≠ y, úgy az x < y jelölést használjuk. Amikor x minden komponense szigorúan kisebb az y megfelelő komponensénél, az x ≪ y jelölést használjuk.

Adott x_{1}, …, x_{k} vektorok és λ_{1}, …, λ_{k} számok esetén a b := λ_{1}x_{1} + … + λ_{k}x_{k} vektort az x_{1}, …, x_{k} vektorok egy lineáris kombinációjának nevezzük. Ha a λ_{i} számok összege 1, affin kombinációról beszélünk, ha valamennyi λ_{i} nem-negatív, úgy nem-negatív kombinációról van szó. Egy nem-negatív, affin kombinációt konvex kombinációnak mondunk. Amennyiben a b ≠ 0 elem előáll az x_{1}, …, x_{k} elemek lineáris kombinációjaként, úgy azt mondjuk, hogy b lineárisan függ az x_{1}, …, x_{k} elemektől. Ha b-nek nincs ilyen előállítása, akkor b lineárisan független az x_{1}, …, x_{k} elemektől. A lineáris kombináció triviális, ha mindegyik λ_{i} együttható 0. Ha legalább az egyikük nem-nulla, nem-triviális lineáris kombinációról beszélünk. Azt mondjuk, hogy az x_{1}, …, x_{k} vektorok lineárisan összefüggnek, ha a vektortér nulleleme előáll nemtriviális lineáris kombinációjukként. Ha nincs ilyen előállítás, úgy az x_{1}, …, x_{k} vektorokat lineárisan függetleneknek mondjuk. Az x_{1}, …, x_{k} vektorok kört alkotnak, ha lineárisan összefüggnek, de bármely valódi részük már lineárisan független. (Az elnevezés a gráfelmélet kör-fogalmából jön és nincs köze a geometria kör-fogalmához.) Könnyű ellenőrizni, hogy egy kör bármely eleme lineárisan függ a kör többi elemétől. (Ha csak azt tesszük fel, hogy az x_{1}, …, x_{k} elemek lineárisan összefüggnek, akkor nem feltétlenül igaz az, hogy mindegyik x_{i} elem lineárisan függ a többitől. Például, az (1, 0), (2, 0), (0, 1) kétdimenziós vektorok lineárisan összefüggnek, de a (0,1) vektor nem állítható elő az (1, 0) és (2, 0) vektorok lineáris kombinációjaként.)

Egy (a_{1}, a_{2}, …, a_{n}) egymás mellé leírt szám n-est sorvektornak tekintünk, míg ha ezeket az elemeket egymás alá írjuk, oszlopvektorról beszélünk. Ha a sor-vektor, akkor a^{t} az a transzponáltja, azaz az a-nak megfelelő oszlopvektor.

Legyen X és Y két vektor-halmaz R^{n}-ben. Ekkor a vektor-összegükön vagy Minkowski összegükön (röviden, összegükön) az X + Y := {x + y : x ∈ X, y ∈ Y } halmazt értjük. A különbségük analóg módon definiálható.

A V vektortér A altere egy olyan nemüres részhalmaza V -nek, amelyre fennáll, hogy

1. x ∈ A ⇒ λx ∈ A minden λ ∈ R számra,

2. x, y ∈ A ⇒ x + y ∈ A.

Nyilván az egyetlen nulla elemből álló halmaz altér, az ún. triviális altér. Maga az egész V is altér. A definícióból következik, hogy a vektortér 0 eleme minden altérben benne van. Továbbá az altér véges sok elemének bármilyen lineáris kombinációja is az altérben van. Érvényes, hogy alterek metszete is altér.

Könnyen ellenőrizhető, hogy két altér összege is altér, éspedig a mindkettőt magában foglaló legszűkebb altér. Egy altér dimenziója az altérből kiválasztható lineárisan független elemek maximális száma. Speciálisan a triviális altér dimenziója 0.

Két n-dimenziós a = (a_{1}, …, a_{n}), b = (b_{1}, …, b_{n}) vektor skalárszorzata az ab := a_{1}b_{1} + … + a_{n}b_{n} szám. Természetesen ab = ba. Azt mondjuk, hogy a és b ortogonális, ha skalárszorzatuk 0. Az A, B ⊆ V halmazokról azt mondjuk, hogy egymásra ortogonálisak (vagy merőlegesek), ha A mindegyik eleme ortogonális B mindegyik elemére. (Ebben az értelemben tehát a háromdimenziós tér egy vízszintes és egy függőleges síkja nem ortogonális egymásra!) Könnyen látszik, hogy ha egy y vektor ortogonális az x_{1}, …, x_{k} vektorok mindegyikére, akkor ortogonális ezek bármely lineáris kombinációjára is.

A definícióból rögtön adódik, hogy ha x_{1}, …, x_{k} a V vektortér véges sok eleme, akkor a lineáris kombinációjukként előálló elemek halmaza alteret alkot, amit az x_{1}, …, x_{k} elemek által generált altérnek nevezünk. Ez nem más, mint az X := {x_{1}, …, x_{k}} halmazt tartalmazó alterek metszete, vagyis a legszűkebb X-t magában foglaló altér.

Altereket más módon is előállíthatunk. Legyen a ∈ R^{n} nem-nulla vektor. Az a-ra ortogonális elemek {x ∈ R^{n} : ax = 0} halmazát, másszóval az ax = 0 lineáris egyenlet megoldás-halmazát origón átmenő vagy homogén hipersíknak nevezzük, melynek (egyik) normálisa vagy normál vektora a. Amennyiben a az i-dik egységvektor, úgy az a-ra merőleges vektorok halmazát koordináta-hipersíknak hívjuk. Ez tehát mindazon vektorokból áll, amelyek i-dik koordinátája 0. Könnyen látszik, hogy egy homogén hipersík alteret alkot. Ebből adódik, hogy homogén hipersíkok metszete is altér. Másszóval, adott x_{1}, …, x_{k} vektorok mindegyikére ortogonális vektorok halmaza alteret alkot, melyet az x_{1}, …, x_{k} ortogonális kiegészítő alterének, más néven nullterének nevezünk. Ha az x_{i} vektorok mindegyike valamelyik (0, 0, …, 1, …, 0) alakú egységvektor, úgy ezek ortogonális kiegészítő alterét koordináta-altérnek hívjuk. Ez tehát koordináta-hipersíkok metszete, vagyis mindazon vektorok halmaza, amelyeknek k előre adott komponense 0. Egy x pontnak az x_{j} koordináta (vagy tengely) menti vetületét úgy kapjuk, hogy x j-dik komponensét 0-re állítjuk. Valójában ez a belső vetület, megkülönböztetendő a külső vetülettől, amelyet úgy kapunk, hogy az x vektor j-dik komponensét eltöröljük. (A tengelymenti belső vetítés tehát a vektorteret egy alterére képezi le, míg a külső vetítés egy másik vektortérre).

Legyenek U és V vektorterek. Azt mondjuk, hogy a φ : U → V leképezés lineáris transzformáció (vagy leképezés), ha

1. x ∈ U, λ ∈ R esetén φ(λx) = λφ(x) és

2. x, y ∈ U esetén φ(x + y) = φ(x) + φ(y).

Könnyen ellenőrizhető, hogy az U azon elemeinek halmaza, amelyek a V nulla elemébe képződnek le, az Unak alterét alkotják, amely alteret a φ leképezés magterének neveznek. Hasonlóképpen egyszerű azt belátni, hogy V azon elemei, amelyek valamely U-beli elem képeként állnak elő (azaz a {φ(u) : u ∈ U} halmaz elemei), a V -nek alterét alkotják, amely alteret a φ leképezés képterének neveznek.

Mese. Egy x = (x_{1}, …, x_{n}) szám n-esen néha az R^{n} (x_{1}, …, x_{n}) koordinátájú pontját értjük, néha az origóból az x pontba mutató vektort. Az affin függetlenség a pontok függetlenségét akarja megragadni, a lineáris függetlenség a vektorok függetlenségét. (Két pont éppen akkor affin független, ha különbözőek, három különböző pont affin függetlensége azzal ekvivalens, hogy nincsenek egy egyenesen.) Pontok egy k elemű halmaza pontosan akkor affin független, ha az egyikből a többibe mutató k − 1 vektor lineárisan független. Ez azzal ekvivalens, hogy az eggyel magasabb dimenziós, az új koordinátában egy 1-essel kiegészített vektorok lineárisan függetlenek.

1.2 MÁTRIXOK, EGYENLETRENDSZEREK MEGOLD-HATÓSÁGA

Legyen A m×n-es mátrix, azaz A-nak m sora és n oszlopa van. A mátrix i-dik oszlopát a_{i}-vel jelöljük, a j-dik sorát pedig _{j}a-val. Az A sorterén az R^{n}-nek az A sorai által generált alterét értjük, amelynek jele S(A) vagy R^{m}A. A sortér tehát az {y^{t}A : y ∈ R^{m}} halmaz. Az A mátrix nulltere az A sorainak ortogonális kiegészítő altere, melynek jele N (A). A nulltér tehát az Ax = 0 egyenletrendszer {x ∈ R^{n} : Ax = 0} megoldás-halmaza. Az A oszlopai által generált altér az A oszloptere, jelölésben O(A) vagy AR^{n}, míg az oszlopainak merőleges altere a mátrix bal nulltere. Ennek jele BN (A).

Mostantól fogva azzal a jelölési egyszerűsítéssel élünk, hogy nem különböztetjük meg az oszlop és sor vektorokat. Ennek megfelelően, ha az Az szorzatot tekintjük, akkor a z-t oszlopvektornak képzeljük, míg az yA szorzat esetén az y-t sorvektornak. Hasonlóképp, két vektor skalárszorzata esetén sem tesszük ki a transzponálási jelet, vagyis az a és b n-dimenziós vektorok skalárszorzatát ab-vel vagy ba-val jelöljük. (Ez az egyszerűsítési megállapodás zavart okozhatna, ha az a vektort n × 1-es mátrixként, a b vektort pedig 1 × n-es mátrixként tekintenénk, mert akkor az ab mátrix szorzat egy n × n-es mátrixot jelöl. Szerencsére az a, b vektorok ilyen típusú szorzatára az alábbiakban nem lesz szükségünk, így az említett zavar sem fordulhat elő.)

Valamely n-dimenziós z vektor esetén az Az vektor tekinthető úgy, mint az A oszlopainak egy lineáris kombinációja, ahol az i-dik oszlop együtthatója a z i-dik komponense. Hasonlóképp, egy m-dimenziós y vektorra az yA tekinthető, mint az A sorainak egy lineáris kombinációja.

Futólag már említettük, hogy ha egy z ∈ R^{n} vektor ortogonális az A soraira, vagyis ha Az = 0, akkor z ortogonális az A sorainak bármely yA lineáris kombinációjára is, azaz (yA)z = 0. Valóban, (yA)z = y(Az) = y0 = 0.

Lemma 1.1 Ha a z ∈ R^{n} nem-nulla vektor ortogonális az A mindegyik sorára (azaz benne van A nullterében, vagyis Az = 0), akkor z lineárisan független az A soraitól, (azaz z nincs benne az A sorterében).

Biz. Tegyük fel indirekt, hogy z előáll az A sorainak lineáris kombinációjaként, azaz z = yA valamely y ∈ R^{m}-re. Ekkor 0 < zz = (yA)z = y(Az) = 0, ami ellentmondás. •

Megjegyzendő, hogy a lemmában lényeges feltétel, hogy a valós vagy a racionális test felett vagyunk (legalábbis annyiban, hogy rendezett test felett). A GF(2) (vagyis a kételemű) test felett például az (1, 1) vektor ortogonális saját magára.

Figyeljük meg, hogy a sortér és a nulltér az R^{n} egymásra merőleges alterei. (Ugyanis, ha egy vektor merőleges a mátrix soraira, akkor merőleges a sorokból készült lineáris kombinációkra is, vagyis a sortér minden elemére). Az 1.1 lemma alapján a sortérnek és a nulltérnek a közös része az egy szem nulla vektorból áll. Analóg módon az oszloptér és a bal nulltér az R^{m}-nek egymásra merőleges alterei, melyek metszete a triviális altér.

Az A mátrix segítségével megadható egy φ_{A} : R^{n} → R^{m} leképezés a φ_{A}(z) := Az képzési szabállyal. Könnyen látszik, hogy φ_{A} lineáris transzformáció, amelynek képtere az A oszloptere, míg magtere az A nulltere. Hasonlóképp bevezethetünk egy _{A}φ : R^{m} → R^{n} lineáris transzformációt a _{A}φ(y) := yA képzési szabállyal. Ennek képtere az A sortere, míg magtere az A bal nulltere.

Az a kérdés, hogy az Az = 0 (homogén lineáris) egyenletrendszernek van-e nem-triviális megoldása azzal ekvivalens, hogy az A oszlopai lineárisan összefüggőek-e vagy sem. Egy másik interpretáció szerint az Az = 0 azt jelenti, hogy z ortogonális az A soraira, vagyis az Az = 0 nem-triviális megoldhatóságának kérdése azzal ekvivalens, hogy az A nulltere (azaz a φ_{A} leképezés magtere) nem-triviális-e.

TÉTEL 1.2 Legyen A m × n-es mátrix, ahol 1 ≤ m < n. Ekkor az Az = 0 homogén lineáris egyenletrendszernek létezik nem-triviális megoldása. (Másszóval m-nél több m-dimenziós vektor mindig lineárisan összefüggő. Még másképp, A nulltere nem-triviális.)

Biz. m szerinti indukciót használunk. Amennyiben m = 1, a tétel triviális. Legyen tehát m > 1 és tételezzük fel, hogy a tétel érvényes minden olyan mátrixra, amelynek m-nél kevesebb sora van.

A tétel állítása triviális, ha A-nak van egy csupa 0-ból álló oszlopa, így feltesszük, hogy nem ez a helyzet. Figyeljük meg, hogy ha az A egyik sorát helyettesítjük a sor λ-szorosával valamilyen λ ≠ 0 számra, akkor a mátrix nulltere, vagyis az Az = 0 rendszer megoldásainak halmaza változatlan marad. Hasonló kijelentés érvényes, ha a mátrix egyik sorát hozzáadjuk egy másik sorához, vagy ha két sort felcserélünk. Ezen műveletek ismételt alkalmazásával egy olyan A_{1} mátrix nyerhető, amelynek nulltere ugyanaz, mint az A mátrixé, és amelynek első oszlopa az (1, 0, 0, …, 0)^{t} m-dimenziós egység-vektor. Legyen A′ az a mátrix, amely az A_{1}-ből keletkezik az első sor és az első oszlop eltörlésével. Az A′-re az indukciós feltevés szerint érvényes a tétel, azaz létezik egy (n − 1)-dimenziós z′ nem-nulla vektor, amelyre A′z′ = 0.

Jelölje a′ azt a vektort, amely az A_{1} első sorából keletkezik az első (1-es) komponens eltörlésével és legyen α = −a′z′. Ekkor a z := (α, z′) vektor nem-nulla vektor, amelyre A_{1}z = 0, tehát Az = A_{1}z miatt Az = 0. •

Megjegyzendő, hogy a fenti bizonyítás könnyen algoritmussá alakítható az Az = 0 egy nem-triviális megoldásának megkeresésére. Ez a Gauss-elimináció speciális esete homogén lineáris egyenletrendszer egy nemtriviális megoldásának megtalálására.

Következmény 1.3 Ha egy mátrix oszlopai is és sorai is lineárisan függetlenek, akkor a mátrix négyzetes.

Biz. Valóban, ha például több oszlop volna, mint sor, akkor az 1.2 tétel szerint az oszlopok lineárisan összefüggnének. •

Következmény 1.4 Ha az A′ mátrixból lineárisan függetlenül kiválasztható sorok maximális száma kisebb, mint az oszlopok száma, akkor az A′z = 0 rendszernek van nem-triviális megoldása.

Biz. Válasszunk ki maximálisan sok lineárisan független sort és jelölje a mátrixukat A. Az 1.2 tétel szerint Az = 0-nak van nem-triviális megoldása. Ez az eredeti A′z = 0-nak is megoldása, hiszen A′ minden sora lineárisan függ A soraitól. • Lemma 1.5 Tegyük fel, hogy az A mátrixban az első r oszlop lineárisan független és a többi oszlop lineárisan függ ezektől. Hasonlóképp legyen az első s sor lineárisan független és a többi sor lineárisan függjön ezektől. Ekkor az első r oszlop és az első s sor által meghatározott A_{1} részmátrix oszlopai is és sorai is lineárisan függetlenek.

Biz. Szimmetria miatt elég kimutatni, hogy az A_{1} oszlopai lineárisan függetlenek. Töröljük el az a_{r+1}, …, a_{n} oszlopokat. Továbbra is érvényes, hogy mindegyik sorvektor lineárisan függ az első s sortól. Így ha egy vektor ortogonális az első s sorra, akkor ortogonális a többi sorra is, vagyis ha az A_{1} oszlopai lineárisan összefüggnének, akkor az A mátrix első r oszlopa is lineárisan összefüggne, ellentmondásban a feltevéssel. •

Az 1.3 következmény és az 1.5 lemma kombinációjából kapjuk a következőt.

TÉTEL 1.6 Egy A mátrix lineárisan független oszlopainak maximális száma egyenlő a lineárisan független sorok maximális számával.

Ezt a közös maximális számot r(A)-val jelöljük és a mátrix rangjának nevezzük.

Ezen meggondolásokból még egy fontos tulajdonság kiolvasható. Tegyük fel, hogy a mátrixból egymás után választunk sorokat, csak arra ügyelve, hogy a kiválasztott sorok lineárisan függetlenek legyenek. Ezt egészen addig tesszük, amíg már több sor nem választható ki, azaz amikor már a nem kiválasztott sorok mindegyike lineárisan függ a kiválasztott soroktól. Ekkor, függetlenül a közbenső választási döntéseinktől, a kiválasztott lineárisan független sorok száma mindig ugyanaz lesz, nevezetesen az A mátrix rangja. (Másszóval a mohó algoritmus mindig maximális sok lineárisan független sort fog megtalálni.) Ennek igazolásához tegyük fel, hogy az algoritmus mondjuk az első s sort választotta ki és legyen indirekt s < r := r(A). Feltehetjük, hogy az A első r oszlopa lineárisan független. De ekkor ellentmondásban vagyunk az 1.5 lemmával. Ebből az is következik, hogy az A sorterének a dimenziója egyenlő a mátrix rangjával (ami egyenlő a mátrix oszlopterének dimenziójával.)

Következmény 1.7 Egy mátrix rangja nem változik, ha hozzáveszünk egy új oszlopot, amely lineárisan függ az oszlopoktól, vagy ha elhagyunk egy meglévő oszlopot, amely lineárisan függ a többi oszloptól. Analóg állítás érvényes sorokra. •

TÉTEL 1.8 Ha egy m × n-es A mátrix sorai lineárisan függetlenek (azaz r(A) = m), akkor tetszőleges ndimenziós b vektorra az Ax = b egyenletrendszernek létezik megoldása (ami b ≠ 0 esetben azzal ekvivalens, hogy b lineárisan függ az A oszlopaitól.) Ha m = n, akkor a megoldás egyértelmű.

Biz. Ha b = 0, akkor x = 0 megoldás, így feltesszük, hogy b ≠ 0. Az 1.6 tétel miatt A-nak van m lineárisan független oszlopa. Tegyük fel, hogy az első m oszlop lineárisan független. Láttuk, hogy m-nél több m dimenziós vektor lineárisan összefüggő, így az a_{1}, …, a_{m}, b vektorok lineárisan összefüggőek. Egy ilyen nem-triviális lineáris összefüggésben a b együtthatója nem lehet 0, mert ez azt jelentené, hogy az a_{1}, …, a_{m} vektorok lineárisan összefüggőek, ellentétben a feltevéssel. Ha viszont a b együtthatója nem nulla, akkor b kifejezhető az a_{i} vektorok lineáris kombinációjaként.

Az m = n esetben az egyértelműség bizonyításához tegyük indirekt fel, hogy létezik két megoldás is. Ekkor ezek z különbsége nem-nulla és Az = 0, vagyis az A oszlopai lineárisan összefüggőek, de ekkor a sorai is, ellentétben a feltevéssel. •

Egy négyzetes mátrixot szingulárisnak neveznek, ha sorai (illetve ezzel ekvivalensen, oszlopai) lineárisan összefüggnek.

Az 1.8 tétel általánosításához tegyük ismét fel, hogy az A mátrixnak m sora és n oszlopa van (lehet m = n), de a sorok lineáris függetlenségét nem tételezzük fel.

TÉTEL 1.9 A következők ekvivalensek. (A) Az Ax = b egyenletrendszernek létezik megoldása. (B) r(A) = r([A, b]), (ahol [A, b] az a mátrix, amely A-ból áll elő a b oszlop hozzávételével). (C) Nem létezik olyan y, amelyre yA = 0, yb ≠ 0.

Biz. (B)→(A). Tekintsünk A-nak r(A) lineárisan független oszlopát. r(A) = r([A, b]) azt jelenti, hogy b lineárisan függ ezektől, tehát függ az A oszlopaitól, vagyis (A) fennáll.

(A)→(C). Ha létezik olyan x és y, amelyekre Ax = b és yA = 0, akkor 0 = (yA)x = y(Ax) = yb.

(C)→(B). Tegyük fel indirekt, hogy r(A) < r([A, b]). Válasszunk ki [A, b]-nek r(A) + 1 lineárisan független sorát és legyen [A_{1}, b_{1}] az általuk alkotott részmátrix. A_{1} sorai már lineárisan összefüggnek, hiszen A-nak nincsen r(A) + 1 darab lineárisan független sora. De ekkor létezik olyan y_{1} ≠ 0 vektor, amelyre y_{1}A_{1} = 0. [A_{1}, b_{1}] sorainak lineáris függetlensége miatt y_{1}[A_{1}, b_{1}] ≠ 0, azaz y_{1}b_{1} ≠ 0. Egészítsük ki y_{1}-t 0 komponensekkel egy y m-dimenziós vektorrá. Erre yA = 0, yb ≠ 0, ellentmondásban (C)-vel. •

Az 1.9 tételben az (A)-beli problémát primál problémának nevezzük. Ez tehát azt kérdezi, hogy a b oszlopvektor benne van-e az A oszlopainak alterében. A (C)-beli problémát duál (vagy duális) problémának hívjuk. Ez azt kérdezi, hogy létezik-e olyan y vektor, amely A valamennyi oszlopára merőleges, ugyanakkor bre nem, másszóval, hogy létezik-e olyan homogén hipersík (melynek normálisa y), amely tartalmazza A minden oszlopát, de b-t nem. Fontossága miatt megismételjük az 1.9 tételből az (A) és (C) feltételek ekvivalenciáját és direkt bizonyítást adunk rá.

TÉTEL 1.10 (Fredholm féle alternatíva tétel) Az Ax = b rendszernek akkor és csak akkor van megoldása, ha nem létezik olyan y, amelyre yA = 0, yb ≠ 0. Ekvivalensen, egy [ b ] vektor vagy benne van egy altérben [melyet az A oszlopai generálnak], vagy elválasztható tőle [egy y normálisú] homogén hipersíkkal abban az értelemben, hogy a hipersík az alteret tartalmazza, de a vektort nem.

Biz. Egyszerre nem létezhet a szóbanforgó x és y, mert akkor 0 = (yA)x = y(Ax) = yb ≠ 0.

Annak igazolására, hogy a primál és a duál probléma egyike biztosan megoldható az A sorainak m száma szerint indukciót használunk. Az m = 1 eset könnyű gyakorlat. Szintén egyszerűn látszik a tétel, ha A azonosan nulla.

Tegyük most fel, hogy A-nak van nemnulla eleme, hogy m ≥ 2, és hogy kevesebb sorú márixokra a tétel igaz. Sor- és oszlopcserékkel elérhetjük, hogy a_{11} ≠ 0. Könnyű ellenőrizni, hogy az egyenletrendszer egy sorát nemnulla számmal szorozva a primál megoldás-halmaz nem változik. A duál megoldás-halmaz ilyenkor változhat ugyan, de a duál probléma megoldhatósága nem (tehát az eredeti duál akkor és csak akkor oldható meg, ha a módosított). Ugyanez a két kijelentés érvényes, ha az egyik egyenletet hozzáadjuk egy másikhoz. Ezek alapján feltehetjük, hogy a_{1,1} = 1 és az első oszlop többi eleme 0. Tekintsük az első sor törlésével keletkező A′x′ = b′ rendszert. Indukcióból kapjuk, hogy vagy ez, vagy pedig a duális {y′A′ = 0, y′b′ ≠ 0} rendszer megoldható. Amennyiben létezik x′, úgy ennek első komponensét szabadon változtathatjuk, hiszen A′ első oszlopa nulla. Emiatt ezt a komponenst olyannak tudjuk választatni, hogy az Ax = b rendszerből kihagyott első egyenlet is teljesüljön. Tehát ha a redukált primál megoldható, akkor az eredeti is. Ha viszont a redukált duálisnak létezik egy (m − 1) dimenziós y′ megoldása, akkor az y := (0, y′) az eredeti duálisnak megoldása. •

Megjegyzések Az alternatíva tételt a szemléletes megfogalmazás alapján hívhatjuk szeparációs tételnek is. Később látni fogjuk, hogy jóval általánosabb szeparációs tételek is léteznek. Algebrai tételek ilyen jellegű geometriai szemléltetése sokszor hozzájárul magának a tételnek a megsejtéséhez, megkönnyíti a tétel megértését, és segíti a megjegyzést is. Ugyanakkor a három-dimenziós geometriai tartalom kézenfekvősége önmagában egyáltalán nem jelenti azt, hogy az általános tétel triviális lenne, vagy hogy egyáltalán igaz! Lásd még a 2.1.1 részbeli megjegyzéseket.

Feladat 1.1 Igazoljuk, hogy r(Y · A) ≤ r(A)!

Feladat 1.2 Igaz-e, hogy az Ax = 0 egyenletrendszernek akkor és csak akkor létezik semelyik koordinátájában sem nulla megoldása, ha A minden oszlopa lineárisan függ a többitől?

1.3 EGYENLETRENDSZER MEGOLDÁS-HALMAZA, AF-FIN ALTEREK

Miután áttekintettük a lineáris egyenletrendszerek megoldhatóságának kérdését, vizsgáljuk meg, hogy miként lehet leírni a megoldások halmazát.

TÉTEL 1.11 Egy A n × n-es nem-szinguláris négyzetes mátrix első m sora által alkotott részmátrixot jelölje A_{1}, míg a maradékot A_{2}. Tegyük fel, hogy az A_{1} minden sora ortogonális A_{2} minden sorára. Ekkor A_{1} sortere éppen az A_{2} nulltere és A_{1} nulltere éppen az A_{2} sortere.

Biz. Mivel az állítás második fele az elsőből következik az A_{1} és A_{2} szerepének felcserélésével, csupán az első rész bizonyítására szorítkozunk. A feltevés szerint A_{1} minden sora ortogonális A_{2} minden sorára, így A_{1} sorainak lineáris kombinációja is ortogonális az A_{2} soraira, azaz A_{1} sortere része A_{2} nullterének. A fordított irányú tartalmazás igazolásához legyen z ∈ N (A_{2}), azaz A_{2}z = 0. Mivel A nem-szinguláris, az 1.8 tétel alapján létezik y = (y_{1}, y_{2}), amelyre yA = z.

Most tehát yA = z ortogonális A_{2} soraira, és y_{1}A_{1} is ortogonális A_{2} soraira, ezért y_{2}A_{2} = yA − y_{1}A_{1} is ortogonális A_{2} soraira. Az 1.1 lemma alapján az A_{2} sorainak egy nemnulla lineáris kombinációja nem lehet ortogonális A_{2} minden sorára, így y_{2}A_{2} szükségképpen 0, azaz z = y_{1}A_{1}, vagyis z benne van A_{1} sorterében. •

TÉTEL 1.12 Legyen A_{1} olyan m×n-es mátrix (m < n), amelynek sorai lineárisan függetlenek. Ekkor létezik olyan (n − m) × n méretű A_{2} mátrix, amelynek sorai ortogonálisak az A_{1} soraira és amely az A_{1}-gyel együtt egy n × n-es nem-szinguláris mátrixot alkot. Az A_{1} sortere az A_{2} nulltere, és A_{1} nulltere az A_{2} sortere.

Biz. Az 1.2 tétel szerint van olyan z_{1} ∈ R^{n} nemnulla vektor, amely ortogonális az A_{1} soraira (magyarul az A_{1}z = 0 rendszernek van nem-triviális megoldása.) Természetesen ekkor z_{1} lineárisan független A_{1} soraitól. Egészítsük ki az A_{1} mátrixot a z_{1} sorvektorral. Miután z_{1} lineárisan független az A_{1} soraitól, a megnövelt A′_{1} mátrix sorai is lineárisan függetlenek. Amennyiben A′_{1}-nek még mindig kevesebb, mint n sora van, az 1.2 tétel alapján ismét létezik egy olyan z_{2} vektort, amely ortogonális az A′_{1} soraira.

Ezt az eljárást (n − m)-szer alkalmazva olyan z_{1}, …, z_{n−m} vektorokat kapunk, melyek mindegyike ortogonális az A_{1} valamennyi sorára valamint egymásra is, továbbá a végül kapott n × n-es mátrix sorai lineárisan függetlenek. Ezen konstrukció alapján z_{i} (i = 1, …, n − m) sorvektorokból álló A_{2} mátrix teljesíti a tétel kívánalmait. •

Feladat 1.3 Tegyük fel, hogy az 1.12 tételbeli A_{1} mátrix (I_{m}, B) alakú, ahol I_{m} az m × m-es egységmátrixot jelöli, míg B tetszőleges m × (n − m)-es mátrix. Igazoljuk, hogy az A_{2} := [B^{T} , −I_{n−m}] kielégíti a tétel kívánságait, azaz A_{2} sortere az A_{1} sorterének ortogonális kiegészítője.

A két tétel összevetéséből adódik, hogy az A_{1}x = 0 homogén lineáris egyenletrendszer megoldás-halmaza pontosan a z_{1}, z_{2}, …, z_{n−m} vektorok lineáris kombinációinak halmaza. Az is következik, hogy az n-dimenziós tér tetszőleges Q m-dimenziós alterének létezik egy egyértelműen meghatározott Q^{⊥} n − m-dimenziós ortogonális kiegészítő altere. R^{n} minden eleme egyértelműen áll elő egy Q és egy Q^{∗}-beli elem összegeként.

Következmény 1.13 Minden generált altér előáll nulltérként és minden nulltér előáll generált altérként. Egy Ax = 0 homogén egyenletrendszer megoldás-halmaza előáll véges sok vektor lineáris kombinációinak halmazaként, azaz {yB : y ∈ R^{n}} alakban, (ahol n az A és a B oszlopainak száma). Véges sok vektor lineáris kombinációinak halmaza előáll mint egy homogén egyenletrendszer megoldás-halmaza.

Az 1.2 tételből következően az R^{n} térben legfeljebb csak n vektor választható ki lineárisan függetlenül. Miután az n egységvektor lineárisan független, az R^{n} dimenziója n. Az is következik, hogy tetszőleges A altér véges sok elem generált altereként áll elő: válasszunk ki maximálisan sok lineárisan független elemét A-nak (ezek száma legfeljebb n), minden elem ezektől lineárisan függ, azaz A a kiválasztott elemek által generált altér.

Az 1.11 és 1.12 tételekből látjuk, hogy minden altér nemcsak generált altérként áll elő, hanem nulltérként is. (Ez annak a szemléletes geometriai ténynek az általánosítása, hogy a síkban egy origón átmenő egyenest egyrészt meg lehet adni ax + by = 0 alakban, másrészt α(−b, a) ,,paraméteres” alakban.) Az is következik, hogy k darab lineárisan független vektor nullterének rangja n−k. Speciálisan, ha A n−1 rangú mátrix, akkor az Az = 0 megoldás-halmaza egy-dimenziós altér, másnéven egy origón átmenő egyenes, amelynek pontjai valamely a vektorra {λa : λ ∈ R} alakban adhatók meg (ahol a az A soraira merőleges nem-nulla vektor).

Az 1.9 tétel választ ad arra a kérdésre, hogy egy egyenletrendszernek mikor van megoldása. Feltéve, hogy létezik megoldás, mi mondható a megoldás-halmazról?

Affin altéren vagy eltolt altéren (vagy affin halmazon) egy altér eltoltját értjük. Vagyis C affin altér, ha létezik olyan A altér és a vektor, amelyekre C = {x : x = z + a valamilyen z ∈ A vektorra }, vagyis C = A + {a}. Ilyenkor könnyen látható, hogy C bármely c elemére C − {c} = A, vagyis az altér, amelynek eltolásából a C keletkezik, egyértelműen meghatározott. A C affin altér dimenzióján a definiáló A altér dimenzióját értjük.

Gyakorlat 1.4 Igazoljuk, hogy affin alterek (a) nemüres metszete és (b) összege is affin altér!

Véges sok pont affin kombinációinak halmaza affin alteret alkot, ez nem más, mint a véges sok pontot tartalmazó legszűkebb affin altér. Két (különböző) pont affin kombinációinak halmazát a két pont összekötő egyenesének nevezzük, míg a két pont konvex kombinációinak halmaz a két pontot összekötő szakasz. Egy egy-dimenziós affin halmazt egyenesnek nevezünk.

Könnyen látszik, hogy egy C halmaz akkor és csak akkor affin altér, ha van olyan c eleme, amelyre C − {c} altér. A C halmaz akkor és csak akkor affin altér, ha bármely két elemének affin kombinációja C-ben van, ami azzal ekvivalens, hogy bármely véges sok elemének affin kombinációja C-ben van.

TÉTEL 1.14 Tegyük fel, hogy az Ax = b egyenletrendszernek x_{0} megoldása. Ekkor a megoldások M := {x : Ax = b} halmaza az R^{n} tér affin altere, nevezetesen az A nullterének eltoltja. Másként fogalmazva, az Ax = 0 homogén egyenletrendszer egy tetszőleges megoldását x_{0}-hoz adva megoldást kapunk, és M minden tagja így áll elő. Megfordítva, minden affin altér előáll egy lineáris egyenletrendszer megoldás-halmazaként.

(Figyeljük meg, hogy az 1.9 tételben az Ax = b megoldhatóságának az oszlopok terét magában foglaló R^{m} térben volt szemléletes jelentése, a megoldások halmazát viszont a sorteret magában foglaló R^{n} térben szemléltetjük affin altérként.)

Biz. Legyen z ∈ N (A), azaz Az = 0. Ekkor nyilván A(z + x_{0}) = b, vagyis N (A) + {x_{0}} ⊆ M. Legyen most x_{1} ∈ M. Ekkor z := x_{1} − x_{0}-ra fennáll Az = 0, tehát x_{1} előáll mint az x_{0} és az N (A)-beli z elem összege. Ezzel a tétel első felét igazoltuk.

Tekintsünk most egy C affin alteret, amely valamely _{1}a, …,_{m} a vektorok által generált altér x_{0} vektorral történő eltolásával áll elő, vagyis az {yA + x_{0} : y ∈ R^{m}} alakú vektorok halmaza, ahol A jelöli az _{1}a, …,_{m} a sorokból álló mátrixot. Az 1.12 tétel szerint van olyan Z mátrix, amelynek nulltere éppen az A sortere. Legyen b := Zx_{0}. Ekkor C éppen a Zx = b egyenletrendszer megoldás-halmaza. •

Következmény 1.15 Amennyiben az Ax = b egyenletrendszernek x_{0} egy megoldása, úgy a megoldások halmaza előáll mint véges sok vektor lineáris kombinációi halmazának x_{0}-lal történő eltolásával, azaz {yB + x_{0} : y ∈ R^{n}} alakban. •

A következményben megfogalmazott eredményre néha úgy hivatkoznak, hogy egy lineáris egyenletrendszer megoldás-halmaza előállítható paraméteres alakban. Ennek speciális esete az a geometriában tanult eredmény, hogy egy síkot a háromdimenziós térben meg lehet adni egy lineáris egyenletrendszer megoldás-halmazaként is és paraméteres alakban is, azaz αa + βb + c alakban, ahol α, β valós paraméterek, a, b, c pedig vektorok R^{3}-ban.

Következmény 1.16 Amennyiben az Ax = b egyenletrendszernek van megoldása, úgy az M megoldáshalmaz dimenziója n − r(A), ahol n az oszlopok száma.

Biz. Az előbbi tétel szerint M az A nullterének az eltoltja. Álljon A_{1} az A-nak r(A) lineárisan független sorából. Nyilván A-nak és A_{1}-nek ugyanaz a nulltere. Az 1.11 és 1.12 tételek alapján A_{1} nullterének rangja n − r(A_{1}) = n − r(A). •

Gyakorlat 1.5 Tegyük fel, hogy az Ax = b rendszer megoldható. Legyen A′ az A maximálisan sok lineárisan független sorából alkotott részmátrix és b′ a b ennek megfelelő része. Ekkor az A′x = b′ tetszőleges x^{∗} megoldására Ax^{∗} = b-nek.

Feladat 1.6 Tegyük fel, hogy az Ax = b egyenletrendszer megoldható. Azt mondjuk, hogy az ax = β egyenlet logikai következménye Ax = b-nek, ha ennek minden megoldása kielégíti ax = β-t (másszóval, ha az {x : Ax = b} affin altér benne van az {x : ax = β} hipersíkban). Azt mondjuk, hogy ax = β lineáris következménye Ax = b-nek, ha előáll az Ax = b egyenleteinek lineáris kombinációjaként, azaz ha létezik olyan y vektor, amelyre yA = a és yb = β. Igazoljuk, hogy ax = β akkor és csak akkor lineáris következmény, ha logikai.

2004. december 15.file: ulinp10

LINEÁRIS EGYENLŐTLENSÉG-RENDSZEREK

2.1 BEVEZETÉS

Egy olajfeldolgozó üzemben kétféle nyersolaj áll rendelkezésre: Az A típusból 8 millió hordó, a B típusból 5 millió. Ezekből készítenek benzint és gázolajat. Az üzemben három technológiai eljárás közül lehet választani. Az első eljárás bementi-kimeneti arányait az jellemzi, hogy 3 hordó A-kőolajból és 5 hordó B-kőolajból 4 hordó benzint és 3 hordó gázolajat állít elő. A második eljárás 1 hordó A-ból és 1 hordó B-ből készít 1 hordó benzint és 1 hordó gázolajat, míg a harmadik eljárásnál ezek az értékek rendre 5, 3 és 3, 4. Tudván, hogy a benzin hordójáért 4 dollárt, a gázolaj hordójáért 3 dollárt kapunk, a meglévő nyersolaj készletet miképp osszuk fel a három eljárás között, ha célunk az össz-bevétel maximalizálása. (Egyszerűség kedvéért nem vesszük most tekintetbe az eljárások esetleg eltérő üzemi költségeit).

Jelölje x_{i} (i = 1, 2, 3) azt, hogy az egyes eljárásokat milyen mértékben használjuk. x_{1} tehát azt jelenti, hogy az első eljárással 3x_{1} A-olajat és 5x_{1} B-olajat dolgozunk fel, és ennek során 4x_{1} benzint és 3x_{1} gázolajat kapunk. Az x_{i} értékeknek természetesen nemnegatívnak kell lenniük. Az adatok alapján az A-olajból 3x_{1} + x_{2} + 5x_{3} hordót használunk, és így ez az összeg legfeljebb 8 millió. A B-olajra az 5x_{1}+x_{2}+3x_{3} ≤ 5000000 egyenlőtlenség adódik.

Az eljárásokkal benzinből összesen 4x_{1} + x_{2} + 3x_{3} hordó áll elő, melynek értéke 4(4x_{1} + x_{2} + 3x_{3}) dollár. Gázolajból 3x_{1} + x_{2} + 4x_{3} hordót nyerünk, melynek értéke 3(3x_{1} + x_{2} + 4x_{3}). Az összbevételünk tehát 25x_{1} +7x_{2} +24x_{2} dollár. Feladatunk maximalizálni a 25x_{1} +7x_{2} +24x_{2} célfüggvényt az x_{1} ≥ 0, x_{2} ≥ 0, x_{3} ≥ 0 valamint a 3x_{1} + x_{2} + 5x_{3} ≤ 8000000 és 5x_{1} + x_{2} + 3x_{3} ≤ 5000000 feltételek mellett. (Mivel x_{i} ebben a modellben a hordók számát jelöli, így ki kellene kötnünk, hogy minden x_{i} egész. A fenti feladatban azonban a hordók száma nagy, így gyakorlati szempontból nem számít, ha elengedjük az egészértékű megkötést. Jelezzük ugyanakkor, hogy számos gyakorlati problémában szükséges lehet a változókra tett egészértékűségi megkötés. Lineáris egyenlőtlenség-rendszerek egészértékű megoldhatóságával az egészértékű programozás foglalkozik.)

A lineáris algebra egyik kiinduló pontja a lineáris egyenletrendszerek vizsgálata volt. A Gauss-elimináció segítségével elvi és algoritmikus választ kaptunk arra a kérdésre, hogy egy lineáris egyenletrendszernek mikor van megoldása. A lineáris programozás lineáris egyenlőtlenség-rendszerekkel foglalkozik. Egy egyenlőtlenség lehet szigorú vagy egyenlőséget is megengedő, de a továbbiakban egyenlőtlenségen mindig ezen utóbbit értjük, hacsak kifejezetten az ellenkezőjét nem mondjuk. A legelső kérdés az, hogy egy egyenlőtlenségrendszernek mikor létezik megoldása, vagy másképp fogalmazva, egy egyenlőtlenség-rendszer megoldás-halmaza, melyet majd poliédernek nevezünk, mikor nemüres. Az erre vonatkozó eredmény (Farkas lemma) az egyenletrendszerekről szóló Fredholm tétel direkt általánosítása. Hasonlóképp, az egyenletredszerek megoldáshalmazára vonatkozó eredmények szépen kiterjeszthetők egyenlőtlenség-rendszerek megoldás-halmazára.

Egyenlőtlenség-rendszerekkel kapcsolatban azonban olyan új típusú kérdések is felvetődnek, amelyeknek nincs is értelmes speciális esetük egyenletrendszerekre vonatkozólag. Megkérdezhetjük, hogy valamely c vektorra a cx lineáris célfüggvény korlátos-e az R poliéderen (mondjuk) felülről. (Egy affin altéren egy lineáris célfüggvény vagy konstans vagy nem korlátos). Ha korlátos, úgy harmadik célunk meghatározni a cx függvény maximumát (vagy ha alulról korlátos, úgy minimumát) R-en. Persze most még azt (a később majd bizonyításra kerülő tényt) sem tudjuk, hogy a szóbanforgó maximum egyáltalán létezik-e: Weierstrass általános tétele szerint egy korlátos zárt halmazon folytonos függvény felveszi maximumát, így miután cx folytonos és egy poliéder bizonyosan zárt, R korlátossága esetén már most is bizonyosak lehetünk a maximum létezésében. Nemsokára ezt is és a nem-korlátos esetet is igazoljuk, Weierstrass nélkül.

2.1.1 Megjegyzések az intuícióról

A lineáris egyenletrendszerek megoldására vonatkozó elmélet megértését megkönnyítette, hogy három dimenzióban a problémához egy geometriailag szemléletes képet lehetett kapcsolni. A geometriai intuíció segítséget jelent egyenlőtlenség-rendszerek vizsgálatánál is. Egy három-változós egyenlőtlenség-rendszer megoldás-halmazát is szépen lehet ábrázolni. Egyetlen qx ≤ β (q ≠ 0) egyenlőtlenség megoldás-halmaza az R^{3}-ban egy zárt féltérként képzelhető el. Egy egyenlőtlenség-rendszer megoldás-halmaza így néhány féltér metszete. Három dimenzióban véges sok féltér metszete nem más, mint egy konvex poliéder (megengedve, hogy a poliéder nem feltétlenül korlátos). Ez a kép természetesen sugallja, hogy magasabb dimenzióban is egy egyenlőtlenség-rendszer megoldás-halmazát majd poliédernek nevezzük. Kérdés persze, hogy mennyire szerencsés ez az elnevezés abban az értelemben, hogy egy n-változós egyenlőtlenség-rendszer megoldás-halmaza valóban rendelkezik-e olyan tulajdonságokkal, melyeket három dimenziós szemléletünk sugall. Három dimenzióban világos, hogy egy korlátos poliéder a csúcsainak konvex burka. Igaz-e ez magasabb dimenzióban is? A kérdés persze így eleve csalás, hiszen még azt sem tudjuk, hogy hogyan is kéne magasabb dimenzióban a csúcsot definiálni.

Ami esetleg kézenfekvő a három dimenziós szemléletünkben, az lehet, hogy n dimenzióban nem is igaz. Vagy még ha igaz is, nem azért, mert három dimenzióban jól látszik. Gondoljunk arra, hogy egy n pontú gráf szerkezete mennyivel összetettebb lehet, mint egy három pontúé. Nyilván senki nem gondolná, hogy egy három pontú gráfra igaz állításnak automatikusan tetszőleges gráfra is igaznak kéne lennie. A szemléletes és az igaz állítások kapcsolatának jobb megértésére tekintsük a következő (nem feltétlenül igaz) állításokat.

1. Ha f folytonos függvény a I = [0, 1] zárt intervallumon, amelyre f(0) < 0 < f(1), akkor létezik olyan x ∈ I szám, amelyre f(x) = 0.

2. Ha f folytonos függvény a I = (0, 1) nyílt intervallumon, akkor f véges sok pont kivételével I minden pontjában deriválható.

3. Az n-dimenziós Euklideszi térben n darab páronként hegyes szöget bezáró vektor mindig beforgatható a nemnegatív térszögletbe (azaz létezik egy olyan ortonormált transzformáció, amely az n vektor mindegyikét nemnegatív vektorba képezi).

4. Ha R^{n}-ben egy P korlátos poliéder bármely két csúcsa szomszédos, akkor P -nek legfeljebb n + 1 csúcsa van.

5. Ha R^{n}-ben véges sok pont P konvex burka nem tartalmazza az origót, akkor van olyan zárt féltér, amely magában foglalja P -t, de nem tartalmazza az origót.

Ezen állítások mindegyikét többé-kevésbé szemléletesnek érezzük. Az első közülük Bolzano tétele, amit bevezető analízisben bizonyítanak. Nem ritka az a felfogás, hogy a Bolzano tétel nyilvánvaló, hiszen egy ,,folytonos vonal” a (0, −1) és (1, 1) pontok között szükségképpen metszi az y = 0 tengelyt, és a részletes bizonyításra csak azért van szükség, mert ,,a matematikában pontosnak kell lenni”. Ez a nézet azonban téves. A Bolzano tétel ugyanis nem arról szól, hogy a folytonosságra bennünk élő szemléletes érzetre igaz-e valami, hanem arról, hogy a folytonosságra bevezetett formális definíció vajon valóban teljesíti-e azokat az elvárásokat, amelyeket a szemléletes folytonosság képünk diktál. A Bolzano tétel egy ilyen elvárt tulajdonság fennállását igazolja vissza.

A fenti 2. állítás egy másik ilyan elvárt tulajdonságot fogalmaz meg. Ez is meglehetősen szemléletesnek hat, csak hát éppen nem igaz: van olyan folytonos függvény I-n, amely egyetlen pontban sem differenciálható.

A 3. állítás nyilvánvaló a síkban, könnyen igazolható 3 dimenzióban, és némi erőfeszítéssel bebizonyítható még R^{4}-ben is. Magasabb dimenzióban azonban már az állítás nem érvényes! Kis analógia: Könnyen igazolható, hogy legfeljebb négy pontú gráfok kromatikus száma egyenlő a maximális teljes részgráfjuk pontszámával. Öt pontú gráfokra azonban ez már nem áll, hiszen az öt pontú kör kromatikus száma 3, de nincs benne háromszög.

A 4. állítás 2 és 3 dimenzióban kézenfekvő. Négy dimenzióban azonban minden n-re lehet n csúcsú poliédert konstruálni úgy, hogy a csúcsai páronként szomszédosak legyenek.

Az 5. állítás három dimenzióban szintén kézenfekvő, de az előbbi példák elbizonytalaníthatnak, hogy vajon magasabb dimenzióban is igaznak kell-e lennie. Mindenesetre, ha az elkövetkezőkben esetleg tényleg az derül ki, hogy érvényes, akkor ezt a tényt nem szabad majd magától értetődőnek tekintenünk.

A három dimenzióban szemléletes állítások történő átvitelének nehézségeit jól érzékelteti az alábbi feladat.

Feladat 2.1 Igazoljuk, hogy R^{n}-ben véges sok pont konvex burka zárt.

A következőkben olyan fogalmakat építünk ki magasabb dimenzióban, melyek három dimenzióban jól ismertek. Mi egy poliéder lapja, csúcsa, dimenziója? Azt az utat követjük, amely általában egy definíció kiterjesztésénél szokás: kiválasztjuk az ismert esetben a szóbanforgó fogalom valamely alapvető tulajdonságát, és az általánosításhoz ezt használjuk definícióként. (Például egy pozitív a szám negatív egész kitevős hatványát úgy definiáltuk, hogy érvényben maradjon a pozitív egész kitevős hatványra fennálló egyszerű szabály. Ezért lett, definíció szerint a^{0} := 1 vagy a^{(−n)} := 1/a^{n}). Egy dologra azonban ügyelni kell. Elképzelhető, hogy az általánosítandó fogalomnak nem csak egy alapvető tulajdonsága van, így az általánosításra is több lehet lehetőség kínálkozik.

Például egy R korlátos három-dimenziós poliéder csúcsa az R-nek olyan pontja, amely nincs benne a poliéder két másik pontját összekötő szakaszban. Ezen tulajdonság egy lehetőség a magasabb dimenziós poliéder csúcsának definiálására. Egy másik kézenfekvő lehetőség azt mondani, hogy az R valamely z pontja akkor csúcs, ha létezik egy sík, amelynek R-rel vett metszete az egyetlen z pontból áll. Melyiket válasszuk magasabb dimenzióban a csúcs definíciójának? Netán olyan szerencsénk lesz, hogy a kétféle lehetőség ekvivalens?

2.2 KÚPOK, POLIÉDEREK, POLITOPOK

Az alterek (illetve az affin halmazok) éppen azok a halmazok, melyek zártak a lineáris (ill. affin) kombináció képzésre. Pontok egy halmazát akkor nevezzük konvexnek, ha zárt a konvex kombináció képzésre, vagyis akárhogy véve a halmaznak véges sok elemét, ezek konvex kombinációja is a halmazhoz tartozik.

Gyakorlat 2.2 Ha z a z_{1}, …, z_{k} pontok konvex kombinációja és mindegyik z_{i} a v_{1}, …, v_{l} pontok konvex kombinációja, akkor z a v_{1}, …, v_{l} pontoknak is konvex kombinációja.

Gyakorlat 2.3 Egy halmaz akkor és csak akkor konvex, ha bármely két elemének bármely konvex kombinációja a halmazhoz tartozik.

Gyakorlat 2.4 Konvex halmazok metszete is konvex.

Mivel R^{n} konvex, tetszőleges C halmaz benne van egy őt tartalmazó legszűkebb konvex halmazban, nevezetesen a C-t tartalmazó konvex halmazok metszetében. Ezt a C konvex burkának (convex hull) nevezzük és konv(C)-vel jelöljük.

Gyakorlat 2.5 A konv(C) halmaz nem más, mint a C elemeinek felhasználásával készült konvex kombinációk halmaza.

Amennyiben a ∈ R^{n} nem-nulla vektor, β tetszőleges szám, az ax = β lineáris egyenlet megoldás-halmazát hipersíknak (hyperplane) nevezzük. Ez az {x ∈ R^{n} : ax = 0} homogén hipersík eltoltja. A fentiek alapján a hipersík dimenziója n − 1 (innen az elnevezés). Következik, hogy az affin altér hipersíkok metszetének tekinthető. Az {ax ≤ β} egyenlőtlenség-rendszer megoldás-halmazát, vagyis az {x : ax ≤ β} halmazt (zárt) féltérnek (closed halfspace) hívjuk, melynek {x : Ax = b} a határoló síkja, és amelynek normálisa a. (Ha szigorú egyenlőtlenség van, nyílt féltérről beszélünk). A β = 0 esetben azt mondjuk, hogy a féltér homogén.

2.2.1 Kúpok

Vektorok egy nemüres C halmazát kúpnak (cone) nevezzük, ha C zárt nemnegatív számmal történő szorzásra nézve, vagyis ha C bármely elemének nem-negatív számszorosa is C-hez tartozik. Ebből adódik, hogy az origó mindig a kúpban van. A kúp triviális, ha egyetlen pontja van (az origó). Amennyiben a kúp még az összeadásra is zárt, konvex kúpról beszélünk. Ez könnyen láthatóan valóban konvex. Miután a továbbiakban csak konvex kúpokról lesz szó, kúpon automatikusan konvex kúpot fogunk érteni. Egy altér például mindig kúp. (Ez a definíció egyrészt általánosabb annál, mint amit szokásos geometriai kúp fogalmunk diktálna, hiszen megenged olyan alakzatokat is, melyeket síkok határolnak. Például a síkban a nemnegatív síknegyed kúp. Másrészt szűkebb, mert kúp eltoltja nem kúp). Két tipikus példa kúpra:

Végesen generált kúp (röviden, generált kúp): Véges sok a_{1}, …, a_{n} ∈ R^{m} vektor nemnegatív lineáris kombinációinak halmaza. Jelölése : kúp(a_{1}, …, a_{n}) := {z : z = ∑_{i} λ_{i}a_{i}, λ_{i} ≥ 0}. Amennyiben A egy olyan m·n-es mátrix, melynek oszlopai az a_{i} vektorok, úgy az a_{i} vektorok kúpja {Ax : x ≥ 0} = AR_{+}^{n}. Az A mátrix sorvektorai R^{n}-ben az {yA : y ≥ 0} = R_{+}^{m}A kúpot generálják, melyet G_{A}-val jelölünk.

Metszetkúp (másnéven poliéder-kúp): Véges sok homogén féltér metszete; R := {x : b_{1}x ≤ 0, …, b_{m}x ≤ 0}, ahol b_{i} ∈ R^{n}. Amennyiben B egy olyan m·n-es mátrix, melynek sorai a b_{i} vektorok, úgy R = {x : Bx ≤ 0}. A B oszlopvektorai R^{m}-ben az {y : yA ≤ 0} metszetkúpot definiálják.

Megjegyzendő, hogy ha {p_{1}, p_{2}, …, p_{t}, a_{1}, … a_{n}} vektorok esetén a {z : z = ∑_{j} μ_{j}p_{j} + ∑_{i} λ_{i}a_{i}, λ_{i} ≥ 0} halmaz generált kúp (vagyis ha csak bizonyos együtthatókra követelünk meg nemnegativitást), éspedig a {p_{1}, −p_{1}, …, p_{t}, −p_{t}, a_{1}, …, a_{n}} vektorok kúpja. Speciálisan, a p_{1}, …, p_{t} vektorok által generált altér is generált kúp. A generált kúp tehát a generált altér általánosítása.

Hasonlóképp, {q_{1}, …, q_{t}, b_{1}, …, b_{m}} vektorok esetén az {x : q_{1}x = 0, …, q_{t}x = 0, b_{1}x ≤ 0, …, b_{m}x ≤ 0} halmaz metszetkúp, éspedig {x : q_{1}x ≤ 0, −q_{1}x ≤ 0, …, q_{t}x ≤ 0, −q_{t}x ≤ 0, b_{1}x ≤ 0, …, b_{m}x ≤ 0}. Speciálisan, a q_{1}, …, q_{t} vektorok nulltere (másnéven kiegészítő altere) metszetkúp. A metszetkúp tehát a nulltér általánosítása.

Gyakorlat 2.6 Két metszetkúp metszete metszetkúp. Két generált kúp vektor-összege generált kúp.

Korábban láttuk, hogy egy generált altér mindig előáll nulltérként és megfordítva. E tétel szép általánosításaként bebizonyítjuk majd, hogy egy metszetkúp mindig előáll generált kúpként és egy generált kúp metszetkúpként. Ez az ekvivalencia nem nyilvánvaló: például egy metszetkúp zártsága rögtön látszik abból, hogy a félterek zártak és zárt halmazok metszete is zárt; ugyanakkor egy generált kúp zártságának igazolása nem ilyen kézenfekvő.

Egy q nemnulla vektor esetén a {λq : λ ∈ R_{+}} generált kúpot végtelen iránynak vagy röviden iránynak vagy másként sugárnak (ray) mondjuk és q⃗-val jelöljük. A q⃗_{1}, …, q⃗_{k} irányok egy nemnegatív kombinációján a q_{1}, …, q_{k} vektorok egy nemnagatív kombinációjához tartozó irányt értjük.

A generált kúp tekinthető véges sok irány nemnegatív kombinációi halmazának. Egy z pontból induló q⃗ irányú félegyenesen a z + q⃗ := {x : x = z + λq, λ ∈ R_{+}} halmazt értjük. Tehát az irány egy origóból kiinduló félegyenes, és a félegyenes egy eltolt irány.

Adott K kúphoz hozzárendelhetjük a K^{∗} := {x : xz ≤ 0 minden z ∈ K elemre} halmazt, és ezt a K polárisának nevezzük. Könnyen látszik, hogy K^{∗} maga is kúp, és az is, hogy a K kúp polárisának polárisa magában foglalja K-t, azaz K ⊆ (K^{∗})^{∗}. Itt nem szükségképpen áll egyenlőség, hiszen bármely kúp polárisa könnyen ellenőrizhetően zárt, vagyis nem zárt K esetén K ≠ (K^{∗})^{∗}. A σ(K) lezártra viszont bebizonyítható, hogy σ(K) = (K^{∗})^{∗} és így zárt K-ra K = (K^{∗})^{∗}.

2.2.2 Poliéderek és politopok

A metszetkúpénál általánosabb a következő fogalom:

Poliéder (polyhedron, tbsz: polyhedra): Véges sok féltér metszete: R := {x : Qx ≤ b}, ahol Q egy m × n-es mátrix, b m-dimenziós vektor. Másszóval a poliéder egy lineáris egyenlőtlenség-rendszer megoldás-halmaza. Figyeljük meg, hogy a definícióból adódóan egy poliéder mindig konvex, hiszen ha néhány vektor kielégít egy lineáris egyenlőtlenséget, akkor konvex kombinációjuk is. A háromdimenziós térgeometriában megszokott (konvex) poliéderek megadhatók félterek metszeteként, vagyis kielégítik a fenti definíciót, ugyanakkor ez megenged nem korlátos poliédereket is. Például egy metszetkúp vagy egy affin altér poliéder.

A formailag általánosabb, egyenlőségeket és egyenlőtlenségeket egyaránt tartalmazó {P x = b_{0}, Qx ≤ b_{1}} rendszer megoldás-halmaza is poliéder, hiszen egy px = β egyenlet megoldás-halmaza felfogható mint a px ≤ β és a −px ≤ −β egyenlőtlenségek közös megoldás-halmaza. Nyilván a {x : Qx ≥ b} halmaz is poliéder éppúgy, mint az oszloptérben lévő {y : yQ ≤ b} halmaz. Ez is jelzi, hogy egy poliéder többféle módon is megadható mátrixszal. Az {Ax = b, x ≥ 0} egyenlőtlenség-rendszerről azt mondjuk, hogy standard alakú, vagyis ha egy olyan egyenletrendszerről van szó, amelynek változóira nemnegativitási kikötés van. Az {x : Ax = b, x ≥ 0} poliéder standard alakban van adva. Egy standard alakban adott poliéder tehát egy affin altér és a nemnegatív térszöglet metszete.

Az R := \{x : P x = b_{0}, Qx ≤ b_{1}\} poliéder egy z elemére nézve a definiáló M = ( \begin{matrix}P \\ Q \end{matrix} ) mátrix egy sorát

valamint a sor által meghatározott egyenlőtlenséget z-aktívnak vagy röviden csak aktívnak nevezzük, ha z egyenlőséggel teljesíti. A P sorai automatikusan aktívak. A z-re nézve aktív sorok részmátrixát az M z-aktív részmátrixának nevezzük és M_{z}^{=}-vel jelöljük. A z által szigorú egyenlőtlenséggel teljesülő sorok mátrixát Q_{z}^{<} jelöli. A σ(z) := r(M) − r(M_{z}^{=}) értéket a z pont szintjének nevezzük. Ez az érték tehát az adott definícióban az egyenlőtlenség-rendszertől függ (bár később bebizonyítjuk, hogy valójában csak a poliédertől). Egy 0-szintű pontot az egyenlőtlenség-rendszer bázis-megoldásának nevezzük. Vagyis z ∈ R akkor bázis-megoldás, ha aktív részmátrixának rangja ugyanaz, mint M rangja.

Politop (polytope): Véges sok pont konvex burka. (Az üres halmazt is politopnak tekintjük, mint nulla darab pont konvex burka.)

Gyakorlat 2.7 Két poliéder metszete is poliéder. Két politop vektor-összege is politop.

Gyakorlat 2.8 Amennyiben R := {x : Mx ≤ b} nemüres, úgy R akkor és csak akkor az egész tér, ha r(M) = 0 (azaz M a csupa-nulla mátrix) és b ≥ 0.

Természetes kérdések: Mikor létezik egy egyenlőtlenség-rendszernek megoldása, azaz mikor üres egy poliéder? Erre válaszol majd a Farkas lemma, amely a Fredholm-féle alternatíva tételnek lineáris egyenlőtlenségekre vonatkozó kiterjesztése. Hogyan lehet ,,paraméteresen” megadni egy egyenlőtlenség-rendszer megoldás-halmazát, annak mintájára, ahogyan egy egyenletrendszer megoldás-halmazát meg lehetett adni így? A korlátos esetben erre válaszol majd az a bizonyításra kerülő tétel, miszerint minden korlátos poliéder politop, és megfordítva. További kérdés, hogy két egyenlőtlenség-rendszer megoldás-halmaza mikor ugyanaz, magyarán, mikor definiálják ugyanazt a poliédert? Kezdjük egy egyszerű megfigyeléssel.

Lemma 2.1 Ha az R poliéder kúp, akkor metszetkúp.

Biz. Az R megadható {x : Qx ≤ b} alakban és feltehetjük, hogy Q-nak a lehető legkevesebb sora van. Azt igazoljuk, hogy ekkor b = 0. Mindenesetre b ≥ 0, hiszen 0 ∈ R miatt 0 = Q0 ≤ b. Tegyük fel indirekt, hogy b(i) > 0 valamelyik i-re. A Q minimalitása miatt van olyan x′ vektor, amely a Qx ≤ b rendszerből egyedül a iqx ≤ b(i) egyenlőtlenséget sérti meg, azaz _{i}qx′ > b(i) > 0. Ekkor az α := b(i)/_{i}qx′ számra x^{∗} := αx′ benne van R-ben, de 2x^{∗} például nincs, mert _{i}q(2x^{∗}) = 2α_{i}qx′ = 2b(i) > b(i), ellentmondásban R kúp voltával. •

Egy poliédert akkor nevezünk korlátosnak, ha létezik olyan K pozitív szám, amelyre |x(i)| ≤ K a poliéder minden x pontjának mindegyik x(i) komponensére. Egy poliéder (külső) dimenzió-ján, (röviden dimenzióján) az őt tartalmazó legszűkebb affin altér dimenzióját értjük. A poliéder belső dimenziója a benne fekvő affin alterek dimenziójának a maximuma. Például, ha a poliéder egyetlen pontból áll, akkor külső és belső dimenziója is nulla. Általában egy affin altérnek, mint poliédernek a külső és belső dimenziója megegyezik az affin altér korábban már bevezetett dimenziójával, speciálisan R^{n} egy hipersíkjának külső és belső dimenziója is n − 1. A síkban a nemnegatív síknegyed belső dimenziója 0, külső dimenziója 2. Az n-dimenziós térben egy féltér, belső dimenziója n − 1, külső dimenziója n.

Egy {z + λq : λ ∈ R} alakú egyenest q irányú egyenesnek nevezünk. Legyen R = {x : Qx ≤ b} nemüres poliéder. Egy q vektorról azt mondjuk, hogy R karakterisztikus vektora, ha R minden z pontjára és minden λ számra z + λq ∈ R. Másszóval, az R bármely pontján átmenő q irányú egyenes R-ben van. Rögtön látszik, hogy a karakterisztikus vektorok alteret alkotnak, a poliéder karakterisztikus alterét.

Ha egy poliéder nem tartalmaz teljes egyenest (félegyenest) akkor azt mondjuk, hogy egyenes-mentes (félegyenes-mentes). A q⃗ irányt az R poliéder egy irányának nevezzük, ha z + λq ∈ R fennáll az R minden z elemére és minden pozitív λ-ra.

Gyakorlat 2.9 Az R poliéder irányainak nemnegatív kombinációi is az R irányai, azaz a poliéder irányai kúpot alkotnak.

A poliéder irányainak kúpját a poliéder karakterisztikus (néha recessziós) kúpjának nevezzük. Az R poliéder egy iránya extrém, ha nem állítható elő tőle különböző R-beli irányok nemnegatív kombinációjaként. Egy altérnek például nincs extrém iránya.

Gyakorlat 2.10 A poliéder egy iránya akkor és csak akkor extrém, ha nem állítható elő két tőle különböző R-beli irány nemnegatív kombinációjaként.

Egy háromdimenziós poliédert lapok, élek illetve csúcsok határolnak. Ezeket a fogalmakat szeretnénk magasabb dimenzióra kiterjeszteni. Egy R ⊆ R^{n} nemüres poliéder F oldala (face) R-nek egy

F := {x ∈ R : cx = δ}  (2.1)

alakú nemüres részhalmaza, ahol δ := max{cx : x ∈ R} valamely cx lineáris célfüggvényre, melyre a maximum létezik. A c ≡ 0 célfüggvényre a definíció azt adja, hogy R maga is oldal. Valódi oldalon (proper face) olyan oldalt értünk, amely nem az egész poliéder. A poliéder valódi oldala tehát az optimum helyek halmaza valamely nemnulla lineáris célfüggvényre nézve, másként szólva a poliédernek az a része, amely egy hipersíkkal érintkezik, amikor azt kívülről a poliéderhez toljuk. Amennyiben az oldal egyetlen pontból áll, úgy ezt a pontot a poliéder csúcsának nevezzük. Tehát egy z ∈ R pont akkor csúcs, ha létezik olyan c vektor, amelyre a cz > cx minden x ∈ R − z-re. A c ≠ 0 esetben a H = {x : cx = δ} hipersíkot a poliéder egy támasz-síkjának nevezzük.

A definícióból látszik, hogy egy poliéder oldala maga is poliéder. Egy affin altér például olyan poliéder, amelynek nincs valódi oldala. Poliéder minimális oldalán egy tartalmazásra nézve minimális oldalt értünk. Egy tartalmazásra nézve maximális valódi oldalt lapnak (facet) nevezünk.

A poliédert csúcsosnak (pointed) mondjuk, ha van csúcsa. Nem minden poliédernek van csúcsa, például az affin altereknek bizonyosan nincs. A poliéder egy z elemét extrém pontnak hívjuk, ha nem áll elő a poliéder néhány más pontjának konvex kombinációjaként.

Gyakorlat 2.11 Igazoljuk, hogy az R poliéder egy z pontjára a következők ekvivalensek. (i) z extrém, (ii) z nincs R-hez tartozó szakasz belsejében), (iii) nincs olyan x′ ≠ 0 vektor, amelyre z + x′ és z − x′ is R-ben van.

lin11 2004. december 15.

2.3 A FOURIER-MOTZKIN ELIMINÁCIÓ

A Gauss elimináció egyrészt hatékony algoritmust szolgáltatott lineáris egyenletrendszerek megoldására, másrészt fontos bizonyítási eszköznek bizonyult (például a Fredholm féle alternatíva tételnél.)

A Gauss-elimináció mintájára egy kézenfekvő eljárást adunk lineáris egyenlőtlenség-rendszerek megoldására. A módszer eredetileg Fouriertól származik, amelyet később Motzkin elemzett, így az irodalomban Fourier-Motzkin (röviden FM) eliminációként hivatkozzák. A Gauss eliminációhoz hasonlóan az FM eljárás is véges algoritmust szolgáltat, de ez, szemben a Gauss eliminációval, szórványos kivételektől eltekintve nem hatékony a gyakorlatban. Valójában a Gauss elimináció polinomiális futásidejű algoritmus, míg az FM elimináció exponenciális. Ugyanakkor az FM eljárás is hatékony bizonyítási eszköznek bizonyul, melynek segítségével néhány alaperedmény könnyen kiadódik.

2.3.1 Oszlop elimináció

Legyen A olyan m·n-es mátrix (m ≥ 1, n ≥ 2), amelynek első, a_{1}-gyel jelölt oszlopa 0, ±1 értékű. Jelölje rendre I, J, K a sorok azon indexhalmazait, melyekre az a_{1}(i) értéke +1, −1 illetve 0. Készítsük el az A^{[1]} mátrixot a következőképpen. A K-nak megfelelő sorok változatlanul kerüljenek be A^{[1]}-be. Ezen kívül minden i ∈ I, j ∈ J választásra legyen _{i}a + _{j}a az A^{[1]} egy sora, melyet jelöljünk _{[ij]}a-val. Ez azt jelenti, hogy ha I vagy J üres, akkor A^{[1]} egyszerűen az A mátrix K-nak megfelelő részmátrixa. Általában A^{[1]}-nek m−(|I|+|J|)+|I||J| sora van. Figyeljük meg, hogy A^{[1]} első oszlopa csupa nullából áll.

TÉTEL 2.2 Az

Ax ≤ 0  (2.2)

egyenlőtlenség-rendszernek bármely megoldása az

A^{[1]}x ≤ 0  (2.3)

rendszernek is megoldása. A (2.3) bármely megoldásának első komponensét alkalmasan megváltoztatva a (2.2) egy megoldását kapjuk.

Biz. Az első rész közvetlenül adódik az A^{[1]} konstrukciójából, hiszen az A^{[1]} minden sora az A sorainak nemnegatív lineáris kombinációja. A második részhez, legyen z megoldása (2.3)-nek. Mivel A^{[1]} első oszlopa 0, feltehető, hogy z(0) = 0. A z(0) értékét fogjuk alkalmasan megváltoztatni, hogy (2.2) egy megoldását nyerjük.

Amennyiben J üres, vagyis A első oszlopában nincsen negatív elem, úgy z első komponensét kellően kicsi α értékre változtatva (2.2) egy megoldását kapjuk. (Nevezetesen, α := min_{i∈I}{− _{i}az} megteszi.) Analóg módon, ha I üres, úgy z(1)-t kellően nagyra változtatva kapunk (2.2)-nek egy megoldását. Tegyük most fel, hogy sem I, sem J nem üres. Állítjuk, hogy

max_{j∈J}{ _{j}az} ≤ min_{i∈I}{− _{i}az}.  (2.4)

Valóban, ha volna olyan i ∈ I, j ∈ J index-pár, amelyre _{j}az > − _{i}az, úgy _{[ij]}az = _{i}az + _{j}az > 0 volna, ellentmondásban a feltevéssel, hogy z megoldása (2.3)-nek. Mármost, ha α tetszőleges olyan szám, amelyre

max_{j∈J}{ _{j}az} ≤ α ≤ min_{i∈I}{− _{i}az},  (2.5)

úgy z első komponensét α-ra változtatva a kapott z_{α}-ról állítjuk, hogy megoldása (2.2)-nek. Valóban, ha h ∈ K, akkor _{h}a első komponense 0, így a _{h}az_{α} = _{h}az ≤ 0. Ha h ∈ I, azaz _{h}a(1) = 1, akkor (2.4) második egyenlőtlensége folytán _{h}az_{α} = _{h}az + α ≤ 0. Végül a h ∈ J esetben _{h}a(1) = −1, és ekkor (2.4) első egyenlőtlensége folytán _{h}az_{α} = _{h}az − α ≤ 0. •

Következmény 2.3 Tegyük fel, hogy a Q mátrix első oszlopa 0, ±1 értékű, és rendeljük a

Qx′ ≤ b  (2.6)

egyenlőtlenség-rendszerhez a

Q^{[1]}x′ ≤ b^{[1]}  (2.7)

rendszert, ahol b^{[1]} az A := (Q, b) mátrixhoz tartozó A^{[1]} mátrix utolsó oszlopa. Ekkor (2.6) bármely megoldása a (2.7) rendszernek is megoldása, és a (2.7) bármely megoldásának első komponensét alkalmasan megváltoztatva a (2.6) egy megoldását kapjuk.

Biz. Egy x′ vektor pontosan akkor megoldása (2.6)-nek, ha az x := (x′, −1) megoldása Ax ≤ 0-nak. Továbbá x′ pontosan akkor megoldása (2.7)-nek, ha az x megoldása A^{[1]}x ≤ 0-nak. Alkalmazhatjuk a 2.2 tételt. • Következmény 2.4 Metszetkúp tengelymenti (külső vagy belső) vetülete metszetkúp. Poliéder tengelymenti vetülete poliéder.

Biz. A 2.2 tétel szerint az {x : Ax ≤ 0} metszetkúp x_{1} tengelymenti belső vetülete az {x : A^{[1]}x ≤ 0} metszetkúp. Miután A^{[1]} első oszlopa 0-vektor, a külső vetület nem más, mint az {x′ : A^{′[1]}x′ ≤ 0} metszetkúp, ahol A^{′[1]} jelöli az A^{[1]}-ből az első (azonosan nulla) oszlop elhagyásával keletkező mátrixot. Az R = {x′ : Qx′ ≤ b^{[1]}} poliéder x_{1} menti belső vetülete a 2.3 következmény alapján az {x′ : Q^{[1]}x′ ≤ b^{[1]}} poliéder, míg a külső vetülete az {x′ : Q^{′[1]}x′ ≤ b^{[1]}} poliéder, ahol Q^{′[1]} az a mátrix, amely Q^{′[1]} első (azonosan nulla) oszlopának elhagyásával keletkezik. •

Feladat 2.12 Igazoljuk, hogy poliéder lineáris képe poliéder.

TÉTEL 2.5 Egy politop és egy generált kúp összege poliéder. Speciálisan, minden politop korlátos poliéder és minden generált kúp előáll metszetkúpként.

Biz. Tekintsük R^{m}-ben az A (m · n-es) mátrix oszlopai által generált kúpot és az A′ (m · n′-s) mátrix oszlopai által feszített politopot. Ezek összege a C := {z : z = Ax + A′x′, (x, x′) ≥ 0, ex′ = 1} halmaz, ahol e a csupa egyesből álló (n′ dimenziós) vektort jelöli.

Tekintsük most R^{m+n+n′}-ben az R := {(z, x, x′) : Ax + A′x′ − Iz = 0, x ≥ 0, x′ ≥ 0, ex′ = 1} poliédert. Ha R-nek vesszük a külső vetületét az (x, x′) komponenseinek megfelelő koordináták mentén, akkor (definíció szerint) azon z vektorok halmazát kapjuk, melyekhez van olyan (x, x′), hogy Ax + A′x′ − Iz = 0, x ≥ 0, x′ ≥ 0, ex′ = 1, azaz z = Ax + A′x′. Vagyis a külső vetület éppen C, és így a 2.4 következmény miatt C valóban poliéder. •

A lineáris programozás egyik sarokköve a Farkas Lemma. Ennek több ekvivalens alakja van: a legszemléletesebbel kezdjük.

TÉTEL 2.6 (Farkas lemma, geometriai alak) Ha egy C ⊆ R^{k} generált kúp nem tartalmaz valamely b ∈ R^{k} elemet, akkor létezik olyan (zárt) homogén féltér, amely magában foglalja C-t, de nem tartalmazza b-t. Ha egy P politop nem tartalmazza b-t, akkor létezik olyan féltér, amely magában foglalja P -t, de nem tartalmazza b-t.

Biz. Mivel minden generált kúp metszetkúp, azaz véges sok homogén féltér metszete, így ha b nincs a kúpban, akkor nincs benne ezen félterek valamelyikében. A második rész ugyanígy következik abból, hogy minden politop poliéder, azaz véges sok féltér metszete. •

2.3.2 Az FM eljárás hatékonysága

Algoritmikus szempontból a Fourier-Motzkin eliminációt a Qx ≤ b egyenlőtlenség-rendszer megoldására a következőképp lehet használni. Feltehető, hogy a Q első oszlopa 0, ±1 értékű, mert egy egyenlőtlenséget pozitív számmal szorozva ekvivalens rendszert kapunk. Legyen Q_{1} az a mátrix, amely Q^{[1]}-ből keletkezik az első (csupa 0) oszlop eltörlésével. A 2.3 következmény folytán Qx ≤ b megoldhatósága ekvivalens Q_{1}x_{1} ≤ b^{[1]} megoldhatóságával, és a 2.2 tétel bizonyítása meg is mondja, hogy egy x_{1}-ből hogyan lehet kiszámolni Qx ≤ b egy megoldását. Q_{1}-nek eggyel kevesebb oszlopa van mint Q-nak, így az eliminációs lépést n-szer kell használni.

Következésképp a Fourier-Motzkin algoritmus véges. Az eljárás hátránya, hogy egyetlen változó eliminálása sok új egyenlőtlenséget hoz be, vagyis menet közben az egyenlőtlenségek száma nagyon felszaporodhat. Sajnos ez nem csak elvi lehetőség, amint a következő példa mutatja. Legyen p pozitív egész és n := 2^{p} + p + 2. n darab változónk lesz: x_{1}, …, x_{n}. 8\binom{n}{3} egyenlőtlenségünk van, mindegyik ±x_{i} ± x_{j} ± x_{k} ≤ b_{ijk} alakú, ahol b_{ijk} adott számok. t szerinti indukcióval látható, hogy t változó kiejtése után az új egyenlőtlenségek között szerepelni fog az összes ±x_{j_{1}} ± x_{j_{2}}, …, ±x_{j_{s}} ≤ b_{j_{1},...,j_{s}} alakú, ahol s = 2^{t} + 2 és t + 1 ≤ j_{1} < j_{2} … < j_{s} ≤ n. Így p lépés után a megmaradt változók száma n′ = n − p = 2^{p} + 2 míg az egyenlőtlenségek száma legalább 2^{2^{p}+2} = 2^{n′}.

Tapasztalat szerint a FM elimináció legfeljebb csak kis példákon használható, nagyobbakon tipikusan ténylegesen kezelhetetlenül sok egyenlőtlenség keletkezik.

A példában olyan egyenlőtlenség-rendszer szerepelt, amelynek minden sorában három 1 abszolút értékű együttható volt. Érdekes, hogy ha csak két 1 abszolút értékű együttható van minden sorban, akkor a Fourier-Motzkin eljárás polinomiális futásidejű. Egy (sor)vektort nevezzünk szimplának, ha vagy egy nemnulla eleme van (és erről feltehető, hogy 1 abszolút értékű), vagy kettő, melyek mindegyike 1 abszolút értékű. Szimpla sorokból álló mátrixot is nevezzünk szimplának. Könnyű megfigyelni, hogy ha a kiindulási mátrix szimpla, akkor az FM eljárás során keletkező új mátrix is az. Miután szimpla vektor csak kevés lehet, ilyen esetben az FM eljárás szimpla mátrixokra polinomiális. Természetesen menetközben a redundáns egyenlőtlenségeket ki kell dobni: ha például az x_{1} +x_{2} ≤ 3 és az x_{1} +x_{2} ≤ 4 egyenlőtlenségek adódnak ki, akkor az utóbbi felesleges.

Szimpla mátrixokra, egészértékű b esetén azt is el lehet dönteni, hogy a Qx ≤ b rendszernek létezik-e egészértékű megoldása. Az az egyetlen különbség, hogy ha menetközben keletkezik mondjuk egy 2x_{i} ≤ β alakú egyenlőtlenség, akkor ezt az x_{i} ≤ ⌊β/2⌋ egyenlőtlenséggel kell helyettesíteni.

2.3.3 A 2-SAT probléma

Példaként említhetjük az ún. 2-SAT problémát (2-satisfiability = 2-kielégíthetőség). Ez gráfok nyelvén elmondva azt kívánja eldönteni, hogy egy M teljes párosítással rendelkező G = (V, E) gráf pontjai közül ki lehet-e választani |M| darabot, melyek az összes élt lefogják. Ennek eldöntésére, minden v csúcshoz rendeljünk egy x(v) változót, és tekintsük a következő egyenlőtlenség-rendszert. 0 ≤ x(v) ≤ 1 minden v ∈ V -re, x(u) + x(v) = 1 minden uv ∈ M élre, és x(u) + x(v) ≥ 1 minden egyéb uv élre. A 2-SAT problémának pontosan akkor van megoldása, ha ezen egyenlőtlenség-rendszernek van egész megoldása. Miután a feltételi mátrix szimpla, az FM elimináció polinomiális futásidejű algoritmust szolgáltat.

Érdemes az FM elimináció egy lépését közvetlenül gráfnyelven elmondani: Legyen uv ∈ M az egyik párosítás él. A V − {u, v} ponthalmazon definiáljuk a G^{[1]} gráfot úgy, hogy xy él, ha eredetileg él, vagy ha x szomszédos u, v egyikével és y szomszédos a másikával. Könnyen ellenőrizhető közvetlenül is, hogy a 2-SAT probléma akkor és csak akkor oldható meg G-re, ha megoldható G^{[1]}-re.

Gyakorlat 2.13 Tekintsük négy változóban az x_{i} ≥ 0, x_{i} + x_{j} = 1 (1 ≤ i < j ≤ 4) rendszert. Döntsük el az FM eliminációval, hogy van-e megoldása és van-e egész megoldása.

2.3.4 Egy ütemezési feladat

Abban a speciális esetben, amikor a mátrix minden sorában vagy egyetlen nemnulla elem szerepel és ennek az abszolút értéke 1, vagy pedig egy +1-es és egy −1-es, akkor az FM elimináció automatikusan fenntartja ezt az alakot. Következik, hogy ha a jobboldali b vektor egészértékű, és a Qx ≤ b rendszernek van megoldása, akkor van egész megoldása is (és az FM egy ilyet meg is talál).

Egy nagyobb projekt (pl. házépítés) számos részfeladatból áll (alapok kiásása, falak felhúzása, tetőszerkezet, villanyszerelés,…, külső vakolás). Az egyes munkafázisoknak ismert a munkaidőigénye, továbbá a kezdési és befejezési idejére is adott lehet egy időintervallum. Kérdés, hogy lehet-e úgy ütemezni a munkákat, hogy adott T idő alatt az egészet befejezzük, és a munkafázisokra kirótt időbeli előírásokon túl a természetes megelőzési követelményeket is teljesítsük (pl. a villanyszerelés meg kell, hogy előzze a festést). Pontosabban fogalmazva ez azt jelenti, hogy minden munkafázisnak meg kell határozni a kezdő és a befejezési időpontját.

Minden munkafázist ábrázoljunk egy uv irányított éllel, melynek súlya legyen a fázis időtartama. Vegyünk fel egy s kezdőpontot, amelyből minden tőpontba vezessen él nulla súllyal, valamint egy t zárópontot, amelybe minden fejpontból vezessen él nulla súllyal. Amennyiben az uv által reprezentált munkafázis megelőzi az xy által reprezentáltat, úgy húzzunk be egy irányított élt v-ből x-be, és ennek súlya legyen 0. Az ütemezési probléma formális megfogalmazásához jelölje π(s) illetve π(t) az egész projekt kezdési és befejezési időpontját, míg egy uv éllel reprezentált munkafázisra π(u) a kezdési, π(v) pedig a befejezési időpontot. Ezen a nyelven az ütemezési feladat olyan π : V → R függvény meghatározásával ekvivalens, amelyre minden uv élnek a súlya legfeljebb π(v)−π(v), minden csúcsra f(v) ≤ π(v) ≤ g(v), ahol f és g előre adott korlátok, és π(t)−π(s) ≤ T. Ha ezen egyenlőtlenségeket felírjuk, akkor mindegyikükben vagy egyetlen +1 vagy −1 szerepel, vagypedig egy darab +1 és egy darab −1. A fentiek szerint ilyen esetben az FM elimináció polinomiális algoritmust szolgáltat, rádásul, ha a súlyok egészértékűek és létezik π megoldás, akkor létezik egészértékű π is.

Feladat 2.14 Igazoljuk, hogy egy élsúlyozott irányított gráfban akkor és csak akkor van negatív össz-súlyú irányított kör, ha nincsen olyan π := V → R függvény, amelyre π(v) − π(u) ≤ c(uv) fennáll minden uv élre. Továbbá, ha a c súlyfüggvény egészértékű, akkor π is választható annak.

lin12 2004. december 15.

2.4 POLIÉDEREK SZERKEZETE ÉS ELŐÁLLÍTÁSA

Legyen Q ≠ 0 egy m · n-es mátrix és jelölje R a

Qx ≤ b  (2.8)

egyenlőtlenség-rendszer megoldásainak halmazát. Ebben a fejezetben végig feltesszük, hogy R nem üres.

2.4.1 A poliéder egyenesei

TÉTEL 2.7 Valamely q ≠ 0 vektorra a következők ekvivalensek:

(1) Qq = 0.

(2) q karakterisztikus vektora R-nek.

(3) R-nek van olyan z pontja, amelyre z + λq minden valós λ-ra R-ben van.

Biz. Az (1)→(2) irány nyilvánvaló, hiszen bármely z ∈ R esetén Q(z + λq) = Qz + λQq = Qz ≤ b, azaz z + λq ∈ R. A (2)→(3) irány semmitmondó. Végül, ha (3) fennáll, akkor szükségképpen Qq = 0, mert különben kellően nagy λ-ra a Q(z +λq) ≤ b és Q(z −λq) ≤ b egyenlőtlenség-rendszerek közül az egyik biztosan nem teljesülne. •

Következmény 2.8 Az R poliéder egy z pontját tartalmazó legbővebb, R-ben fekvő affin altér az A karakterisztikus altér z-vel való eltoltja.

Biz. A definícióból világos, hogy az A + z affin altér R-ben van és tartalmazza z-t. Legyen most x′ eleme egy z-t tartalmazó R-ben fekvő affin altérnek. Azaz z + λx′ minden λ-ra R-ben van, de akkor szükségképpen Qx′ = 0, azaz x′ ∈ A. •

Következmény 2.9 Egy R := {x : Qx ≤ b} ⊆ R^{n} poliéder belső dimenziója n − r(Q).

2.4.2 Bázis-megoldások

Egy z ∈ R elemet bázis-megoldásnak neveztünk, ha a z-aktív Q_{z}^{=} részmátrix rangja r(Q). Először is megmutatjuk, hogy ha két egyenlőtlenség-rendszer ugyanazt a nemüres poliédert definiálja, akkor bázis-megoldásaik halmaza is megegyezik. Valójában ennél többet igazolunk.

TÉTEL 2.10 Tegyük fel, hogy az R poliéder nemüres és R = {x : Qx ≤ b} = {x : Q′x ≤ b′}. Ekkor Q és Q′ sortere megegyezik. Tetszőleges z ∈ R esetén Q_{z}^{=} és Q′_{z}^{=} sortere megegyezik.

Biz. A 2.7 tétel szerint egy q vektorra akkor és csak akkor Qq = 0, ha Q′q = 0, vagyis Q és Q′ nulltere megegyezik, így sorterük is.

A második részhez inderekt tegyük fel, hogy mondjuk Q_{z}^{=} sortere nem tartalmazza Q′_{z}^{=} valamely q′ sorát. Ekkor a Fredholm féle alternatíva tételből következik, hogy létezik olyan q vektor, amelyre Q_{z}^{=}q = 0, qq′ > 0. De ekkor kicsiny pozitív λ-ra z′ := z + λq olyan, hogy Qz′ ≤ b, de qq′ > 0 miatt Q′z′ ≰ b′, ellentmondásban a feltevéssel. •

Egy z ∈ R elem szintjén a σ(z) := r(Q) − r(Q_{z}^{=}) számot értettük.

Következmény 2.11 Egy z ∈ R elem szintje csak a poliédertől függ és nem a poliédert meghatározó egyenlőtlenségrendszer konkrét alakjától. Speciálisan, a bázis-megoldás fogalma is csak a poliédertől függ.

TÉTEL 2.12 Minden nemüres poliédernek létezik bázis-megoldása, nevezetesen bármely minimális szintű elem bázis-megoldás.

Biz. Legyen z ∈ R minimális szintű elem. Belátjuk, hogy σ(z) = 0, azaz z bázis-megoldás. Ha indirekt r(Q) > r(Q_{z}^{=}), úgy a Fredholm tétel szerint létezik q vektor, amelyre Q_{z}^{=}q = 0 és Q_{z}^{<}q ≠ 0. A q esetleges negálásával elérhetjük, hogy a Q_{z}^{<}q vektornak van szigorúan pozitív komponense. Ekkor van olyan λ > 0 érték, amelyre z′ = z + λq ∈ R és _{i}qz′ = b(i) a Q_{z}^{<} valamely _{i}q sorára. Q_{z}^{=}q = 0 és _{i}qq ≠ 0 miatt _{i}q lineárisan független Q_{z}^{=} soraitól. Így Q_{z}^{=}z′ = b_{z} miatt r(Q_{z′}^{=}) > r(Q_{z}^{=}), ellentmondásban z választásával. •

Érdemes kiolvasni, hogy más alakú egyenlőtlenség-rendszerek esetén mit is jelent a bázis-megoldás fogalma.

TÉTEL 2.13 (i) Egy M = ( \begin{matrix}P \\ Q \end{matrix} ) nem-nulla mátrix esetén a

P x = b_{0}, Qx ≤ b_{1}  (2.9)

lineáris rendszernek egy z megoldása akkor bázis-megoldás, ha r(M) = r(M_{z}^{=}).

(ii) Az {Ax = b, x ≥ 0} egy z megoldása akkor és csak akkor bázis-megoldás, ha a pozitív elemekhez tartozó A-beli oszlopok lineárisan függetlenek.

(iii) Az {yA ≥ 0, yb = −1} rendszer egy y_{0} megoldása akkor és csak akkor bázis-megoldás, ha az A-ból lineárisan függetlenül kiválasztható, az y_{0}-ra merőleges oszlopok maximális száma r(A, b) − 1.

Biz. (i) (2.9) és {P x ≤ b_{0}, −P x ≤ −b_{0}, Qx ≤ b_{1}} megoldáshalmaza ugyanaz, továbbá r(M) = r(M′) és

r(M_{z}^{=}) = r(M′_{z}^{=}), ahol M′ := ( \begin{matrix}−P \\ M \end{matrix} ).

(ii) Esetleges sorcserével feltehetjük, hogy z-nek az utolsó j komponense pozitív. Jelölje az ezen j oszlophoz

tartozó m · j-es részmátrixot A′. Legyen M := ( \begin{matrix}A \\ −I \end{matrix} ), ahol I az n · n-es egységmátrixot jelöli. A tétel előtti

megjegyzés szerint z akkor bázis-megoldás, ha r(M_{z}^{=}) = r(M) = n. Ekkor M_{z}^{=} az M mátrix első m + (n − j) sora (vagyis az A sorai valamint a −I első n − j sora). Ennek a bal alsó (n − j) · (n − j)-es részmátrixa egy negatív egységmátrix, így M_{z}^{=} rangja pontosan akkor n, ha az első n − j oszlopának és utolsó n − j sorának kitörlésével keletkező A′ részmátrix rangja n − (n − j) = j, ami épp azt jelenti, hogy A′ oszlopai lineárisan függetlenek.

(iii) Jelölje A_{0} az A azon a_{i} oszlopaiból álló részmátrixot, melyekre y_{0} merőleges, azaz a_{i}y_{0} = 0. Definíció szerint y_{0} akkor bázis-megoldás, ha r(A_{0}, b) = r(A, b). A tétel állítása pedig azzal ekvivalens, hogy y_{0} pontosan akkor bázis-megoldás, ha r(A_{0}) = r(A, b) − 1. Azt kell tehát csak belátnunk, hogy r(A_{0}) = r(A_{0}, b) − 1. De ez rögtön látszik, hiszen y_{0}A_{0} = 0 és y_{0}b = −1 miatt a b vektor nem függ lineárisan A_{0} oszlopaitól. •

Gyakorlat 2.15 Igazoljuk, hogy (i)-ben z szintje r(M) − r(M_{z}^{=}).

Megjegyzés A szakirodalomban általában az {Ax = b, x ≥ 0} rendszerre vezetik be a bázis-megoldás fogalmát, egy z megoldást akkor definiálva bázis-megoldásnak, ha a pozitív komponenseihez tartozó A-oszlopok lineárisan függetlenek. Mi egy általánosabb megközelítést használtunk és ez a tulajdonság tételként adódott!

Gyakorlat 2.16 Igazoljuk, hogy a P x_{0} + Ax_{1} = b, x_{1} ≥ 0 rendszer egy megoldása akkor és csak akkor bázis-megoldás, ha az x_{1} nem-nulla elemeihez tartozó P -beli oszlopokat az A-ból kiválasztott maximálisan sok lineárisan független oszloppal kiegészítve még mindig lineárisan független rendszert kapunk.

Gyakorlat 2.17 Igazoljuk, hogy a {Bx ≤ b, x ≥ 0} rendszer egy z megoldása akkor és csak akkor bázismegoldás, ha a B valamely B′ nemszinguláris négyzetes részmátrixára z a B′x′ = b′ egyértelmű megoldásából áll elő nullák hozzávételével.

2.4.3 Csúcsos poliéderek

Nézzük meg, hogy mi a kapcsolat csúcs és extrém pont között, és hogy ezek definíciója miként tükröződik a poliéder mátrixszal történő megadásában.

TÉTEL 2.14 Az R = {x : Qx ≤ b} poliéder egy z elemére a következők ekvivalensek:

(0) Q oszlopai lineárisan függetlenek és z bázis-megoldás.

(1) Q_{z}^{=} oszlopai lineárisan függetlenek, azaz Q-nak van n lineárisan független z-aktív sora.

(2) z csúcs.

(3) z extrém pont.

Biz. A (0) és (1) feltételek ekvivalenciája a definíciókból közvetlenül kiolvasható.

(1)⇒(2) Legyen c a Q_{z}^{=} sorainak az összege, azaz c = y_{1}Q, ahol y_{1} azt a (0 − 1)-es vektort jelöli, amelyben a Q_{z}^{=} sorainak megfelelő komponensek értéke 1, a többié 0. Tetszőleges x ∈ R esetén cx = (y_{1}Q)x = y_{1}(Qx) ≤ y_{1}b = y_{1}(Qz) = (y_{1}Q)z = cz. Ha itt valamely x ∈ R elemre egyenlőség szerepel, akkor Q_{z}^{=}x = b_{z}^{=}, ennek pedig z az egyértelmű megoldása, hiszen a feltevés szerint Q_{z}^{=} oszlopai lineárisan függetlenek.

(2)⇒(3) Ha z csúcs, akkor létezik egy olyan c vektor, amelyre cz > cx minden x ∈ P − z elemre. Ha z, indirekt, nem extrém, akkor létezik x, y ∈ P − z, melyekre z = (x + y)/2. De ekkor cx < cz és cy < cz és így cz = (cx + cy)/2 < (cz + cz)/2 = cz, ellentmondás.

(3)⇒(1) Tegyük fel, hogy z extrém. Amennyiben Q_{z}^{=} oszlopai, indirekt, lineárisan összefüggőek, úgy létezik egy q nemnulla vektor, amelyre Q_{z}^{=}q = 0. De ekkor kicsiny pozitív ε-ra z + εq is és z − εq is benne van R-ben (merthogy kielégítik {Qx ≤ b}-t), ellentmondásban a feltevéssel, hogy z extrém. • Következmény 2.15 Egy poliédernek legfeljebb véges sok csúcsa van.

Biz. A 2.14 tételben az (1) tulajdonság miatt minden z csúcshoz létezik Q-nak n lineárisan független z-aktív sora, mely sorhalmaz különböző csúcsra különböző. Így R-nek legfeljebb m!/(n!(m − n)!) csúcsa lehet. •

A következő eredmény jellemzi a csúcsos poliédereket.

TÉTEL 2.16 Egy R = {x : Qx ≤ b} nemüres poliéderre a következők ekvivalensek:

(1) Q oszlopai lineárisan függetlenek.

(2) R egyenes-mentes.

(3) Az R karakterisztikus altere triviális.

(4) R csúcsos.

Biz. Az első három feltétel ekvivalenciája közvetlenül adódik a 2.7 tételből.

(4)⇒(1) Ha z csúcs, akkor a 2.14 tétel nyomán Q_{z}^{=} oszlopai lineárisan függetlenek, így persze Q oszlopai is azok.

(1)⇒(4) A 2.12 tétel miatt van bázis-megoldás, és a 2.14 tétel miatt bármely z bázis-megoldás csúcs. •

A csúcsos poliéderek jellemzése után most belátjuk, hogy bármely R poliéder előáll, mint egy csúcsos poliéder és egy altér összege, ahol az altér az R karakterisztikus alterének ortogonális kiegészítője.

TÉTEL 2.17 Az R = {x : Qx ≤ b} nemüres poliéder az A := {x : Qx = 0} karakterisztikus altér és az R′ := R ∩ A^{⊥} poliéder összege, ahol A^{⊥} az A altér ortogonális kiegészítője (vagyis a Q sorai által generált altér). Továbbá, az R′ poliéder egyenes-mentes (=csúcsos).

Biz. Először belátjuk, hogy R ⊆ A + R′, azaz bármely z ∈ R elem előáll egy A-beli és egy R′-beli elem összegeként. Valóban, minden z elem egyértelműen előáll egy A-beli z_{1} és egy A^{⊥}-beli z_{2} elem összegeként. Belátjuk, hogy z_{2} ∈ R′. Ha nem ez volna a helyzet, akkor z ∈ A^{⊥} miatt z_{2} nem volna R-ben, azaz z_{2} megsértené Qx ≤ b valamelyik sorát. De akkor Qz_{1} = 0 miatt z = z_{1} + z_{2} is megsértené ugyanazt a sort, ellentétben a z ∈ R feltevéssel. Így valóban R ⊆ A + R′. Másrészt a definíciókból világos, hogy A + R′ ⊆ A + R ⊆ R, amiből A + R′ = R.

Végül belátjuk, hogy R′ egyenes-mentes. Az A altér egy bázisából, mint sorvektorokból készítsük el a Q^{∗}

mátrixot. Ekkor tehát Q sorai és Q^{∗} sorai egymásra merőlegesek, együtt kifeszítik az egész teret, azaz ( \begin{matrix}Q \\ Q^{∗} \end{matrix} )

teljes oszlop-rangú. Miután R′ a {Q^{∗}x = 0, Qx ≤ b} rendszer megoldás-halmaza, a 2.16 tételből adódik, hogy R′ egyenes-mentes. •

Az alábbi következmény tartalma az, hogy a 2.17 tételben, ha R kúp, úgy R′ is kúp lesz.

Következmény 2.18 Egy R := {x : Mx ≤ 0} metszetkúp az A := {x : Mx = 0} karakterisztikus altér (ami speciális metszetkúp) és az R′ := R ∩ A^{⊥} csúcsos metszetkúp vektor-összege.

Biz. A 2.17 tétel nyomán csak azt kell látnunk, hogy R′ metszetkúp, de ez világos, hiszen egy altér metszetkúp. •

2.4.4 Korlátos poliéderek

Miután feltártuk, hogy egy poliéder mikor tartalmaz egyenest, felvetődik a kérdés, hogy mikor tartalmaz félegyenest. Azt mondtuk, hogy a q⃗ irány a poliéder iránya, ha R minden z elemére a {z + λq : λ ≥ 0} félegyenes R-ben van.

TÉTEL 2.19 Valamely nemnulla q vektorra a következők ekvivalensek:

(1) q⃗ a poliéder iránya.

(2) R-nek van olyan z pontja, amelyre a {z + λq : λ ≥ 0} félegyenes R-ben van.

(3) Qq ≤ 0.

Biz. (1)→(2) semmitmondó. A (2)→(3) és (3)→(1) irányok közvetlenül látszanak. •

Gyakorlat 2.18 Igazoljuk, hogy egy {x : P x = b_{0}, Qx ≤ b_{1}} alakban adott nemüres poliéder karakterisztikus kúpja {x : P x = 0, Qx ≤ 0}.

Következmény 2.20 Egy poliédernek és karakterisztikus kúpjának extrém irányai ugyanazok. • TÉTEL 2.21 Egy R = {x : Qx ≤ b} nemüres poliéderre a következők ekvivalensek:

(1) R nem tartalmaz félegyenest.

(2) R-nek véges sok csúcsa van, melyek konvex burka R.

(3) R korlátos.

(4) R karakterisztikus kúpja triviális.

Biz. (1)⇒(2) Mivel R nem tartalmaz félegyenest, így egyenest még kevésbé, és ezért a 2.16 tétel miatt van csúcsa. A 2.15 következmény miatt véges sok csúcsa van. Jelölje R_{K} a csúcsok konvex burkát. Belátjuk, hogy R = R_{K}. Ha bizonyos vektorok kielégítenek egy egyenlőtlenség-rendszert, akkor bármely konvex kombinációjuk is kielégíti, ezért R_{K} ⊆ R.

A fordított irányú tartalmazás igazolásához indirekt tegyük fel, hogy a poliédernek van olyan z pontja, amely nem áll elő csúcsok konvex kombinációjaként. Válasszuk z-t olyannak, hogy Q_{z}^{=}, a z-aktív részmátrix maximális legyen. Mivel z nem csúcs, így Q_{z}^{=} oszlopai lineárisan összefüggenek. Ezért létezik egy nemnulla q vektor, amelyre Q_{z}^{=}q = 0. Kicsiny pozitív λ-ra z + λq ∈ R és mivel R nem tartalmaz félegyenest, nagy λ értékre z + λq ∉ R. Ez azt jelenti, hogy Q_{z}^{<}-nek van olyan _{i}q sora, amelyre _{i}qq > 0. Így ha λ-t nullától kezdve folyamatosan növeljük, lesz egy olyan λ_{1} érték, amelyre z_{1} := z + λ_{1}q benne van R-ben és aktív részmátrixa szigorúan bővebb Q_{z}^{=}-nél. (Nevezetesen λ_{1} := min(b_{1}(i) − _{i}qz)/(_{i}qq), ahol a minimum a Q_{z}^{=} azon _{i}q soraira megy, amelyekre _{i}qq > 0.) Analóg módon létezik egy z_{2} := z − λ_{2}q vektor R-ben (λ_{2} > 0), amelynek aktív részmátrixa szigorúan bővebb Q_{z}^{=}-nél. A z-re tett feltevés miatt mind z_{1}, mind z_{2} benne van R_{K}-ban, és ezért a z_{1}z_{2} szakasz belsejében fekvő z is, ellentmondás.

(2)⇒(3) Triviális.

(3)⇒(4) Ha indirekt létezne a karakterisztikus kúpnak q nemnulla eleme, akkor bármely z ∈ R elemre a {z + λq : λ ≥ 0} félegyenes R-ben volna, és így R nem lenne korlátos.

(4)⇒(1) Ha indirekt valamely q nemnulla vektorra a {z + λq : λ ≥ 0} félegyenes R-ben volna, akkor szükségképpen Qq ≤ 0, azaz q benne volna a karakterisztikus kúpban. •

A (2) tulajdonsága bizonyítása mögött rejlő geometriai szemlélet a következő: nincs mit bizonyítani, ha z maga csúcs. Ha nem az, úgy tekintsük a z pont R_{z} oldalát, amin az R legszűkebb olyan oldalát értjük, amely tartalmazza z-t. (Ez annak felel meg, hogy a z-aktív egyenlőtlenségeket egyenlőségnek vesszük.) Keresünk egy irányt, amely mentén z-ben elmozdulva R_{z}-ben maradunk, és megnézzük, hogy az ilyen irányú z-n átmenő egyenes mely x_{1} és x_{2} pontoknál lép ki a poliéderből. Mivel az x_{1} oldala és x_{2} oldala is szűkebb z oldalánál, így indukcióval ők már előállnak csúcsok konvex kombinációjaként, de akkor az [x_{1}, x_{2}] szakasz pontjai is előállnak, speciálisan z is.

Egy kézenfekvő fogással megmutatjuk, hogy minden csúcsos metszetkúp az extrém irányai által generált kúp. Ennek érdekében a kúpot elmetszük egy alkalmas hipersíkkal úgy, hogy a metszet poliéder korlátos legyen, és a csúcsai a C extrém irányainak felelnek majd meg. A következő tétel megmondja, hogyan kell a hipersíkot ,,alkalmasan” választani.

TÉTEL 2.22 Legyen a C := {x : Qx ≤ 0} nemtriviális kúp egyenes-mentes (=csúcsos), és legyen Z := {x : Qx ≤ 0, cx = −1} poliéder, ahol c a Q sorainak az összege. Ekkor tetszőleges z ∈ Z esetén z⃗ a kúp iránya, és a kúp tetszőleges q⃗ iránya egyetlen z pontban metszi Z-t. Z korlátos és egy z ∈ Z pont akkor és csak akkor csúcsa Z-nek, ha z⃗ extrém iránya C-nek.

Biz. Miután C egyenes-mentes, Q oszlopai lineárisan függetlenek, így Qq = 0-ból q = 0 következik. Ezért C-nek tetszőleges q nemnulla elemére Qq ≠ 0, azaz van olyan i index, amelyre _{i}qq < 0 fennáll. De ekkor cq < 0 is áll, és így létezik egy egyértelmű λ > 0 szám, amelyre z := λq ∈ Z. Vagyis a kúp q⃗ iránya előáll z⃗ alakban, ahol z ∈ Z. Fordítva, tetszőleges z ∈ Z elem esetén Qz ≤ 0, ezért z⃗ a kúp iránya.

A Z poliéder korlátosságához az 2.21 tétel alapján azt kell belátni, hogy karakterisztikus kúpja triviális, vagyis az {Qx ≤ 0, cx = 0} rendszernek nincs nemnulla megoldása. Ezt viszont az előbb már láttuk.

Végül legyen z ∈ Z, azaz Qz ≤ 0, cz = −1. Ha z nem csúcs, akkor előáll (z_{1} + z_{2})/2 alakban ahol z_{i} ∈ Z, z_{i} ≠ z, (i = 1, 2). De ekkor z⃗ a z⃗_{1} és z⃗_{2} C-beli irányok nemnegatív kombinációja. Vagyis ha z⃗ extrém iránya C-nek, akkor z csúcsa Z-nek. Fordítva, legyen z csúcsa Z-nek. Ha z⃗ indirekt nem extrém iránya C-nek, akkor van C-nek két olyan x′, y′ eleme, amelyek nincsenek z⃗-ben, de x′ + y′ z⃗-ben van. Ekkor viszont z az x′ ∩ Z pontot és az y′ ∩ Z pontot összekötő szakasz belsejében van, azaz z nem volna csúcsa Z-nek. •

Következmény 2.23 C egyenes-mentes nemtriviális metszetkúpnak véges sok extrém iránya van, és C ezen irányok generált kúpja. •

Érdemes megállapítani egy egyenes-mentes kúp extrém irányának algebrai jelentését is.

TÉTEL 2.24 A C = {x : Qx ≤ 0} egyenes-mentes kúp egy z nemnulla eleme által meghatározott z⃗ irány akkor és csak akkor extrém iránya C-nek, ha z merőleges a Q mátrix r(Q) − 1(= n − 1) lineárisan független sorára, azaz ha r(Q_{z}^{=}) = n − 2.

Biz. Az 2.22 tétel jelöléseit használva, az egyenes-mentesség miatt Qz < 0, és így cz < 0. Miután z bármely pozitív számszorosa ugyanazt az irányt definiálja, feltehetjük, hogy cz = −1, azaz z ∈ Z. Az 2.13 tétel (ii) részében bebizonyítottuk (egy ekvivalens alakra), hogy az {Qx ≤ 0, cx = −1} rendszer egy z megoldása akkor és csak akkor bázis-megoldás (azaz Z-nek egy csúcsa), ha z merőleges Q-nak r(Q) − 1 lineárisan független sorára. Az 2.22 tétel szerint viszont egy-egy értelmű kapcsolat van a Z poliéder csúcsai és a C kúp extrém irányai között. •

2.4.5 Poliéderek előállítása

A Fourier-Motzkin tétel egyszerű következményeként a 2.5 tételben már láttuk, hogy egy politop és egy generált kúp összege poliéder. Most megmutatjuk, hogy évényes a megfordítás is, azaz minden poliéder előáll, mint egy politop és egy generált kúp összege. Tekintsük először a speciális esetet, amikor egy metszetkúpot akarunk előállítani generált kúpként. Az A mátrixra jelölje G_{A} az A sorai által generált {yA : y ≥ 0} kúpot, míg M_{A} az A sorai által definiált {x : Ax ≤ 0} metszetkúpot.

Lemma 2.25 Amennyiben az A mátrix sorai által generált kúp megegyezik a B mátrix sorai által definiált metszetkúppal, azaz G_{A} = M_{B}, úgy M_{A} = G_{B}.

Biz. Először lássuk be, hogy M_{A} ⊆ G_{B}. Ehhez legyen z ∈ M_{A}, vagyis _{i}az ≤ 0 fennáll az A minden sorára. Ekkor G_{A} minden q elemére qz ≤ 0. Ha most indirekt z nincs a G_{B} generált kúpban, akkor a 2.6 tétel szerint van olyan homogén féltér, amely tartalmazza G_{B}-t, de z-t nem. Vagyis ennek határoló hipersíkjának q normálisára egyrészt Bq ≤ 0, azaz q benne M_{B}-ben van, másrészt qz > 0, azaz q az előbbiek szerint nincs G_{A}-ban, ellentmondásban a G_{A} = M_{B} feltevéssel. Tehát M_{A} ⊆ G_{B}.

A fordított G_{B} ⊆ M_{A} irány igazolásához figyeljük meg, hogy G_{A} = M_{B} miatt _{i}a _{j}b ≤ 0 fennáll az A minden _{i}a és a B minden _{j}b sorára. Emiatt minden y ∈ G_{B} elemre _{i}ay ≤ 0 fennáll vagyis y ∈ M_{A}. Tehát G_{B} ⊆ M_{A} és így G_{B} = M_{A}. •

TÉTEL 2.26 Minden metszetkúp előáll generált kúpként.

Biz. Az A mátrix sorai által definiált M_{A} metszetkúpról fogjuk kimutatni, hogy generált kúp. A 2.5 tétel szerint a G_{A} generált kúp előáll metszetkúpként, azaz létezik egy olyan B mátrix, amelyre G_{A} = M_{B}. A 2.25 lemma nyomán M_{A} = G_{B}, vagyis M_{A} a B sorai által generált kúp. •

Egy C kúp polárisán a C^{∗} := {x : xy ≤ 0 minden y ∈ C-re} kúpot értettük.

Feladat 2.19 Minden generált kúp a polárisának polárisa, azaz (K^{∗})^{∗} = K.

A metszetkúpok előbbi előállítására támaszkodva megadjuk a poliéderek előállítását, amely tehát a 2.5 tétel megfordításának tekinthető.

TÉTEL 2.27 Minden nemüres poliéder előáll mint egy politop és egy generált kúp összege. Speciálisan, minden korlátos poliéder politop.

Biz. Legyen R = {x : Qx ≤ b} nemüres poliéder. A bizonyítás ötlete az, hogy R-t beágyazzuk egy eggyel magasabb dimenziós tér {(x, λ) : x ∈ R^{n}, λ = 1} hipersíkjába, ahol R az origóval egy kúpot feszít, majd ezen kúpra alkalmazzuk a 2.26 tételt.

Tekintsük tehát az eggyel magasabb (azaz n + 1) dimenziós térben az M := {(x, λ) : Qx − λb ≤ 0, λ ≥ 0} metszetkúpot. Ez a 2.26 tétel szerint előáll generált kúpként. Feltehető, hogy a generáló elemek utolsó (λ-nak megfelelő) koordinátáinak mindegyike 1 vagy 0. Legyenek a generáló elemek eszerint szétválasztva: (x_{1}, 1), …, (x_{k}, 1), (x′_{1}, 0), …, (x′_{l}, 0). Tekintsük R^{n}-ben az x_{i}-k konvex burkaként definiált P politopot valamint az x′_{j} vektorok által generált C kúpot.

Azt állítjuk, hogy R = P + C. Valóban, legyen először z ∈ R. Ekkor (z, 1) = ∑_{i} λ_{i}(x_{i}, 1) + ∑_{j} μ_{j}(x′_{j}, 0), ahol λ_{i} ≥ 0, μ_{j} ≥ 0. Most tehát ∑_{i} λ_{i} = 1 és ezért z_{1} := ∑_{i} λ_{i}x_{i} benne van P -ben és z_{2} := ∑_{j} μ_{j}x′_{j} benne van C-ben. Így z valóban előáll egy P -beli z_{1} és egy C-beli z_{2} elem összegeként, azaz R ⊆ P + C. Legyen most z_{1} ∈ P, z_{2} ∈ C. Ekkor (z, 1) = (z_{1}, 1) + (z_{2}, 0) benne van M-ben, azaz Qz − b ≤ 0, vagyis z benne van R-ben, azaz P + C ⊆ R, és így R = P + C. •

A 2.28 tételben direkt bizonyítást adunk a tétel egy élesítésére, amely szerint minden egyenes-mentes poliéder a csúcsai által feszített politopnak és a karakterisztikus kúpnak az összege.

A 2.27 tételben már láttuk, hogy minden korlátos poliéder politop és hogy minden metszetkúp generált kúp. A 2.21 tétel ennél többet mondva azt állítja, hogy minden nemüres korlátos poliéder a csúcsainak konvex burka, illetve a 2.23 következmény szerint minden csúcsos metszetkúp extrém irányainak generált kúpja. Mostani célunk a teljes 2.27 tétel hasonló jellegű élesítése. A 2.21 tétel (1)⇒(2) iránya bizonyításának gondolatmenetét használva megadhatjuk a csúcsos poliéderek előállítását.

TÉTEL 2.28 Minden R ≠ ∅ egyenes-mentes (azaz csúcsos) poliéder előáll mint a csúcsai által feszített R_{K} politop valamint a poliéder C karakterisztikus kúpjának a vektor-összege.

Biz. Tegyük fel, hogy R = {x : Qx ≤ b} és legyen z a poliéder egy pontja. Legyen Q_{z}^{=} a z aktív részmátrixa. A 2.14 tétel alapján R csúcsai éppen a 0 szintű pontok.

A szint szerinti indukcióval fogjuk kimutatni, hogy a poliéder minden z pontja előáll egy R_{K}-beli és egy C-beli pont összegeként. Ha a szint nulla, akkor tehát z csúcs, így eleme R_{K}-nak. Tegyük most fel, hogy σ(z) > 0 és azt, hogy minden alacsonyabb szintű pontra a szóbanforgó előállítás létezik.

Mivel r(Q) > r(Q_{z}^{=}), létezik olyan q, amelyre Q_{z}^{=}q = 0 és Q_{z}^{<}q ≠ 0. Feltehető, hogy Q_{z}^{<}q-nak van negatív komponense, különben q-t helyettesíthetjük a negatívjával.

Tegyük először fel, hogy Q_{z}^{<}q-nak nincsen pozitív komponense, azaz Q_{z}^{<}q < 0 (vagyis q ∈ C). Ekkor létezik olyan λ_{1} > 0 szám, amelyre x_{1} := z − λ_{1}q az R-ben van és σ(x_{1}) < σ(z). (Nevezetesen, λ_{1} := min((b_{1}(i) − _{i}az)/(−_{i}aq), ahol a minimum az Q azon _{i}a soraira megy, amelyekre _{i}aq < 0. Az x_{1} szintje valóban kisebb, mint z szintje, hiszen egyrészt Q_{z}^{=}x_{1} = b_{z}^{=}, másrészt Q_{z}^{<} egyik _{i}q sorára _{i}qx_{1} = b(i) és ez a sor iqq ≠ 0 és Q_{z}^{=}q = 0 miatt lineárisan független Q_{z}^{=} soraitól.) Indukció alapján x_{1} előáll x_{1} = y_{1} + y′_{1} alakban, ahol y_{1} ∈ R_{K} és y′_{1} ∈ C. De most z = x_{1} + λ_{1}q = y_{1} + y′_{1} + λ_{1}q és y′_{1} + λ_{1}q ∈ C, így z is előáll az R_{K}-beli y_{1} és egy C-beli elem összegeként.

Tegyük most fel, hogy Q_{z}^{<}q-nak létezik pozitív komponense is, és legyen _{1}q és _{2}q a Q_{z}^{<} mátrixnak két olyan sora, amelyre _{1}qq < 0 és _{2}qq > 0. Ekkor léteznek pozitív λ_{1} és λ_{2} számok, melyekre x_{1} = z − λ_{1}q ∈ R és x_{2} = z + λ_{2}q ∈ R, és mind az x_{1}, mind az x_{2} szintje kisebb, mint a z-é.

Indukcióval x_{i} = y_{i} + y′_{i} (i = 1, 2), ahol y_{i} ∈ R_{K} és y′_{i} ∈ C. De ekkor z = (λ_{2}x_{1} + λ_{1}x_{2})/(λ_{1} + λ_{2}) = (λ_{2}y_{1} + λ_{1}y_{2})/(λ_{1} + λ_{2}) + (λ_{2}y′_{1} + λ_{1}y′_{2})/(λ_{1} + λ_{2}). Itt az összeg első tagja R_{K}-ban van, míg a második tagja C-ben. •

Megjegyzés Valójában a fenti bizonyítást a speciális korlátos esetben már korábban, a 2.21 tétel (2) pontjának bizonyításakor elmondtuk.

Összetéve a 2.23 következményt és 2.28 tételt, kapjuk:

Következmény 2.29 Minden R egyenes-mentes (azaz csúcsos) poliéder előáll mint a csúcsai által feszített politopnak valamint az extremális irányai által generált (csúcsos) kúpnak (vagyis az R karakterisztikus kúpjának) a vektor-összege. •

lin13 2004. december 15.

2.5 MEGOLDHATÓSÁG: A FARKAS LEMMA

Valamely feladat algoritmikus megoldásához fontos lehet egy olyan eszköz, amelynek segítségével gyorsan ellenőrizhető egy javasolt megoldás helyessége, függetlenül attól, hogy a szóbanforgó megoldáshoz milyen nehézségek árán jutottunk. Például, behelyettesítéssel könnyű ellenőrizni, hogy egy megadott x_{1} vektor megoldása-e az Ax = b lineáris egyenletrendszernek. Arra is van egyszerűen ellenőrizhető tanúsítvány, ha az Ax = b rendszernek nincsen megoldása, hiszen a Fredholm féle alternatíva tétel szerint ilyenkor létezik egy y, amelyre yA = 0, yb ≠ 0, és egy adott y-ról ennek fennállása szintén könnyen eldönthető.

Kérdés, hogy létezik-e hasonló jellegű, könnyen ellenőrizhető tanúsítvány annak igazolására, hogy egy egyenlőtlenség-rendszer nem oldható meg, magyarán megadható-e a Fredholm féle alternatíva tétel lináris egyenlőtlenségekre vonatkozó ellenpárja. Az igenlő választ Farkas Gyula tétele szolgáltatja, amely a lineáris programozás egyik alapkövének tekinthető, és ezért röviden csak Farkas lemmának nevezik. Az eredmény poliéderek nemürességére ad szükséges és elegendő feltételt, és mivel egy poliédert többféle alakban is meg lehet adni, a Farkas lemmának is különböző változatai vannak. Ezek azonban egyszerű fogással következnek egymásból, ezért minden alakot Farkas lemmának nevezünk majd. A geometriailag szemléletes változatot a 2.3 részben már be is bizonyítottuk. Most bemutatjuk a három leggyakoribb algebrai változatot, majd közös általánosításként egy olyan formát is felírunk, amelyből mind a három alak speciális esetként kiadódik. A Farkas lemmának az eredeti, Farkas Gyula által kimondott alakja a következő.

TÉTEL 2.30 (Farkas lemma, standard alak) Az {Ax = b, x ≥ 0} rendszernek pontosan akkor van megoldása, ha az {yA ≥ 0, yb < 0} rendszernek nincs.

Az {Ax = b, x ≥ 0} rendszert primál feladatnak, míg az {yA ≥ 0, yb < 0} rendszert duál vagy duális feladatnak nevezik. Megjegyzendő, hogy ha a szóbanforgó y létezik, akkor az úgy is megválasztható, hogy yb = −1 teljesüljön, így néha azt hívjuk duális feladatnak, amikor az yb < 0 helyett yb = −1-t követelünk. Néha a duálist az {yA ≤ 0, yb > 0} ekvivalens alakban adják meg: ennek és az eredeti duálisnak a megoldásai egymás minusz egyszeresei.

A primál feladat megoldhatósága azt jelenti, hogy b benne van az A oszlopai által generált K = {Ax : x ≥ 0} kúpban, míg a duálisé azt, hogy van olyan (y normálisú) homogén féltér, amely a kúp minden a_{i} generáló elemét (és így magát a kúpot) tartalmazza (másszóval A minden oszlopára ya_{i} ≥ 0), de b-t nem (azaz yb < 0). [Egy félteret akkor neveztünk homogénnek, ha határoló hipersíkja tartalmazza az origót.] Ezek alapján a tétel a 2.6 következménye.

Érdekes, hogy a 2.30 tételnek nemcsak az oszloptérben, hanem a sortérben is szemléletes jelentés adható. Ugyanis a primál probléma megoldása azzal ekvivalens, hogy létezik olyan nemnegatív (x, 1) vektor, amely ortogonális az A′ := (A, −b) mátrix soraira, ami viszont azzal ekvivalens, hogy az A′ mátrix nullterében létezik egy olyan x′ nemnegatív vektor, amelynek utolsó komponense szigorúan pozitív. A duál problémában yb < 0 helyett y(−b) > 0-t írva, a duál probléma megoldhatósága azt jelenti, hogy van olyan y vektor, amelyre yA′ ≥ 0 és yA′ utolsó komponense szigorúan pozitív; magyarán azt, hogy az A′ mátrix sorterében van olyan nemnegatív vektor, amelynek utolsó komponense szigorúan pozitív. Miután egy tetszőleges mátrix nulltere és sortere egymás ortogonális kiegészítő alterei, továbbá tetszőleges altér és ortogonális kiegészítő altere megadható egy mátrix nulltereként illetve sortereként, a Farkas lemma ekvivalens megfogalmazása a következő. Tetszőleges altér és ortogonális kiegészítő altere közül pontosan az egyik tartalmaz olyan nemnegatív vektort, amelynek utolsó komponense pozitív. Figyeljük meg, hogy két ilyen vektor skaláris szorzata biztosan pozitív, azaz nem lehetnek merőlegesek egymásra, tehát két ortogonális altér közül legfeljebb csak az egyik tartalmazhat ilyen vektort.

TÉTEL 2.31 (Farkas lemma, (A) változat) A Qx ≤ b egyenlőtlenség-rendszer akkor és csak akkor oldható meg, ha nem létezik olyan y ≥ 0, amelyre yQ = 0, yb = −1.

Biz. A Qx ≤ b feladatot nevezzük primál problémának, az {yQ = 0, y ≥ 0, qb = −1} feladatot pedig duálnak. Mindkettő nem oldható meg, mert akkor 0 = y(Qx) ≤ yb = −1 állna. A fordított irányhoz jelölje A a [Q, b] mátrixot, és legyen c′ = (0, …, 0, −1) egy (n + 1)-dimenziós vektor. A duál megoldhatósága azt jelenti, hogy c′ benne van az A sorai által generált kúpban. Ha nincs benne, akkor a Farkas lemma standard alakja szerint van olyan x′ = (x, α) (n+1)-dimenziós vektor, amelyre Ax′ ≤ 0 és c′x′ = 1, ami azzal ekvivalens, hogy α = −1 és Qx ≤ b, vagyis a primál feladat megoldható. •

TÉTEL 2.32 (Farkas lemma, (B) változat) A {Bx ≤ b, x ≥ 0} egyenlőtlenség-rendszer akkor és csak akkor oldható meg, ha nem létezik olyan y ≥ 0, amelyre yB ≥ 0, yb = −1.

Biz. Mindkét rendszer nem oldható meg, mert akkor 0 ≤ (yB)x = y(Ax) ≤ yB = −1. Jelölje Q azt a mátrixot amely B-ből keletkezik azáltal, hogy aláírjuk az n · n-es −I egységmátrixot és jelölje b_{1} azt a vektort, amely b-ből keletkezik n darab 0 komponens hozzáfűzésével. A {Bx ≤ b, x ≥ 0} rendszer pontosan akkor oldható meg, ha Qx ≤ b_{1} megoldható. Az (A) változat szerint, ha Qx ≤ b_{1} nem oldható meg, akkor létezik egy olyan (y, y′) ≥ 0 vektor, amelyre yB + y′(−I) = 0, y_{0}b = −1. De y′ ≥ 0 miatt yB + y′(−I) = 0 azzal ekvivalens, hogy yB ≥ 0. •

Egyszerű fogással a Farkas lemmát olyan alakban is megfogalmazhatjuk, amikor a Fredholm féle alternatíva tételt már explicit magában foglalja.

TÉTEL 2.33 A

{P x = b_{0}, Qx ≤ b_{1}}  (2.10)

primál rendszer akkor és csak akkor oldható meg, ha az

{y_{0}P + y_{1}Q = 0, y_{1} ≥ 0, yb = −1}  (2.11)

duális nem, ahol y = (y_{0}, y_{1},), b = (b_{0}, b_{1}).

Biz. Mindkét feladat nem oldható meg, mert akkor 0 = (y_{0}P +y_{1}Q)x = (y_{0}P)x+(y_{1}Q)x = y_{0}(P x)+y_{1}(Qx) ≤ y_{0}b_{0} + y_{1}b_{1} = −1.

Ha a primál probléma nem oldható meg, akkor a vele ekvivalens {P x ≤ b_{0}, −P x ≤ −b_{0}, Qx ≤ b_{1}} egyenlőtlenség-rendszer sem. Ekkor viszont a Farkas lemma alapján az ehhez tartozó duál megoldható, azaz létezik (y′_{0}, y′′_{0}, y_{1}) ≥ 0 vektor, amelyre y′_{0}P + y′′_{0}(−P) + y_{1}Q = 0 és y′_{0}b_{0} + y′′_{0}(−b_{0}) + y_{1}b_{1} = −1. De ekkor y_{0} := y′_{0} − y′′_{0}-re az (y_{0}, y_{1}) megoldása a (2.11) duálisnak. •

Hasznos egy olyan alakot is felírni, amely a fenti változatok mindegyikét magában foglalja.

TÉTEL 2.34 (Farkas lemma, általános alak) A

P x_{0} + Ax_{1} = b_{0}, Qx_{0} + Bx_{1} ≤ b_{1}, x_{1} ≥ 0  (2.12)

primál rendszernek akkor és csak akkor nincs megoldása, ha az

y_{0}P + y_{1}Q = 0, y_{0}A + y_{1}B ≥ 0, y_{1} ≥ 0, yb := y_{0}b_{0} + y_{1}b_{1} = −1  (2.13)

duális rendszernek van.

Biz. (2.34) Jelölje az x_{0}, x_{1}, y_{0}, y_{1} dimenzióját rendre n_{0}, n_{1}, m_{0}, m_{1}. Új, nemnegatív, úgynevezett eltérés (vagy pót) változók (slack variables) bevezetésével az egyenlőtlenség-rendszert egyenlőség-rendszerré alakítjuk. Legyen B′ := (B, I), A′ := (A, 0) (ahol az I egy m_{1} × m_{1}-os egység-mátrixot, a 0 pedig egy m_{0} × m_{1}-os nulla mátrixot jelöl). Most (2.12) (x_{0}, x_{1}) megoldásai és

P x_{0} + A′x′_{1} = b_{0}, Qx_{0} + B′x′_{1} = b_{1}, x′_{1} ≥ 0  (2.14)

(x_{0}, x′_{1}) megoldásai között egy-egy értelmű kapcsolat áll fenn. Nevezetesen (x_{0}, x_{1}) az (x_{0}, x′_{1})-ből keletkezik az utolsó m_{1} komponens kihagyásával, míg (x_{0}, x_{1})-ből úgy kapjuk (x_{0}, x′_{1})-t, hogy x_{1}-t helyettesítjük az x′_{1} := (x_{1}, b_{1} − (Qx_{0} + Bx_{1})) vektorral.

A (2.14)-hez tartozó

y_{0}P + y_{1}Q = 0, y_{0}A′ + y_{1}B′ ≥ 0, yb = −1  (2.15)

duál probléma és (2.13) ekvivalensek, hiszen csak arról van szó, hogy a (2.13)-ban explicit szereplő y_{1} ≥ 0 előjel megkötést (2.15)-ben az y_{0}A′ + y_{1}B′ ≥ 0 egyenlőtlenség-rendszerben rejtettük el. A (2.14) primál feladatra felírva a 2.36 tételt az abban szereplő (2.17) duál feladat éppen a (2.15) alakot ölti. •

Megjegyezzük, hogy a Farkas lemmát még általánosabb alakban is fel lehetne írni. Például a primál feladatban lehetnek fordított irányú egyenlőtlenségek, vagy nempozitív változók. A megfelelő egyenlőtlenség illetve a feltételi mátrix megfelő oszlopának negálásával azonban könnyen a (2.16)-es alakra juthatunk, így ez a legáltalánosabb alak már nem ad igazán újat.

A 2.13 és a 2.12 tételek alkalmazásával megkaphatjuk a Farkas lemma standard alakjának egy erősítését.

TÉTEL 2.35 Az {Ax = b, x ≥ 0} rendszernek akkor és csak akkor van olyan megoldása, amelyben az x pozitív változóinak megfelelő A-beli oszlopok lineárisan függetlenek, ha nem létezik olyan y, amelyre yA ≥ 0, yb = −1 és A-nak létezik r(A, b) − 1 lineárisan független oszlopa, amelyekre y merőleges. (Röviden, vagy a primál, vagy a duál problémának létezik bázis-megoldása). •

A primál feltétel geometriailag azt mondja, hogy ha a b vektor benne van néhány vektor K kúpjában, akkor már benne van ezen vektorok közül vett lineárisan független vektorok kúpjában is. Egy y duális bázis-megoldás geometrialilag a következőt jelenti. Amennyiben r(A, b) = r(A) + 1, úgy az y ortogonális r(A) lineárisan független oszlopra, ezért yA = 0, vagyis az y normálisú homogén hipersík tartalmazza A oszlopait, de b-t nem. Amennyiben r(A, b) = r(A), úgy az y normálisú K-t tartalmazó, b-t nem tartalmazó homogén féltér olyan, hogy határoló hipersíkja, amely a kúp egy ,,határoló lapját” (maximális valódi oldalát) tartalmazza. Ha a kúp teljes dimenziós, úgy a hipersík ezen határoló lap hipersíkja.

2.5.1 Direkt bizonyítás

Bár a Farkas lemma standard alakját az előbb levezettük korábbi eredményekből (nevezetesen a Fourier-Motzkin eliminációra támaszkodva), érdemes egy közvetlen bizonyítást is megadni. Kényelmesebbnek bizonyul egy kicsit általánosabb alakot igazolni: persze még ez is speciális esete a fentebbi általános alaknak. (Nem ritka jelenség, hogy egy jól eltalált általánosításra az indukciós bizonyítás gördülékenyebben működik.) Szemben a fenti megközelítéssel, amely valójában speciális esetként kiadta a Fredholm féle alternatíva tételt, az itt következő bizonyítás használja azt.

TÉTEL 2.36 A

P x_{0} + Ax_{1} = b, x_{1} ≥ 0  (2.16)

primál feladatnak akkor és csak akkor nincsen megoldása, ha az

yP = 0, yA ≥ 0, yb = −1  (2.17)

duális feladatnak van.

(Figyeljük meg, hogy (2.17) megoldhatósága ekvivalens az {yP = 0, yA ≥ 0, yb < 0} rendszer megoldhatóságával.)

Biz. A primál és a duál feladat nyilván nem oldható meg egyszerre, mert akkor 0 + 0 ≤ 0 + (yA)x_{1} = (yP)x_{0} + (yA)x_{1} = y[(P, A)x] = yb = −1, azaz 0 ≤ −1 következne.

Annak bizonyítására, hogy a primál és a duál feladatok egyike biztosan megoldható az A oszlopai száma szerinti indukciót alkalmazunk. Amennyiben ez az n_{1}-gyel jelölt szám nulla, azaz A üres, úgy a tétel következik a Fredholm féle alternatíva tételből. Tegyük tehát fel, hogy n_{1} pozitív és indukció alapján azt, hogy n_{1}-nél kisebb oszlop-számra a tétel érvényes!

Legyen a_{1} az A mátrix első oszlopa. Jelölje A′ azt a mátrixot, amely A-ból keletkezik az a_{1} kihagyásával. Amennyiben a

P x_{0} + A′x′_{1} = b, x′_{1} ≥ 0  (2.18)

rendszernek létezik megoldása, úgy az x′_{1}-t egy nulla komponenssel kiegészítve (2.16) megoldásához jutunk. Ha (2.18)-nak nincs megoldása, úgy az indukciós feltevés miatt az

yP = 0, yA′ ≥ 0, yb = −1  (2.19)

rendszernek létezik y′ megoldása. Amennyiben y′a_{1} ≥ 0, úgy y′ a (2.17)-nek is megoldása, és ekkor készen vagyunk.

Tegyük fel tehát, hogy y′a_{1} < 0, azaz y′A első komponense negatív, a többi nemnegatív. Jelölje P′ azt a mátrixot, amelyet P -ből az a_{1} oszlop hozzávételével nyerünk. Ha most az

yP′ = 0, yA′ ≥ 0, yb = −1  (2.20)

problémának van megoldása, az nyilván megoldása (2.17)-nek is, és ekkor ismét csak készen vagyunk. Ha (2.20)-nek nincs megoldása, úgy a

P′x′_{0} + A′x′_{1} = b, x′_{1} ≥ 0  (2.21)

rendszernek van (indukció miatt). Jelölje (x_{0}, x_{1}) azt a vektort, amely úgy keletkezik (x′_{0}, x′_{1})-ből, hogy az a_{1}-nak megfelelő komponenst x′_{0}-ből x′_{1}-be helyezzük (ami persze azt jelenti, hogy (x′_{0}, x′_{1}) ugyanazt az n_{0} +n_{1} dimenziós vektort jelöli, mint (x_{0}, x_{1})).

Állítjuk, hogy (x_{0}, x_{1}) megoldása (2.16)-nek. Ehhez csak azt kell igazolnunk, hogy x_{1}(1) (az a_{1}-nek megfelelő komponens) nemnegatív. Valóban, ha ez negatív lenne, akkor x_{1} is és y′A is olyan, hogy első komponensük negatív, a többi pedig nem az. Emiatt (y′A)x_{1} > 0 és így 0 + 0 < 0 + (y′A)x_{1} = (y′P)x_{0} + (y′A)x_{1} = y′[(P, A)x] = y′b = −1, ami lehetelen. •

Megmutatjuk, hogy a 2.36 tételből is levezethető a 2.34 általános alak.

Biz. (2.34 tételé) Jelölje az x_{0}, x_{1}, y_{0}, y_{1} dimenzióját rendre n_{0}, n_{1}, m_{0}, m_{1}. Az x_{1} ≥ 0 feltételt explicit beírhatjuk az egyenlőtlenségek közé 0_{n_{1}n_{0}}x_{0} + x_{1}(−I_{n_{1}n_{1}}) ≤ 0 alakban. A 2.33 tételből közvetlenül kapjuk, hogy a primál probléma pontosan akkor oldható meg, ha az {y_{0}P + y_{1}Q = 0, y_{0}A + y_{1}B + y′_{1}(−I_{n_{1}n_{1}}) = 0, (y_{1}, y′_{1}) ≥ 0, y_{0}b_{0} + y_{1}b_{1} = −1} rendszer nem. Ez utóbbi megoldhatósága viszont y′_{1} nemnegativitása folytán épp (2.13) duáliséval ekvivalens. •

További kézenfekvő megjegyzés, hogy a Farkas lemmát olyan alakban is használhatjuk, amikor a rendszer balról szorzással van adva. (Egy későbbi alkalmazás miatt néhány vektort és mátrixot vesszős betűvel jelölünk.)

TÉTEL 2.37

y_{0}P′ + y_{1}Q′ = c′_{0}, y_{0}A′ + y_{1}B′ ≥ c′_{1}, y_{1} ≥ 0  (2.22)

primál rendszernek akkor és csak akkor nincs megoldása, ha a

P′x_{0} + A′x′_{1} = 0, Q′x_{0} + B′x′_{1} ≤ 0, x′_{1} ≥ 0, c′_{0}x_{0} + c′_{1}x′_{1} > 0  (2.23)

duális rendszernek van. •

Gyakorlat 2.20 Az {yA ≤ c} rendszernek akkor és csak akkor van megoldása, ha nincs olyan x ≥ 0, amelyre Ax = 0, cx < 0.

Feladat 2.21 Tekintsük a (2.17)-ben előforduló {yP = 0, yA ≥ 0, yb = −1} rendszert, mint primál problémát és fogalmazzuk meg erre a Farkas lemmát. Mutassuk meg, hogy a felírt duális ekvivalens a (2.16) alakkal.

Feladat 2.22 Tegyük fel, van egy szubrutinunk, amely vagy az {Ax = b, x ≥ 0} rendszernek vagy a duális {yA ≥ 0, yb = −1} rendszernek kiszámít egy megoldását. Hogyan használhatjuk fel ezt a (2.16) vagy (2.17) rendszer megoldására?

Feladat 2.23 Tegyük fel, van egy szubrutinunk a {Bx ≤ b, x ≥ 0} rendszer megoldására. Hogyan használhatjuk fel ezt a {Qx ≤ b} rendszer megoldására?

2.5.2 Lineáris és logikai következmény

Azt mondjuk, hogy a cx ≤ γ egyenlőtlenség logikai következménye a Qx ≤ b egyenlőtlenség rendszernek, ha az utóbbinak van megoldása és minden megoldása kielégíti a cx ≤ γ egyenlőtlenséget. Ez geometrialag azt jelenti, hogy az {x : Qx ≤ b} poliéder teljesen a zárt {x : cx ≤ γ} féltérben fekszik. Azt mondjuk, hogy a cx ≤ γ egyenlőtlenség lineáris következménye Qx ≤ b-nek, ha létezik olyan y ≥ 0, amelyre yQ = c és yb ≤ γ.

Általánosabban, tekintsük a

P x_{0} + Ax_{1} = b_{0}, Qx_{0} + Bx_{1} ≤ b_{1}, x_{1} ≥ 0  (2.24)

egyenlőtlenség-rendszert, melynek R megoldás-halmazáről tegyük fel, hogy nemüres. Legyen M = ( \begin{matrix}P & A \\ Q & B \end{matrix} ).

Legyen c = (c_{0}, c_{1}) adott vektor. Az (x_{0}, x_{1}) vektort néha röviden x-szel jelöljük, és hasonlóképp a ( \begin{matrix}b_{0} \\ b_{1} \end{matrix} )

vektort b-vel. Azt mondjuk, hogy a

c_{0}x_{0} + c_{1}x_{1} ≤ γ  (2.25)

egyenlőtlenség logikai következménye a (2.24) rendszernek, ha (2.24) minden megoldása teljesíti (2.25)-t. A (2.25) egyenlőtlenség lineáris következménye (2.24)-nek, ha létezik olyan y := (y_{0}, y_{1}), amelyre

y_{1} ≥ 0, y_{0}P + y_{1}Q = c_{0}, y_{0}A + y_{1}B ≥ c_{1}, yb ≤ γ.  (2.26)

TÉTEL 2.38 Feltéve, hogy R nemüres, (2.25) akkor és csak akkor lineáris következménye (2.24)-nek, ha logikai.

Biz. Tegyük fel először, hogy cx ≤ γ lineáris következmény, azaz létezik a szóbanforgó y. Ekkor (2.24)

bármely x megoldására cx = c_{0}x_{0} + c_{1}x_{1} ≤ [(y_{0}, y_{1}) ( \begin{matrix}P \\ Q \end{matrix} )]x_{0} + [(y_{0}, y_{1}) ( \begin{matrix}A \\ B \end{matrix} )]x_{1} = (yM)x = y(Mx) =

y_{0}[P x_{0} + Ax_{1}] + y_{1}[Qx_{0} + Bx_{1}] ≤ y_{0}b_{0} + y_{1}b_{1} = yb ≤ γ, azaz cx ≤ γ valóban logikai következmény.

A fordított irányhoz tegyük fel, hogy cx ≤ γ logikai következmény. Először azt a speciális esetet nézzük, amikor A, B, P mindegyike üres, azaz R = {x : Qx ≤ b}. Azt kell kimutatnunk, hogy cx ≤ γ lineáris következmény, ami most azt jelenti, hogy létezik olyan y ≥ 0, amelyre yQ = c és yb ≤ γ. Tegyük fel, nem ez a helyzet, azaz nem létezik olyan y ≥ 0, amelyre yQ = c és y(−b) ≥ −γ. Ekkor a Farkas lemma (balról szorzós alakja) miatt van olyan (x, α) vektor, amelyre

α ≥ 0, Qx − αb ≤ 0, cx − αγ > 0.  (2.27)

Ha most α = 0, akkor ez a

Qx ≤ 0, cx > 0  (2.28)

alakot ölti. Ebből következik, hogy az R poliéder egy z elemére bármilyen pozitív λ esetén z + λx benne van R-ben, ugyanakkor c(z + λx) bármilyen nagy lehet, ha λ nő, vagyis cx ≤ γ nem volna logikai következmény.

Vagyis α-nak pozitívnak kell lennie. Feltehető, hogy α = 1, mert α-val végigoszthatunk. Most (2.27) azzal ekvivalens, hogy Qx ≤ b, cx > γ vagyis az x létezése cáfolja, hogy cx ≤ γ logikai következmény volna.

Nézzük most azt az esetet, amikor A és B üres. Az R-t definiáló rendszer a

P x = b_{0}, Qx ≤ b_{1}  (2.29)

alakra egyszerűsödik, és ilyenkor a cx ≤ γ egyenlőtlenség definíció szerint akkor lineáris következmény, ha létezik olyan y := (y_{0}, y_{1}), amelyre

y_{1} ≥ 0, y_{0}P + y_{1}Q = c, yb ≤ γ.  (2.30)

(2.29) azzal ekvivalens, hogy P x ≤ b_{0}, −P x ≤ −b_{0}, Qx ≤ b_{1}. Ennek a rendszernek logikai következménye a cx ≤ γ egyenlőtlenség, így az első rész szerint létezik olyan (y′_{0}, y′′_{0}, y_{1}) ≥ 0 vektor, amelyre y′_{0}P + y′′_{0}(−P) + y_{1}Q = c és y′_{0}b_{0} + y′′_{0}(−b_{0}) + y_{1}b_{1} ≤ γ, de ekkor y_{0} := y′_{0} − y′′_{0} választással (2.30) teljesül, azaz cx ≤ γ lineáris következmény (2.29)-nek.

Az általános eset bizonyításához legyen B^{∗} := ( \begin{matrix}B \\ −I \end{matrix} ) , Q^{∗} := ( \begin{matrix}Q \\ 0 \end{matrix} ), ahol I egy n_{2} × n_{2}-es egységmátrix,

míg 0 egy n_{2} × n_{1}-es nulla-mátrix. Legyen b_{1}^{∗} := ( \begin{matrix}b_{1} \\ 0 \end{matrix} ), ahol 0 most egy n_{2} dimenziós 0-vektor. A megelőző

eset P és Q helyén rendre P^{∗}-gal és Q^{∗}-gal illetve b_{1} helyén b_{1}^{∗}-gal éppen az általános alakkal ekvivalens. •

2.5.3 Alkalmazások

TÉTEL 2.39 Ha egy n-változós lineáris egyenlőtlenség-rendszernek nincsen megoldása, akkor van egy legfeljebb n + 1 egyenlőtlenségből álló részrendszer úgy, hogy már annak sincsen megoldása.

Biz. Amennyiben a Qx ≤ b rendszernek nincsen megoldása, úgy a Farkas lemma szerint létezik olyan y ≥ 0 vektor, amelyre yQ = 0, yb = −1. E duális rendszer tehát megoldható, így létezik y^{∗} bázis-megoldás is, amiből következik, hogy az y^{∗}-nak legfeljebb n + 1 pozitív komponense van. A Farkas lemma triviális iránya szerint az ezen komponensekhez tartozó egyenlőtlenség-rendszernek sincsen megoldása. •

TÉTEL 2.40 (Caratheodory) Ha a d-dimenziós tér egy z pontja p ≥ d+1 darab pont konvex kombinációja, akkor ezen pontok között van legfeljebb d + 1, amelyeknek z konvex kombinációja.

Biz. Készítsünk el egy mátrixot, amelynek p oszlopa van és az egyes oszlopok a p pont helyvektorait tartalmazzák, majd egészítsük ki a mátrixot még egy csupa egyesből álló sorral. A keletkező (d + 1) × p-es mátrixot jelölje A. Az, hogy z előáll a megadott pontok konvex kombinációjaként azt jelenti, hogy az Ax = (z, 1)-nek létezik nem-negatív megoldása. De akkor létezik bázis-megoldása is, ami azt jelenti, hogy az előállításban legfeljebb annyi együttható nemnulla, mint ahány sora van az A mátrixnak, vagyis d + 1. •

TÉTEL 2.41 Ha R és R′ két nemüres poliéder, melyek metszete üres, akkor van őket szigorúan elválasztó {x : cx = α} hipersík, azaz cx < α < cx′ fennáll az R minden x és az R′ minden x′ elemére.

Biz. Legyen R = {x : Qx ≤ b} és R′ := {x : Q′x ≤ b′}. Mivel a metszetük üres, azaz a {Qx ≤ b, Q′x ≤ b′} rendszernek nincsen megoldása, a Farkas lemma szerint, létezik olyan (y, y′) ≥ 0 vektor, amelyre yQ+y′Q′ = 0 és yb + y′b′ < 0. Ekkor yb és y′b′ számok egyike biztosan negatív, mondjuk yb. A c := yQ vektor nem lehet nulla, mert akkor (a Farkas lemma triviális iránya miatt) R üres lenne. yb + y′b′ < 0 miatt van olyan α szám, amelyre yb < α < −y′b′. Ekkor x ∈ R-re cx = (yQ)x = y(Qx) ≤ yb < α és x′ ∈ R′-re cx′ = (yQ)x′ = −(y′Q′)x′ = −y′(Q′x′) ≥ −y′b′ > α. •

TÉTEL 2.42 (Helly) Az n-dimenziós térben adottak a C_{1}, …, C_{k} konvex halmazok, melyek metszete üres. Ekkor ezen halmazok között létezik már legfeljebb n + 1 olyan is, amelyek metszete üres.

Biz. Feltehető, hogy k > n+1. Tegyük fel indirekt, hogy bármely n+1 halmaz metszete nemüres. Kimutatjuk, hogy léteznek R_{i} ⊆ C_{i} poliéderek úgy, hogy már ezek közül is bármely n + 1-nek van közös pontja. E célból legyen S olyan véges halmaz, hogy a C_{i}-k közül bármely n + 1-nek van közös pontja S-ben. Mindegyik C_{i}-re legyen R_{i} a C_{i}-be eső S-beli pontok konvex burka. Mivel C_{i} konvex, így R_{i} ⊆ C_{i}. A 2.5 tétel szerint R_{i} poliéder.

Ha most veszünk n + 1 darab C_{i} halmazt, akkor az ezek metszetében lévő S-beli pontok S definíciója folytán benne vannak a megfelelő n + 1 darab R_{i} metszetében is. Ebből adódik, hogy az R_{i}-ket definiáló egyenlőtlenség-rendszerek egyesítéséből bárhogy véve n + 1 egyenlőtlenséget, annak van megoldása, és így a 2.39 tétel szerint az egész rendszernek is létezik megoldása, vagyis az összes R_{i} halmaznak van közös pontja, és emiatt persze az összes C_{i} halmaznak is van, ellentmondásban a tétel feltevésével. • TÉTEL 2.43 (Kirchberger) Az n dimenziós térben adott k piros és l zöld pont, ahol k + l ≥ n + 2. Amennyiben a piros pontokat nem lehet a zöld pontoktól egy hipersíkkal elválasztani, úgy a pontok között létezik legfeljebb n + 2 úgy, hogy már ezeket sem lehet hipersíkkal elválasztani.

Biz. Jelölje P és Z azokat a mátrixokat, amelyek oszlopai a piros illetve a zöld pontok helyvektorai. Egészítsük ki a [P, −Z] mátrixot egy (1, 1, …, 1, 0, …, 0) sorvektorral, amely k darab egyest tartalmaz, valamint egy (0, …, 0, 1, 1, …, 1) sorvektorral, amely l egyest tartalmaz. A keletkező mátrixot jelölje A. Legyen b az az (n + 2)-dimenziós vektor, melynek utolsó két komponense 1, míg a többi 0. Az A-nak tehát n + 2 sora van.

Állítjuk, hogy az {Ax = b, x ≥ 0} rendszernek van megoldása. Ha ugyanis nincs, akkor a Farkas lemma szerint létezik egy olyan (y, α, β) vektor, amelyre yP + αe_{k} ≥ 0, −yZ + βe_{l} ≥ 0 és α + β < 0, ahol e_{i} a csupa 1-esből álló i-dimenziós vektort jelöli. Ez viszont azt jelenti, hogy {x : yx = −α} hipersík elválasztja a piros és a zöld pontokat, ellentétben a feltevéssel. Az {Ax = b, x ≥ 0} rendszer egy megoldása a piros illetve és a zöld pontok egy-egy konvex kombinációját adja meg, amelyek egyenlők egymással. Emiatt az ebben szereplő piros és zöld pontok nem választhatók el hipersíkkal. Miután létezik bázis-megoldás és ebben legfeljebb n + 2 nemnulla komponens van, az ezeknek megfelelő pontok sem választhatók el hipersíkkal. •

A geometriai alkalmazások után most következzék egy fontos eredmény a valószínűségszámítás területéről.

TÉTEL 2.44 Ha az A n×n-es nemnegatív mátrix minden oszlopában az elemek összege 1, akkor az {Ax = x, e_{n}x = 1, x ≥ 0} rendszernek létezik megoldása, ahol e_{n} = (1, …, 1).

Biz. Legyen B = A − I, ahol I jelöli a diagonális egységmátrixot. Azt kell kimutatnunk, hogy a {Bx = 0, e_{n}x = 1, x ≥ 0} rendszernek létezik megoldása. Ha nem létezne, úgy a Farkas lemma alapján volna olyan (y, α) vektor, amelyre yB + αe_{n} ≥ 0 és α < 0, ami azzal ekvivalens, hogy létezik olyan y, amelyre yB≫0, azaz yA≫y. Jelölje y legnagyobb komponensének értékét μ. A feltételek nyomán y ≪ yA ≤ (μe_{n})A = (μ, …, μ), ellentmondásban μ választásával. •

lin14 2004. december 15.

2.6 IRÁNYMENTI KORLÁTOSSÁG

A Farkas lemma megadta egy lineáris egyenlőtlenség-rendszer megoldhatatlanságának, másszóval egy R poliéder ürességének az okát. A következő feladatunk annak eldöntése, hogy valamely c vektorra a cx lineáris célfüggvény korlátos-e (mondjuk) felülről egy nemüres R poliéderen.

2.6.1 Erős bázis-megoldások

A Qx ≤ b egyenlőtlenség-rendszer egy z bázis-megoldását erős bázis-megoldásnak nevezzük, ha a z nemnulla komponenseihez tartozó Q-beli oszlopok lineárisan függetlenek. Speciálisan, ha Q oszlopai lineárisan függetlenek, akkor minden bázis-megoldás erős. Megmutatjuk, hogy az erős bázis-megoldás fogalma is csak a poliédertől függ. Többet látunk be.

TÉTEL 2.45 Tegyük fel, hogy az R poliéder nemüres és R = {x : Qx ≤ b} = {x : Q′x ≤ b′}. A Q valamely j oszlopa pontosan akkor lineárisan független, ha Q′ megfelelő j oszlopa lineárisan független.

Biz. Feltehetjük, hogy az első j oszlopról van szó. Azt látjuk be, hogy Q első j oszlopa akkor és csak akkor lineárisan összefüggő, ha Q′ első j oszlopa az. Szimmetria miatt elég az egyik irányt belátni, így tegyük fel, hogy Q′ első j oszlopa lineárisan összefügg. Ekkor létezik egy olyan q′ ≠ 0 vektor, amelynek csak az első j komponense lehet nemnulla és Q′q′ = 0. A 2.10 tétel miatt Q és Q′ sortere megegyezik, így valamely x-re Qx = 0 pontosan akkor áll fenn, ha Q′x = 0, amiből következik, hogy Qq′ = 0, vagyis Q első j oszlopa is lineárisan összefüggő. •

Következmény 2.46 Az erős bázis-megoldás fogalma csak a poliédertől függ és nem a poliédert meghatározó egyenlőtlenség-rendszertől. •

Következmény 2.47 A {P x = b_{0}, Qx ≤ b_{1}} egyenlőtlenség-rendszer egy z bázis-megoldása pontosan akkor

erős, ha a z nem-nulla komponenseihez tartozó M-beli oszlopok lineárisan függetlenek, ahol M = ( \begin{matrix}P \\ Q \end{matrix} ). •

Feladat 2.24 Mutassunk olyan Qx ≤ b alakú egyenlőtlenség-rendszert, ahol egy erős bázis-megoldás előáll más erős bázis-megoldások konvex kombinációjaként. Bizonyítsuk be, hogy ha Q oszlopai lineárisan függetlenek, akkor ilyen példa nem létezik.

Gyakorlat 2.25 Legyen f ≪ g, (azaz f minden komponensében kisebb, mint g), ahol f, g ∈ R^{n}. Igazoljuk, hogy az Ax = b, f ≤ x ≤ g rendszer egy z megoldása pontosan akkor bázis-megoldás, ha az A azon a_{i} oszlopai lineárisan függetlenek, melyekre f(i) < z(i) < g(i). Mik az erős bázis-megoldások? Mik a bázis- és az erős bázis-megoldások, ha f ≪ g helyett csak f ≤ g-t tesszük fel?

Ki fogjuk mutatni, hogy mindig létezik erős bázis-megoldás, legfeljebb véges sok van belőlük, továbbá minden olyan c vektorra, amelyre cx az R halmazon felülről korlátos a sup(cx : x ∈ R) érték egy erős bázismegoldáson felvétetik, azaz a maximum létezik. Túl ezen, jellemezzük majd azon c vektorokat, melyekre cx felülről korlátos R-n. Először lássuk be, hogy legfeljebb csak véges sok erős bázis-megoldás létezhet.

TÉTEL 2.48 A Qx ≤ b egyenlőtlenség-rendszer egy z megoldása akkor és csak akkor erős bázis-megoldás, ha létezik Q-nek egy olyan r(Q) sorból és r(Q) oszlopból álló nem-szinguláris Q′ részmátrixa, amelyre z a Q′x′ = b′ egyértelmű x′ megoldásából áll elő 0-komponensek hozzávételével (ahol b′ a b azon részét jelöli, amely a Q′ sorainak felel meg.)

Biz. Ha z a megadott módon áll elő, úgy Q_{z}^{=} tartalmazza Q′-t, így rangja r(Q). Továbbá a z nemnulla komponenseinek megfelelő Q-beli oszlopvektorok lineárisan függetlenek, hiszen ezek mindegyike Q′ egy oszlopának kibővítése, márpedig Q′ a feltevés szerint nem-szinguláris, így oszlopvektorai lineárisan függetlenek. Vagyis ilyenkor z valóban erős bázis-megoldás.

Megfordítva, legyen z erős bázis-megoldás. Ekkor r(Q_{z}^{=}) = r(Q). Válasszuk ki Q_{z}^{=}-nek r(Q) darab lineárisan független sorát, majd a z nem-nulla komponenseinek megfelelő lineárisan független oszlopokat tetszés szerint egészítsük ki az Q oszlopai közül r(Q) darab lineárisan független oszloppá. Az így kapott r(Q) sor és r(Q) oszlop által meghatározott Q′ részmátrix az 1.5 lemma miatt nem-szinguláris, és éppen z-t definiálja a kívánt módon. •

Következmény 2.49 Tetszőleges egyenlőtlenség-rendszernek legfeljebb csak véges sok erős bázis-megoldása van. •

2.6.2 Az iránymenti korlátosság feltétele

Következő célunk megmutatni, hogy ha egy egyenlőtlenség-rendszer megoldható, akkor van erős bázis-megoldása is. Valójában ennél többet is belátunk. Az ideális az lenne, ha igazolni tudnánk, hogy tetszőleges c vektorra és z ∈ R megoldásra mindig létezik olyan x^{∗} bázis-megoldás, amelyre cx^{∗} ≥ cz, vagyis x^{∗} a max cx célfüggvény szempontjából legalább olyan jó, mint z. Sajnos ez az állítás már egy dimenzióban sem igaz. Tekintsük ugyanis az x ≥ 0 egyenlőtlenséget (ahol x most egyetlen változót jelöl). Ennek egyetlen bázis-megoldása van, az x = 0. Így a c = 1 (egydimenziós) vektor esetén az x = 1 ponthoz nincs nála jobb bázis-megoldás.

A bajt az okozza, hogy cx nem korlátos felülről az R-en. Emiatt érdemes megvizsgálni, hogy ez miként fordulhat elő. Könnyű megfigyelni, hogy a nem korlátosságnak egyik (és amint később majd kiderül az egyetlen) lehetséges oka, ha létezik olyan q vektor, amelyre cq > 0, Qq ≤ 0. Ekkor cx valóban nem korlátos felülről R-en, hiszen bármely pozitív λ számra z + λq is eleme R-nek, és cq > 0 miatt c(z + λq) bármilyen nagy lehet. A következő lemma tartalma az, hogy ha az ilyen q vektorok létezését kizárjuk, akkor az előbbi példával illusztrált baj már nem fordulhat elő.

Lemma 2.50 Legyen z a Qx ≤ b egyenlőtlenség-rendszernek egy megoldása, és c egy n-dimenziós vektor. Ha nem létezik olyan q vektor, amelyre cq > 0, Qq ≤ 0, akkor Qx ≤ b-nek létezik olyan x^{∗} bázis-megoldása, amelyre cx^{∗} ≥ cz.

(Megjegyzés. A lemma megfordítása nem igaz, vagyis előfordulhat, hogy mind q, mind x^{∗} létezik. Ha például R = {(z_{1}, z_{2}) : −z_{2} ≤ 0, z_{2} ≤ 0} a sík vízszintes tengelye, úgy minden megoldás egyúttal bázis-megoldás is, és ezért x^{∗} := z választással cx^{∗} = cz teljesül. Ugyanakkor z := (0, 0), q = (1, 0), c = (1, 0) esetén cq = 1 és Qq = 0).

Biz. A Q_{z}^{<} sorai száma szerinti indukció. Ha ez a szám nulla, úgy z maga bázis-megoldás, tehát jó lesz x^{∗}-nak. Tegyük fel, hogy z nem bázis-megoldás. Ez azt jelenti, hogy Q_{z}^{<}-nek van olyan sora, amely lineárisan független a Q_{z}^{=} soraitól, és emiatt az 1.9 tételből adódóan létezik olyan q, amelyre Q_{z}^{=}q = 0, Q_{z}^{<}q ≠ 0. Tekintsük az x_{λ} := z + λq vektort (λ ≥ 0).

1. eset cq = 0. Feltehető, hogy Q_{z}^{<}-nek van olyan _{i}q sora, amelyre _{i}qq > 0, mert különben q-t a negatívjával helyettesíthetjük. Kicsiny λ-ra x_{λ} benne van R-ben, míg nagy λ-ra, _{i}qq > 0 miatt, nincsen. Így van olyan λ′ érték, amelyre x_{λ′} ∈ R és x_{λ′} több egyenlőtlenséget teljesít egyenlőséggel, mint z. [Nevezetesen λ′ a maximális olyan λ érték, amelyre Q_{z}^{<}x_{λ} ≤ b_{z}^{<} teljesül, vagyis λ′ = min((b_{z}(i) − _{i}qz)/ _{i}qq : _{i}q a Q_{z}^{<} olyan sora, amelyre iqq > 0).] Miután Q_{x_{λ′}}^{<} -nek kevesebb sora van, mint Q_{z}^{<}-nek, az indukciós feltevést alkalmazhatjuk x_{λ′}-re. Így létezik egy olyan x^{∗} bázis-megoldás, amelyre cx^{∗} ≥ cx_{λ′} = cz + c(λq) = cz.

2. eset cq ≠ 0. Feltehető, hogy cq > 0, mert ha nem, q-t a negatívjával helyettesítjük. Amennyiben Q_{z}^{<}q ≤ 0, úgy q léte ellentmond a lemma feltevésének. Ha viszont van olyan _{i}q sora Q_{z}^{<}-nak, amelyre _{i}qq > 0, akkor ugyanúgy járunk el, mint az első esetben: indukció alapján létezik olyan x^{∗} bázis-megoldás, amelyre cx^{∗} ≥ cx_{λ′} = cz + c(λq) > cz. (Az utolsó egyenlőtlenség érdekében kellett q-t úgy választanunk, hogy cq pozitív legyen.) •

Hasznos tudatosítani, hogy a bizonyítás algoritmikus abban az értelemben, hogy a szóbanforgó x^{∗}-t a Gauss-elimináció segítségével polinom időben kiszámíthatjuk. A lemmát c = 0-ra alkalmazva visszakapjuk a 2.12 tételt bázis-megoldás létezéséről. A fő eredményt először speciális alakban fogalmazzuk meg.

TÉTEL 2.51 (Az iránymenti korlátossági tétele, speciális alak) Tegyük fel, hogy az R := {x : Qx ≤ b} poliéder nemüres, és legyen c egy n-dimenziós vektor. A következők ekvivalensek.

(0) A {cx} lineáris függvény R-n felülről korlátos.

(1) Minden z ∈ R elemre létezik Qx ≤ b-nek olyan x^{∗} erős bázis-megoldása, amelyre cx^{∗} ≥ cz.

(2) Nem létezik olyan q vektor, amelyre cq > 0 és Qq ≤ 0.

(3) Létezik olyan y ≥ 0 vektor, amelyre yQ = c.

Biz. Először is figyeljük meg, hogy a (2) és (3) feltételek ekvivalenciája nem más, mint a balról szorzással felírt Farkas lemma standard alakja.

Mivel a 2.49 következmény alapján csak véges sok erős bázis-megoldás van, (1) implikálja (0)-t. (0)-ból rögtön következik (2). Igazoljuk most a (2) → (1) irányt. A 2.50 lemmából tudjuk, hogy létezik olyan x^{∗} bázis-megoldás, amelyre cx^{∗} ≥ cz. Válasszuk x^{∗}-t olyannak, amelynek maximálisan sok 0 komponense van. Állítjuk, hogy x^{∗} erős bázis-megoldás. Tegyük fel indirekt, hogy ez nem igaz, vagyis az x^{∗} nemnulla komponenseinek megfelelő Q-beli oszlopok lineárisan összefüggőek. Ez azt jelenti, hogy létezik egy olyan q ≠ 0 vektor, amelyre Qq = 0 és x^{∗}(i) = 0 esetén q(i) = 0. Feltehetjük, hogy cq ≥ 0, különben q-t a minusz egyszeresével helyettesítjük. A (2)-ből következik, hogy valójában cq = 0. Most alkalmas λ-ra x_{λ}^{∗} := x^{∗} + λqnak több nulla komponense lesz, mint x^{∗}-nak, továbbá x_{λ}^{∗} is bázis-megoldás, amely cx^{∗} = cx_{λ}^{∗} miatt ellentmond x^{∗} választásának. • Következmény 2.52 Ha az R = {x : Qx ≤ b} poliéder nemüres, és {cx : x ∈ R} felülről korlátos, úgy max{cx : x ∈ R} létezik (azaz létezik olyan z ∈ R, amelyre cz = sup{cx : x ∈ R}).

Biz. A 2.49 tétel szerint véges sok erős bázis-megoldás van. A 2.51 tételből adódóan a maximum ezek egyikén felvétetik. •

Megjegyzés A 2.51 tétel három jellemzést is ad {cx : x ∈ R} felülről való korlátosságára. Az első tartalma az, hogy a maximum felvétetik (véges sok erős bázis-megoldás van). A második könnyen ellenőrizhető okot mutat a nemkorlátosságra (Qq ≤ 0 miatt z_{λ} = z + λq ∈ R, így cq > 0 miatt cz_{λ} bármilyen nagy lehet.) Végül a harmadik jellemzés könnyen ellenőrizhető okot mutat a korlátosságra (y ≥ 0, yQ = c esetén minden x ∈ R-ra cx = (yQ)x = y(Qx) ≤ yb, magyarán az yb érték egy konkrét felső korlát.)

Következmény 2.53 Ha egy egyenlőtlenség-rendszer megoldható, akkor van erős bázis-megoldása is.

Biz. A 2.51 tételben c = 0-ra (0) fennáll, így a tétel alapján (1) is. •

Az irodalomban gyakran Caratheodory tételnek hívják a 2.53 következménynek az {Ax = b, x ≥ 0} alakra vonatkozó speciális esetét, ami szerint, ha van megoldás, akkor van olyan is, amelynek a nem-nulla komponenseihez tartozó A-beli oszlopok lineárisan függetlenek.

Alkalmazhatjuk a Farkas lemma balról szorzással felírt általános alakját (2.37 tétel) a 2.51 tétel kiterjesztésére arra az esetre, amikor az R poliéder a

P x_{0} + Ax_{1} = b_{0}, Qx_{0} + Bx_{1} ≤ b_{1}, x_{1} ≥ 0  (2.31)

egyenlőtlenség-rendszer megoldás-halmazát jelöli.

TÉTEL 2.54 (Az iránymenti korlátossági tétele) Tegyük fel, hogy az R poliéder nemüres, és legyen c = (c_{0}, c_{1}) adott vektor. A következők ekvivalensek.

(0) A {cx} lineáris függvény R-n felülről korlátos.

(1) Minden z ∈ R elemre létezik (2.31)-nek olyan x^{∗} erős bázis-megoldása, amelyre cx^{∗} ≥ cz.

(2) Nem létezik olyan q = (q_{0}, q_{1}) vektor, amelyre cq > 0, és q_{1} ≥ 0, P q_{0} + Aq_{1} = 0, Qq_{0} + Bq_{1} ≤ 0.

(3) Létezik olyan y = (y_{0}, y_{1}) vektor, amelyre

y_{0}P + y_{1}Q = c_{0}, y_{0}A + y_{1}B ≥ c_{1}, y_{1} ≥ 0. •  (2.32)

lin15 2004. december 15.

2.7 OPTIMALITÁS: A DUALITÁS TÉTEL

Korábban megvizsgáltuk, hogy egy R poliéder mikor nemüres, majd azt, hogy egy cx lineáris célfüggvény mikor korlátos felülről R-n. Most rátérünk a lineáris programozás fő kérdésének tárgyalására: amennyiben R nemüres és {cx : x ∈ R} korlátos felülről, hogyan jellemezhetjük a cx-t maximalizáló pontokat és a maximum értékét. Röviden, maximalizáljuk cx-t az R poliéder felett:

max{cx : x ∈ R}  (2.33)

A (2.33) feladatot lineáris programnak nevezzük. Természetesen a poliéder lehet más alakban is megadva, szorozhatunk balról, és maximalizálás helyett szerepelhet minimalizálás (lásd a (2.49) és a (2.50) alakokat). Miután R nemüres és cx felülről korlátos R-n, a 2.51 tétel alapján jogos (2.33)-ben maximumról beszélni.

Geometriailag egy lineáris program azt jelenti, hogy a c vektor irányában keressük az R legtávolabbi pontját, vagyis azt a pontot, amelyben egy c normálisú hipersík, ha kívülről a poliéderhez toljuk, azt megérinti. Speciális eset, amikor a c egy egységvektor (például c = (0, 0, …, 0, 1), ekkor a lineáris programozás feladata úgy interpretálható, hogy egy poliédernek a legmagasabb pontját kell megkeresni. Ez igen egyszerűnek látszik, ráadásul az általános c esete egyszerű fogással ilyen alakra hozható. Mégsem ismert olyan hatékony (polinomiális futásidejű) eljárás, amely a Gauss-eliminációhoz hasonló egyszerű lépésekből áll. (Az olyan ismert polinomiális algoritmusok mint az ellipszoid módszer vagy az ún. belső pontos módszerek bonyolultabb apparátust igényelnek.) Egy egyenlőtlenség-rendszer megoldására szolgáló Fourier-Motzkin eljárás ilyen egyszerű lépésekből áll, és könnyen módosítható is egy lineáris program megoldására, de nem hatékony. A szimplex algoritmussal a következő részben fogunk megismerkedni. Ez az FM eljáráshoz hasonlít abban, hogy egyszerű lépésekből áll és matematikai értelemben nem hatékony. A gyakorlatban ugyanakkor igen jól használható.

2.7.1 Optimalitási feltételek

Egy lineáris programmal kapcsolatban fontos kérdés, hogy létezik-e olyan egyszerűen ellenőrizhető eszköz, amelynek segítségével a poliéder egy megadott x^{∗} elemének optimalitásáról gyorsan meggyőződhetünk. Amennyiben x^{∗} nem optimális, egy olyan eszköz is kívánatos, amelynek segítségével az x^{∗}-nál a poliédernek egy jobb eleméhez tudunk hozzájutni (x jobb: cx > cx^{∗}).

Legyen x^{∗} az R = {x : Qx ≤ b} egy adott eleme. Azt mondjuk, hogy egy x′ irány x^{∗}-nál lehetséges elmozdulás, ha van olyan (kicsiny) pozitív λ szám, amelyre x^{∗} + λx′ ∈ R. Ha ráadásul cx′ > 0, akkor x′-t növelő iránynak hívjuk (c-re és x^{∗}-re nézve). Egyszerű megfigyelni, hogy x′ pontosan akkor lehetséges elmozdulás, ha Q_{x^{∗}}^{=}x′ ≤ 0.

TÉTEL 2.55 Tegyük fel, hogy az R := {x : Qx ≤ b} poliéder nemüres és {cx : x ∈ R} felülről korlátos. Az R egy megadott x^{∗} elemére a következő állítások ekvivalensek.

(1) cx^{∗} ≥ cx minden x ∈ R, azaz x^{∗} maximalizálja a cx függvényt az R-n (röviden, x^{∗} optimális).

(2) Nem létezik növelő irány, azaz olyan x′ vektor, amelyre Q_{x^{∗}}^{=}x′ ≤ 0 és cx′ > 0.

(3) A c vektor benne van x^{∗} aktív sorainak kúpjában. Más szóval, van olyan y^{∗} vektor, amely kielégíti az

y^{∗} ≥ 0, y^{∗}Q = c  (2.34)

duális feltételt, és amelyre fennáll az

y^{∗}(i) > 0 ⇒ _{i}qx^{∗} = b(i)  (2.35)

optimalitási kritérium (ami szavakban: az y^{∗} bármely komponense csak akkor lehet pozitív, ha a neki megfelelő primál egyenlőtlenséget x^{∗} egyenlőséggel teljesít). (2.34) fennállása esetén (2.35) azzal ekvivalens, hogy

cx^{∗} = by^{∗},  (2.36)

továbbá azzal, hogy

y^{∗}(b − Qx^{∗}) = 0.  (2.37)

Biz. (1) ⇒ (2) Ha létezik a szóbanforgó x′, akkor kicsiny pozitív λ-ra az x^{∗} + λx′ vektor R-ben van, ami cx′ > 0 miatt ellentmond cx^{∗} maximalitásának.

(2) ⇒ (3) Ha nem létezik a szóbanforgó x′, akkor a Farkas lemma (balról szorzós alakja) miatt van olyan y′ ≥ 0, amelyre y′Q_{x^{∗}}^{=} = c, így y′-t nulla komponensekkel kiegészítve egy (2.35)-t kielégítő y^{∗}-t kapunk.

(3) ⇒ (1) Tetszőleges x ∈ R esetén

cx = (y^{∗}Q)x = y^{∗}(Qx) ≤ y^{∗}b,  (2.38)

vagyis az y^{∗}b érték felső korlát {cx : x ∈ R}-re. Ebből adódik, hogy egy x^{∗} ∈ R elem bizonyosan optimális, ha (2.38)-t egyenlőséggel teljesíti. Másrészt (2.35),(2.36), (2.37) mindegyike azzal ekvivalens, hogy x^{∗} egyenlőséggel teljesíti (2.38). •

Az előbbi bizonyítás lépéseinek a másolásával kiterjeszthetjük a tételt az általános alakra.

Gyakorlat 2.26 Igazoljuk, hogy egy általános R = {(x_{0}, x_{1}) : x_{1} ≥ 0, P x_{0} + Ax_{1} = b_{0}, Qx_{0} + Bx_{1} ≤ b_{1}} alakban megadott poliéder x^{∗} = (x_{0}^{∗}, x_{1}^{∗}) elemére az x′ = (x′_{0}, x′_{1}) vektor x′ iránya pontosan akkor lehetséges elmozdulás, ha P x′_{0} + Ax′_{1} = 0 és Qx′_{0} + Bx′_{1} ≤ 0, és x_{1}^{∗}(i) = 0 esetén x′_{1}(i) ≥ 0.

TÉTEL 2.56 Tegyük fel, hogy a

P x_{0} + Ax_{1} = b_{0}, Qx_{0} + Bx_{1} ≤ b_{1}, x_{1} ≥ 0  (2.39)

rendszerrel definiált R poliéder nemüres és {cx = c_{0}x_{0}+c_{1}x_{1} : x ∈ R} felülről korlátos. Legyen x^{∗} = (x_{0}^{∗}, x_{1}^{∗}) az R egy eleme, és jelölje (Q_{x^{∗}}^{=}, B_{x^{∗}}^{=}) a (Q, B) mátrix azon sorai által alkotott részmátrixot, amelyekre a hozzájuk tartozó egyenlőtlenségeket x^{∗} egyenlőséggel teljesíti, míg b_{1∗}^{=} jelölje a b_{1} megfelő részét. A következő állítások ekvivalensek.

(1) cx^{∗} ≥ cx minden x ∈ R, azaz x^{∗} maximalizálja a cx függvényt az R-n (röviden, x^{∗} optimális).

(2) Nem létezik növelő irány, azaz olyan x′ = (x′_{0}, x′_{1}) vektor, amelyre cx′ > 0,

P x_{0} + Ax_{1} = b_{0}, Q_{x^{∗}}^{=}x_{0} + B_{x^{∗}}^{=}x_{1} ≤ b_{1∗}^{=}  (2.40)

és

x_{1}^{∗}(i) = 0 ⇒ x′_{1}(i) ≥ 0.  (2.41)

(3) Létezik olyan y^{∗} = (y_{0}^{∗}, y_{1}^{∗}) vektor, amely kielégíti az

y_{1}^{∗} ≥ 0, y_{0}^{∗}P + y_{1}^{∗}Q = c_{0}, y_{0}^{∗}A + y_{1}^{∗}B ≥ c_{1}  (2.42)

duális feltételt, és amelyre fennáll az

x_{1}^{∗}(j) > 0 ⇒ y_{0}^{∗}a_{j} + y_{1}^{∗}b_{j} = c_{1}(j)  (2.43)

valamint az

y_{1}^{∗}(i) > 0 ⇒ _{i}qx_{0}^{∗} + _{i}bx_{1} = b_{1}(i),  (2.44)

optimalitási kritérium. (2.42) fennállása esetén az optimalitási kritérium azzal ekvivalens, hogy

cx^{∗} = by^{∗},  (2.45)

és azzal, hogy

y^{∗}(b − Mx^{∗}) = 0,  (2.46)

ahol M = ( \begin{matrix}P & A \\ Q & B \end{matrix} ).

Megjegyzés Az optimalitási kritérium szavakkal kifejezve azt jelenti, hogy egy előjelkötött x_{1}^{∗}(j) primál változó vagy y_{1}^{∗}(i) duál változó csak akkor lehet pozitív, ha a neki megfelelő duál vagy primál egyenlőtlenség egyenlőséggel teljesül.

Biz. (1) ⇒ (2) Ha létezik a szóbanforgó x′, akkor kicsiny pozitív λ-ra a x^{∗} + λx′ vektor R-ben van, ami cx′ > 0 miatt ellentmond x^{∗} maximalitásának.

(2) ⇒ (3) Jelölje P′ a (P, A) mátrix azon részmátrixát, amely a P -ből és azon A-beli a_{i} oszlopokból áll, amelyekre x_{1}^{∗}(i) > 0, és legyen A′ az A maradék része. (Tehát (P′, A′) = (P, A)). Álljon Q′ a Q_{x^{∗}}^{=} mátrixból kiegészítve a B_{x^{∗}}^{=} azon oszlopaival, amelyekre az x_{1}^{∗} megfelelő komponensei pozitívak, és legyen B′ a B_{x^{∗}}^{=} maradék része. (Tehát (Q′, B′) = (Q_{x^{∗}}^{=}, B_{x^{∗}}^{=})). Analóg módon definiáljuk (c′_{0}, c′_{1})-t.

Ha (2) szerint nem létezik a szóbanforgó x′, akkor a Farkas lemma 2.37 tételben megfogalmazott alakja szerint van olyan (y_{0}, y_{1}), amelyre y_{1} ≥ 0, y_{0}P + y_{1}Q_{x^{∗}}^{=} = c′_{0}, y_{0}A + y_{1}B_{x^{∗}}^{=} ≥ c′_{1}. Legyen y_{0}^{∗} := y_{0}, és legyen y_{1}^{∗} az a vektor, amelyet y_{1}-ből kapunk nulla komponensek hozzávételével (éspedig annyival, ahány sora Q_{x^{∗}}^{<}-nek van). Az így kapott (y_{0}^{∗}, y_{1}^{∗}) vektor kielégíti a duál feltételeket és az optimalitási kritériumot.

(3) ⇒ (1) Tetszőleges x ∈ R esetén

cx = c_{0}x_{0} + c_{1}x_{1} ≤ [(y_{0}^{∗}, y_{1}^{∗}) ( \begin{matrix}P \\ Q \end{matrix} )]x_{0} + [(y_{0}^{∗}, y_{1}^{∗}) ( \begin{matrix}A \\ B \end{matrix} )]x_{1} = (y^{∗}M)x =  (2.47)
= y^{∗}(Mx) = y_{0}^{∗}[P x_{0} + Ax_{1}] + y_{1}^{∗}[Qx_{0} + Bx_{1}] ≤ y_{0}^{∗}b_{0} + y_{1}^{∗}b_{1} = y^{∗}b,  (2.48)

vagyis az y^{∗}b érték felső korlát {cx : x ∈ R}-re. Ebből adódik, hogy az x^{∗} ∈ R elem bizonyosan optimális,

ha (2.47) és (2.48) mindegyike egyenlőséggel teljesül. Az első azt jelenti, hogy c_{1}x_{1} = (y_{0}^{∗}, y_{1}^{∗}) ( \begin{matrix}A \\ B \end{matrix} ) x_{1}^{∗},

ami pontosan akkor áll fenn, ha x_{1}^{∗}(j) > 0 esetén y_{0}^{∗}a_{i} + y_{1}^{∗}b_{i} = c_{1}(i), azaz (2.43) teljesül. Az x^{∗} akkor teljesíti (2.48)-t egyenlőséggel, ha y_{1}^{∗}[Qx_{0}^{∗} + Bx_{1}^{∗}] = y_{1}^{∗}b_{1}, ami pontosan akkor áll fenn, ha y_{1}^{∗}(i) > 0 esetén iqx_{0}^{∗} +_{i} bx_{1}^{∗} = b_{1}(i), azaz (2.44) teljesül.

Másrészt (2.45), (2.46) mindegyike azzal ekvivalens, hogy x^{∗} mind (2.47)-t, mind (2.48)-t egyenlőséggel teljesíti. •

Megjegyezzük, hogy a 2.56 tétel bizonyítására alternatív lehetőség a 2.55 tételből a korábban már megismert átalakításokkal jutni az általános alakra.

Gyakorlat 2.27 Írjuk fel az optimalitási feltételeket a max{cx : Ax = b, x ≥ 0}, max{cx : Bx ≤ b, x ≥ 0} lineáris programokra.

2.7.2 A dualitás tétel

A korlátossági tételben láttuk, hogy ha cx felülről korlátos az R = {x : Qx ≤ b} nemüres poliéderen, akkor tetszőleges olyan y vektorra, amelyre y ≥ 0, yQ = c a by érték felső korlát {cx : x ∈ R} maximumára. A legjobb (ilyen típusú) felső korlátot az ilyen by értékek minimuma jelenti. Érdekes, hogy a legkisebb felső korlát meghatározásának feladata, vagyis a min{by : y ≥ 0, yQ = c} problémája is egy (balról szorzással felírt) lineáris program, amit duális programnak hívunk, megkülönböztetendő a max{cx : Qx ≤ b} primál programtól. A kérdésre, hogy az így kapott legjobb korlát vajon mindig elérhető-e, másszóval hogy a primál optimum és a duál optimum érteke mindig megegyezik-e, a dualitás tétel adja meg a választ.

TÉTEL 2.57 (Dualitás tétel, szimmetrikus alak) Tegyük fel, hogy az R = {x : Qx ≤ b} primál poliéder nemüres. Tegyük fel továbbá, hogy {cx : x ∈ R} felülről korlátos (ami a 2.51 tétel szerint azzal ekvivalens, hogy a duális R^{∗} = {y : y ≥ 0, yQ = c} poliéder nemüres). Ekkor a primál optimalizálási feladatban a maximum egyenlő a duál feladatban szereplő minimummal, azaz max{cx : Qx ≤ b} = min{by : y ≥ 0, yQ = c}.

Biz. Ha x ∈ R és y ∈ R^{∗}, akkor cx = (yQ)x = y(Qx) ≤ yb, és így max ≤ min következik. Az egyenlőség igazolásához egy olyan x^{∗} ∈ R és y^{∗} ∈ R^{∗} primál és duál megoldás-párt kell találnunk, amelyekre cx^{∗} = by^{∗}. Az 2.52 következmény szerint, ha {cx : x ∈ R} felülről korlátos, akkor a maximum egy x^{∗} erős bázis-megoldáson felvétetik. A 2.55 tétel szerint létezik olyan y^{∗} ∈ R^{∗} vektor, amelyre y^{∗}(b − Qx^{∗}) = 0, amiből y^{∗}b = cx^{∗} következik. •

A dualitás tételt is megfogalmazhatjuk az általános alakra. A primál probléma a következő:

max{(c_{0}x_{0} + c_{1}x_{1}) : P x_{0} + Ax_{1} = b_{0}, Qx_{0} + Bx_{1} ≤ b_{1}, x_{1} ≥ 0}.  (2.49)

A primál problémához hozzárendelt duális lineáris program a következő:

min{(c_{0}y_{0} + c_{1}y_{1}) : y_{0}P + y_{1}Q = c_{0}, y_{0}A + y_{1}B ≥ c_{1}, y_{1} ≥ 0}.  (2.50)

A (2.50)-ban szereplő poliédert R^{∗}-gal jelöljük és duális poliédernek hívjuk. (Figyelem: R^{∗} az m := m_{1}+m_{2} dimenziós térben van, míg R az n := n_{1} + n_{2} dimenziósban. Az R^{∗} nem csak az R primál poliédertől függ, hanem a c-től is, sőt az R megadásától is!)

TÉTEL 2.58 (Dualitás tétel) Tegyük fel, hogy a (2.49) rendszer által definiált R primál poliéder nemüres. Tegyük fel továbbá, hogy a cx = c_{0}x_{0}+c_{1}x_{1} célfüggvényre nézve {cx : x ∈ R} felülről korlátos (vagy ekvivalensen a duális R^{∗} poliéder nemüres). Ekkor a (2.49) primál optimalizálási feladatban a maximum egyenlő a (2.50) duál feladatban szereplő minimummal.

A speciális alakhoz hasonlóan, a tétel a 2.56 tételből közvetlenül adódik.

Feladat 2.28 Irjuk fel a dualitás tételt max{cx : Bx ≤ b, x ≥ 0} illetve a max{cx : Ax = b, x ≥ 0} primál lineáris programokra.

Feladat 2.29 Irjuk fel a min{α : Ax − αb = b, (x, α) ≥ 0} lineáris program duálisát, igazoljuk mind a primál, mind a duál rendszer megoldhatóságát, és a dualitás tételből vezessük le a Farkas lemmát (2.30 tétel).

Feladat 2.30 Tegyük fel, hogy az {x : Ax = b, x ≥ 0} poliéder nemüres. Az A egy a_{i} oszlopát érdektelennek mondjuk, ha a poliéder minden x elemére x(i) = 0. Igazoljuk, hogy a_{i} akkor és csak akkor érdektelen, ha van olyan y vektor, amelyre yb = 0, yA ≥ 0 és ya_{i} pozitív.

Azt mondjuk, hogy egy c′x célfügvény vagy a c′ vektor valamely R poliéderre nézve neutrális (semleges), ha R minden x elemére c′x értéke ugyanaz. Két vektort (célfüggvényt) akkor mondunk ekvivalensnek, ha különbségük neutrális.

Feladat 2.31 Tekintsük a min{cx : Ax = b, x ≥ 0} lineáris programot. Legyen A′ az A érdekes oszlopai által alkotott részmátrix és jelölje c′ a c megfelelő részét. Igazoljuk, hogy c akkor és csak akkor neutrális, ha létezik olyan y, amelyre yA′ = c′.

Feladat 2.32 Az R := {Ax = b, x ≥ 0} poliéder valamely x_{0} eleme akkor és csak akkor minimalizálja cx-t R-n, ha létezik egy olyan c-vel ekvivalens nemnegatív vektor, amely merőleges x_{0}-ra.

Feladat 2.33 Tekintsük az R := {x : Ax ≤ b, x ≥ 0} primál és R^{∗} = {y : yA ≥ c, y ≥ 0} duál poliédereken definiált max{cx : x ∈ R} és min{by : y ∈ R^{∗}} primál-duál lineáris program párt, és tegyük fel, hogy R és R^{∗} nem üres. Igazoljuk, hogy az A-nak van olyan A′ nemszinguláris részmátrixa (mindegy milyen méretű), amelyre az A′x′ = b′ egyértelmű x′ megoldásából nullák hozzávételével keletkező x_{1} eleme R-nek (ahol b′ azon része b-nek, amely az A′ sorainak felel meg) továbbá az y′A′ = c′ egyértelmű y′ megoldásából nullák hozzávételével keletkező y_{1} eleme R^{∗}-nak. Mutassuk meg, hogy x_{1} primál optimum, y_{1} duál optimum.

A megelőző szakaszban megmutattuk, hogy a dualitás tétel miképp vezethető le a Farkas lemmából és abból a tételből, hogy a maximum (erős bázis-megoldáson) felvétetik. A lineáris és logikai következményre vonatkozó 2.38 tétel bizonyítása csak a Farkas lemmára támaszkodott. Most megmutatjuk, hogy a dualitás tétel könnyen levezethető a 2.38 tételből.

TÉTEL 2.59 (Dualitás tétel, szimmetrikus alak) Tegyük fel, hogy mind az R := {x : Bx ≤ b, x ≥ 0} primál, mind az R^{∗} := {y : yB ≥ c, y ≥ 0} duál poliéder nemüres. Ekkor cx ≤ by fennáll minden x ∈ R, y ∈ R^{∗} esetén, és van olyan x^{∗} ∈ R, y^{∗} ∈ R^{∗}, melyekre egyenlőség érvényes, azaz max{cx : x ∈ R} = min{by : y ∈ R^{∗}}.

Biz. Az x és y nem-negativitása miatt x ∈ R, y ∈ R^{∗} esetén cx ≤ (yB)x = y(Bx) ≤ yb, így mindenesetre cx felülről korlátos R-n, by pedig alulról R^{∗}-n. Legyen γ_{s} := sup{cx : x ∈ R} és γ_{i} := inf{by : y ∈ R^{∗}}. Ekkor tetszőleges x ∈ R, y ∈ R^{∗} esetén cx ≤ γ_{s} ≤ γ_{i} ≤ by. A tételhez azt kell belátnunk, hogy létezik x^{∗} ∈ R, amelyre cx^{∗} = γ_{i} és létezik y^{∗} ∈ R^{∗}, amelyre by^{∗} = γ_{s}. Szimmetria miatt elég y^{∗} létezését belátnunk, x^{∗}-é analóg módon következik.

Most tehát a cx ≤ γ_{s} egyenlőtlenség logikai következménye a Bx ≤ b, x ≥ 0 egyenlőtlenség-rendszernek, így a 2.38 tétel szerint létezik olyan y^{∗} ≥ 0, amelyre y^{∗}B ≥ c és y^{∗}b ≤ γ_{s}. De itt nem szerepelhet szigorú egyenlőtlenség, mert akkor y^{∗}b < γ_{s} ≤ γ_{i} ellentmondana γ_{i} definíciójának. Tehát valóban y^{∗}b = γ_{s}. •

Megjegyzendő, hogy megfordítva, a 2.38 tétel is közvetlenül adódik a dualitás tételből. Nézzük ehhez a technikailag legegyszerűbb Qx ≤ b esetet, és tegyük fel, hogy a cx ≤ γ logikai következmény. Ez azt jelenti, hogy max{cx : Qx ≤ b} ≤ γ, így a dualitás tétel miatt γ ≥ max{cx : Qx ≤ b} = min{yb : y ≥ 0, yQ = c}. Vagyis létezik olyan y ≥ 0, amelyre yQ = c és γ ≥ yb.

2.7.3 Következmények

A játékelméletben fontos alkalmazásra lel a következő tétel. Egy vektor tetején értsük a legnagyobb komponensének az értékét. A vektor alja legyen a legkisebb komponensének az értéke.

TÉTEL 2.60 (Neumann) Tetszőleges m × n-es (m, n ≥ 1) A mátrixra az A oszlopvektorai által feszített politopban lévő elemek tetejének a minimuma egyenlő az A sorvektorai által feszített politopban lévő elemek aljának maximumával. Formálisabban, min{(max Ax) : x ≥ 0, e_{n}x = 1} = max{(min yA) : y ≥ 0, e_{m}y = 1}, ahol e_{i} az i-dimenziós csupa egyesből álló vektort jelenti.

Biz. A primál feladat egy olyan minimális w szám keresésével ekvivalens, amelyre létezik x ≥ 0 vektor úgy, hogy e_{n}x = 1 és Ax ≤ (w, w, …, w) érvényes. Ez viszont éppen a

min{w : −Ax + (w, w, …, w) ≥ 0, x ≥ 0, e_{n}x = 1}  (2.51)

lineáris programmal egyenértékű.

A duális feladat egy olyan maximális z szám keresésével ekvivalens, amelyre létezik y ≥ 0 vektor úgy, hogy e_{m}y = 1 és yA ≥ (z, z, …, z) érvényes. Ez viszont éppen a

max{z : y(−A) + (z, z, …, z) ≤ 0, y ≥ 0, e_{m}y = 1}  (2.52)

lineáris programmal egyenértékű. Miután a (2.52) program duálisa éppen a (2.51) program, így a dualitás tételből adódik, hogy a w minimális értéke egyenlő a z maximális értékével. •

TÉTEL 2.61 (Clark) Tekintsük a max{cx : x ≥ 0, Bx ≤ b} és min{by : y ≥ 0, yB ≤ c} primál-duál program párt, és tegyük fel, hogy mindegyik megoldható. Ekkor az R primál és az R^{∗} duál poliéderek közül az egyik nem korlátos.

Biz. Amennyiben a {Bx ≤ 0, x ≥ 0, −1x ≤ −1} rendszernek létezik egy x′ megoldása, akkor bármely x ∈ R vektorra x + λx′ minden pozitív λ-ra R-ben van, és mivel x′ ≠ 0, így R nemkorlátos. Ha a kérdéses x′ nem létezik, akkor a Farkas lemma szerint van olyan y′ ≥ 0 vektor és α ≥ 0 szám, melyekre y′B − (α, …, α) ≥ 0, és y′b − α < 0. Ekkor a duál poliéder bármely y elemére y + λy′ minden pozitív λ-ra R^{∗}-ban van, és mivel y′ ≠ 0, így R^{∗} nem korlátos. •

lin16 2004. december 15.

2.8 POLIÉDEREK ELŐÁLLÍTÁSA

2.8.1 Oldalak

Egy poliéder oldalát a 2.2.2 részben definiáltuk, mint a poliédernek az a része, amely egy hipersíkkal érintkezik, amikor azt kivülről a poliéderhez toljuk. E definíció előnye, hogy szemléletes, ugyanakkor nem könnyű vele dolgozni. Például nem látszanak olyan elvárt tulajdonságok, minthogy két oldal nemüres metszete oldal, vagy hogy egy oldal oldala az eredeti poliédernek is oldala. Ezen segít a következő tétel, amely megmondja, hogy a poliéder egy konkrét egyenlőtlenség-rendszerrel történő megadásán miképp tükröződik az oldal fogalma.

TÉTEL 2.62 Az R = {x : Qx ≤ b} poliéder egy nemüres F részhalmaza akkor és csak akkor oldala R-nek, ha létezik a Q bizonyos soraiból álló olyan Q′ részmátrix, amelyre F = {x ∈ R : Q′x = b′}, ahol b′ a Q′ sorainak megfelelő részvektora b-nek.

Biz. Tegyük fel, hogy F oldal, melyet (2.1) definiál. Tekintsük a min{yb : yQ = c, y ≥ 0} duális lineáris programnak egy y′ optimális megoldását. Legyen Q′ a Q azon_{i}q soraiból álló részmátrix, amelyekre a megfelelő y′(i) komponens pozitív. Tetszőleges x ∈ R-re cx = (y′Q)x = y′(Qx) ≤ y′b. A dualitás tételből következik, hogy egy x′ ∈ R vektor akkor és csak akkor primál optimum (azaz eleme F -nek), ha az y′ minden pozitív komponensére a neki megfelelő primál feltétel egyenlőséggel teljesül (azaz y′(i) > 0-ból _{i}qx = b(i) következik.) Így tehát F = {x ∈ R : Q′x = b′}.

Fordítva, legyen Q′ a Q bizonyos sorai által alkotott mátrix, és b′ a b megfelelő része, amelyekre {x ∈ R : Q′x = b′} nemüres. Legyen e′ a csupa egyes vektor, amelynek annyi komponense van, mint ahány sora Q′-nek. Jelölje c a Q′ sorainak összegét (azaz c = e′Q′), míg δ a b′ komponenseinek összegét (δ := e′b′). Most cx = (e′Q′)x = e′(Q′x) ≤ e′b′ = δ. Ebből adódóan valamely x vektorra x ∈ R, Q′x = b′ akkor és csak akkor teljesül, ha x ∈ R, cx = δ, amiből a tétel következik. •

Tekintsük az R := {x : P x = b_{0}, Qx ≤ b_{1}} nemüres poliédert. Az alábbiakban megvizsgáljuk az R néhány tulajdonságát a

P x = b_{0}, Qx ≤ b_{1}  (2.53)

leíró rendszer függvényében.

A Qx ≤ b rendszer egy qx ≤ β egyenlőtlenségéről azt mondjuk, hogy implicit egyenlőség, ha R minden eleme egyenlőséggel teljesíti (azaz, ha a fordított qx ≥ β egyenlőtlenség logikai következménye az Rt meghatározó rendszernek. Geometrialilag ez azt jelenti, hogy az R poliéder teljesen az {x : qx = β} hipersíkban fekszik.) Az implicit egyenlőségek által alkotott egyenlőség-rendszert Q^{=}x = b^{=}-vel jelöljük. Egy nem implicit egyenlőtlenséget valódinak mondunk, és az általuk alkotott rendszert Q^{<}x ≤ b_{1}^{<}-vel jelöljük. (Az explicit P x = b_{1} egyenlőség-rendszer tagjait automatikusan implicit egyenlőségeknek tekintjük.)

A Qx ≤ b_{1} egyenlőtlenség-rendszer egyik qx ≤ β tagját feleslegesnek nevezzük (a (2.53)-re nézve), ha az elhagyásával keletkező rendszer ugyanazt a poliédert definiálja. (Másszóval, qx ≤ β logikai következménye annak a rendszernek, amelyet (2.53)-ból kapunk qx ≤ β kihagyásával.) Egy nem felesleges egyenlőtlenség neve lényeges. Hasonlóképpen beszélhetünk arról, hogy egy P x = b_{0}-beli egyenlőség lényeges vagy felesleges annak megfelelően, hogy kihagyása R-nél bővebb poliédert eredményez-e vagy R-t változatlanul hagyja.

Egy poliéder leírásából egymás után kihagyva az (aktuálisan) felesleges egyenlőtlenségeket és egyenlőségeket olyan leírást kapunk, amelyben már minden egyenlőség és egyenlőtlenség lényeges. A kapott rendszer persze függhet az elhagyás sorrendjétől, hiszen egy eredetileg felesleges egyenlőtlenség egy másik elhagyásakor lényegessé válhat. Például, ha a poliéder a három dimenziós tér egy e egyenese, amely három (különböző) e-t tartalmazó sík metszeteként van adva, akkor e ezek közül bármelyik kettő metszeteként is megadható. Azt is feltehetjük, hogy minden szereplő qx ≤ β egyenlőtlenség valódi, mert különben helyettesíthetjük az qx = β explicit egyenlőséggel. Nevezzük az R poliéder (2.53) alakú leírását minimálisnak, ha minden egyenlőség és egyenlőtlenség lényeges és minden egyenlőtlenség valódi. Látjuk tehát, hogy létezik minimális leírás.

Lemma 2.63 Ha qx ≤ β valódi és lényeges egyenlőtlensége (2.53)-nek, akkor R-nek van olyan z pontja, amelyre qz = β.

Biz. Miután qx ≤ β valódi, létezik olyan x′ ∈ R, amelyre qx′ < β. Miután qx ≤ β lényeges, létezik olyan x′′, amely (2.53) rendszerből a qx ≤ β egyenlőtlenséget megsérti, de a többit mind kielégíti. Az x′x′′ szakasz egyik vége R-ben van, másik nincs, így a szakasznak van olyan z pontja, amely R-ben van és qz = β. •

TÉTEL 2.64 Tegyük fel, hogy az R poliéder egy minimális (2.53) alakú rendszerrel van adva. A következő állítások ekvivalensek.

(i) R affin altér. (ii) R-nek nincs valódi oldala. (iii) Minden lényeges egyenlőtlenség implicit egyenlőség (azaz Q üres).

Biz. Tegyük fel, hogy R affin altér. Ekkor van {x : Ax = d} alakú leírása. A 2.62 tétel szerint az oldal fogalma nem függ a poliéder leíró rendszerétől. Mivel itt csak egyenlőségek szerepelnek, R-nek nem lehet valódi oldala.

Tegyük most fel, hogy (ii) teljesül. Ha indirekt (iii) nem állna, akkor a (2.53)-ben létezne egy qx ≤ β valódi, lényeges egyenlőtlenség. Ehhez R-nek van olyan x′ pontja, amelyre qx′ < β, és a 2.63 lemma szerint olyan z pontja is, amelyre qz = β. De ekkor {x ∈ R : qx = β valódi (nemüres) oldala lenne R-nek.

A (iii)→(i) irány triviális. •

Miután minimális oldalnak nincsen valódi oldala, az előző tételből kapjuk:

Következmény 2.65 Minden minimális oldal affin altér. •

Hasznos a következő lemma.

Lemma 2.66 Az R poliédernek van olyan eleme, amely minden valódi egyenlőtlenséget szigorúan teljesít.

Biz. Minden valódi egyenlőtlenséghez van R-nek olyan eleme, amely azt szigorúan teljesíti. Ezen elemek számtani közepe (vagy bármely pozitív együtthatós konvex kombinációja) R-ben van és valamennyi valódi egyenlőtlenséget szigorúan teljesíti. •

TÉTEL 2.67 Tegyük fel, hogy (2.53) minimális leírása R-nek. Az R akkor és csak akkor van benne egy H := {x : ax = β} hipersíkban (másszóval ax = β akkor és csak akkor logikai következménye (2.53)-nek), ha létezik olyan y_{0}, amelyre y_{0}P = a és y_{0}b_{0} = β (azaz, ax = β lineáris következménye P x = b_{0}-nak.)

Biz. Ha létezik y_{0}, akkor persze R minden x elemére ax = β, azaz R benne van a H hipersíkban. Tegyük most fel, hogy R benne van H-ban, azaz mind az ax ≤ β, mind az ax ≥ β egyenlőlenség logikai következménye a (2.53) rendszernek. Korábban láttuk (2.38 tétel), hogy ha ax ≤ β logikai következmény, akkor létezik olyan y = (y_{0}, y_{1}), amelyre y_{1} ≥ 0, y_{0}P + y_{1}Q = a, és yb ≤ β. Itt nem állhat szigorú egyenlőtlenség, hiszen akkor ax < β is következne (2.53)-ből, holott ax ≥ β következik. Tehát yb = β.

Belátjuk, hogy y_{1} = 0. Valóban, a 2.66 lemma szerint R-nek van olyan x_{0} eleme, amelyre Qx_{0} ≪ b_{1}. Mivel x_{0} ∈ R ⊆ H, így β = qx_{0} = (y_{0}P + y_{1}Q)x_{0} = y_{0}(P x_{0}) + y_{1}(P x_{0}) ≤ y_{0}b_{0} + y_{1}b_{1} = yb = β. Szükségképpen az egyenlőtlenség egyenlőséggel teljesül, ami Qx_{0} ≪ b_{1} miatt azt jelenti, hogy y_{1} = 0. •

Feladat 2.34 Igazoljuk, hogy ha egy nemüres poliéder minimális leírásában lévő px = β egyenlőséget helyettesítjük a px ≤ β, −px ≤ −β egyenlőtlenségekkel, akkor ezek lényegesek.

Jelölje Q_{F}^{=} a Q azon sorai által alkotott részmátrixot, amelyeknek megfelelő egyenlőtlenséget az F minden eleme egyenlőséggel teljesíti. Ezeket hívjuk implicit F -egyenlőségeknek.

Lemma 2.68 Tegyük fel, hogy R egy minimális (2.53) rendszerrel van megadva. Legyen F az R-nek egy oldala. Legyen Q′ a Q-nak egy m′ × n-es részmátrixa. A Q′ által meghatározott F′ := {x ∈ R : Q′x = b′_{1}} oldal akkor és csak akkor ugyanaz mint F, ha Q′ része Q_{F}^{=}-nek és r(Q′) = r(Q_{F}^{=}).

Biz. Tegyük fel először, hogy F = F′. Miután F -nek a 2.66 lemma alapján van olyan eleme, amely minden valódi F -egyenlőtlenséget szigorúan teljesít, ezért a Q′x ≤ b′_{1} minden sora implicit F -egyenlőség, azaz Q′ része Q_{F}^{=}-nek. Ha indirekt r(Q′) < r(Q_{F}^{=}), akkor van olyan x′, amelyre Q′x′ = 0, és a Q_{F}^{=} valamely _{i}q sorára iqx′ < 0. Ekkor kicsiny pozitív ε-ra és az F′ valamely z elemére a z + εx′ pont F′-ben van, de szigorúan teljesíti a _{i}qx ≤ b(i) egyenlőtlenséget, ellentmondásban ennek implicit F -egyenlőség voltával.

A fordított irányhoz tegyük fel, hogy Q′ részmátrixa Q_{F}^{=}-nek és r(Q′) = r(Q_{F}^{=}). Mivel F minden z elemére Q_{F}^{=}z = b_{F}^{=}, így Q′z = b′ és ezért F ⊆ F′. Az F′ ⊆ F tartalmazás igazolásához legyen x′ ∈ F′ és legyen z ∈ F. r(Q′) = r(Q_{F}^{=}) miatt az Q_{F}^{=} tetszőleges _{i}q sorához létezik y, amelyre _{i}q = yQ′. Ekkor iqx′ = (yQ′)x′ = y(Q′x′) = yb′ = y(Q′z) = (yQ′)z =_{i} qz = b(i), tehát Q_{F}^{=}x′ = b_{F}^{=}, azaz x′ ∈ F, és így F′ ⊆ F. •

Most már abban a helyzetben vagyunk, hogy pontosan megmondjuk a bázis-megoldások geometriai jelentését.

TÉTEL 2.69 A Qx ≤ b egyenlőtlenség-rendszer egy megoldása akkor és csak akkor bázis-megoldás, ha eleme az R = {x : Qx ≤ b} poliéder egy minimális oldalának.

Biz. Tekintsük az R = {x : Qx ≤ b} poliéder egy minimális F oldalát. Amint láttuk, F affin altér, ezért F = {x : Q_{F}^{=}x = b_{F}^{=}}. Az F minimalitásából következik, hogy F minden x elemére Q_{F}^{<}x ≪ b_{F}^{<}. Tehát F tetszőleges z elemére éppen a Q_{F}^{=}x ≤ b_{F}^{=} rendszer az, amelynek tagjait a z egyenlőséggel teljesíti.

Állítjuk, hogy r(Q) = r(Q_{F}^{=}). Valóban, ha a _{j}q sor lineárisan független volna Q_{F}^{=} soraitól, akkor volna olyan x′, amelyre Q_{F}^{=}x′ = 0, _{j}qx′ = 1. De ekkor egyrészt f + λx′ tetszőleges λ-ra teljesíti a Q_{F}^{=}x = b_{F}^{=} egyenlőséget, azaz benne van F -ben, és így R-ben is, másrészt viszont alkalmas λ-ra f + λx′ nem teljesíti az _{j}qx ≤ b(j) egyenlőtlenséget, azaz még sincs R-ben. Ez az ellentmondás mutatja, hogy r(Q) = r(Q_{F}^{=}), tehát az F minden eleme valóban bázis-megoldás.

Legyen most z bázis-megoldás és tekintsük a Qx ≤ b rendszernek a z által egyenlőséggel teljesített Q_{z}^{=}x ≤ b_{z}^{=} részét. Tekintsük az F_{z} := {x : Qx ≤ b, Q_{z}^{=}x = b_{z}^{=}} oldalát R-nek. Belátjuk, hogy ez minimális oldal. Ha indirekt létezne valódi oldala, akkor az Qx ≤ b rendszerben volna olyan qx ≤ β egyenlőtlenség, amelyre qz < β, de F_{z} valamely x′ elemére qx′ = β. Miután z bázis-megoldás, r(Q) = r(Q_{z}^{=}), és így létezik egy y′, amelyre q = y′Q_{z}^{=}. De akkor 0 = β − β > qx′ − qz = q(x′ − z) = (y′Q_{z}^{=})(x − z) = y′(Q_{z}^{=}x) − y′(Q_{z}^{=}z) = y′b′ − y′b′ = 0, amely ellentmondás mutatja, hogy F_{z}-nek nem lehet valódi oldala. •

2.8.2 Dimenzió, lapok

Egy altér dimenziója a belőle kiválasztható lineárisan független elemek maximális száma. A Z affin altér, definíció szerint, egy altér eltoltja. Az első fejezetben szerepelt, hogy az affin altér előállítható Z = {x : Qx = b} alakban és az altér, amelynek eltolásából Z keletkezett egyértelmű, éspedig {x : Qx = 0} (ami tehát Z karakterisztikus altere). A Z affin altér dimenziója az őt meghatározó altér dimenziója. Például a pont nulla dimenziós, az egyenes egy dimenziós, stb. Affin alterek metszete is affin altér, feltéve, hogy nem üres. Az is rögtön látszik, hogy minden affin altér hipersíkok metszete (egy hipersík valamely qx = β egyenlet megoldás halmaza.)

Az {x : Qx = 0} altér tekinthető a Q sorai által generált altér ortogonális kiegészítő alterének, így ennek dimenziója n − r(Q). Ebből kapjuk, hogy az {x : Qx = b} affin altér dimenziója n − r(Q). Egy tetszőleges R^{n}-beli R nemüres halmaz dimenzióján az R-t tartalmazó legszűkebb affin altér dimenzióját értjük. (A legszűkebb affin altér nem más, mint az R-t tartalmazó affin elterek metszete.)

TÉTEL 2.70 Tegyük fel, hogy a nemüres R poliédert definiáló (2.53) rendszer minimális. Ekkor a legszűkebb R-t tartalmazó affin altér Z := {x : P x = b_{0}}

Biz. Nyilvánvaló, hogy R ⊆ Z_{R}. Tegyük fel indirekt, hogy létezik egy Z_{R}-nél szűkebb affin altér, amely tartalmazza R-t. Ekkor van olyan H := {x : qx = β} hipersík, amelyre R ⊆ H, Z_{R} ⊈ H. A 2.67 tétel szerint R ⊆ H azt jelenti, hogy létezik y_{0}, amelyre q = y_{0}P és β = y_{0}b_{0}, amiből következik, hogy bármely olyan x′-re, amelyre Q^{=}x′ = b^{=} teljesül, fennáll qx′ = β, azaz Z_{R} ⊆ H, ellentmondás. •

Következmény 2.71 Az R = {x : Qx ≤ b} nemüres poliédert tartalmazó legszűkebb affin altér Z_{R} := {x : Q^{=}x = b^{=}} , ahol Q^{=} jelöli az implicit egyenlőségeknek megfelelő részmátrixot. A poliéder dimenziója n − r(Q^{=}). •

A tételt alkalmazhatjuk a poliéder egy F oldalára.

Következmény 2.72 Az R = {x : Qx ≤ b} poliéder egy F oldalát tartalmazó legszűkebb affin altér {x : Q_{F}^{=}x = b_{F}^{=}}. Az F oldal dimenziója n − r(Q_{F}^{=}). Minimális oldal dimenziója n − r(Q). •

Egy c vektort illetve az általa meghatározott cx célfüggvényt akkor mondjuk semlegesnek (vagy neutrálisnak) az R =: {x : Qx ≤ b} poliéderre nézve, ha R minden x elemére cx értéke ugyanannyi. A semleges vektorok nyilván alteret alkotnak, melyet jelöljünk S_{R}-rel.

TÉTEL 2.73 A semleges vektorok S_{R} altere éppen a Q-t tartalmazó legszűkebb Z_{R} affin altér A_{R} karakterisztikus alterének ortogonális kiegészítője. Egy c vektor akkor és csak akkor semleges, ha benne van Q^{=} sorterében.

Biz. A 2.71 tétel szerint A_{R} = {x : Q^{=}x = 0}. Mivel Q^{=} sortere {x : Q^{=}x = 0} altér ortogonális kiegészítője, a tétel két állítása egymással ekvivalens.

Ha c = yQ^{=} valamilyen y-ra, azaz c benne van A_{R}-ben, akkor nyilván R minden x elemére cx = (yQ^{=})x = y(Q^{=}x) = yb^{=}. Mivel a jobboldal független x-től, c valóban semleges. Fordítva, ha c nincs benne Q^{=} sorterében, akkor létezik egy olyan x′, amelyre Q^{=}x′ = 0 és cx′ ≠ 0. Az R egy x_{0} elemére és kicsiny λ > 0 számra x_{0} + λx′ benne van R-ben. Mivel cx′ ≠ 0, kapjuk, hogy cx_{0} ≠ c(x_{0} + λx′), azaz c nem semleges. •

Egy poliéder két csúcsát nevezzük szomszédosnak, ha az összekötő szakaszuk a poliéder oldala. (Három dimenzióban ez annak felel meg, hogy az összekötő szakaszuk a poliédernek éle.)

TÉTEL 2.74 Az R = {x : Qx ≤ b} csúcsos poliéder u és v csúcsaira a következők ekvivalensek.

(i) u és v szomszédosak. (ii) A Q azon soraiból alkotott Q_{uv}^{=} részmátrix, melyeknek megfelelő egyenlőtlenségeket mind u, mind v egyenlőséggel teljesíti, n − 1 rangú. (iii) Léteznek Q-nak olyan Q_{u} és Q_{v} n × n-es nemszinguláris részmátrixai, amelyekre u a Q_{u}x = b_{u} rendszer, míg v a Q_{v}x = b_{v} rendszer egyértelmű megoldásai, és amelyeknek n − 1 soruk közös.

Biz. (i) → (ii) Legyenek u és v szomszédosak, vagyis az összekötő F szakaszuk oldal. Ekkor F előáll F = {x : Qx ≤ b, Q_{F}^{=}x = b_{F} } alakban. Mivel szakasz dimenziója 1, a 2.72 következményből kapjuk, hogy r(Q_{F}^{=}) = n − 1. Mivel u, v benne vannak F -ben, így Q_{uv}^{=} tartalmazza Q_{F}^{=}-t, tehát r(Q_{uv}^{=}) ≥ n − 1. Itt egyenlőségnek kell állnia, mert ha r(Q_{uv}^{=}) = n volna, akkor a Q_{uv}^{=}x = b_{uv} = rendszernek nem lehetne két különböző megoldása (mármint u és v.) (ii) → (iii) Válasszunk ki a Q_{uv}^{=} mátrixnak n − 1 lineárisan független sorát, majd ezt egészítsük ki a Q_{u}^{=} egy sorával egy nemszinguláris Q_{u} mátrixszá, illetve a Q_{v}^{=} egy sorával egy nemszinguláris Q_{v} mátrixszá. A Q_{u}x = b_{u} rendszernek ekkor létezik egyértelmű megoldása és u megoldása, és ugyanígy Q_{v}x = b_{v}-nek v a megoldása. (iii) → (i) Az n − 1 közös sor által alkotott mátrixot jelöljük Q′-vel. Ekkor az F := {x : Qx ≤ b, Q′x = b′} poliéderben u is, v is benne van, tehát F oldala R-nek, melynek dimenziója 1, vagyis F az u-t és v-t összekötő szakasz. •

Fentebb láttuk, hogy az implicit egyenlőségek éppen az R-t tartalmazó legszűkebb affin alteret határozzák meg. Mi a valódi egyenlőtlenségek geometriai tartalma?

TÉTEL 2.75 Tegyük fel, hogy a {P x = b_{0}, Qx ≤ b_{1}} rendszer minimális, és hogy az R megoldás halmaz nemüres. Ekkor az R-t tartalmazó legszűkebb affin altér {x : P x = b_{0}}. Továbbá egy-egy értelmű kapcsolat áll fenn az R lapjai és a Qx ≤ b_{0} egyenlőtlenségei között, azaz {x ∈ R : _{i}qx = b_{1}(i)} lapot alkot, és minden lap előáll ilyen alakban.

Biz. Először tegyük fel, hogy F lapja R-nek. Ekkor F = {x ∈ R : Q_{F}^{=}x = b_{F}^{=}}. Mivel F ⊂ R, létezik egy x_{0} ∈ R − F pont. Ez az Q_{F}^{=}x ≤ b_{F}^{=} rendszer egyik qx ≤ β egyenlőtlenségét szigorúan teljesíti: qx_{0} < β. Tehát qx ≤ β a Qx ≤ b rendszernek valódi egyenlőtlensége, így F′ := {x ∈ R : qx = β} valódi oldala R-nek, amely tartalmazza F -t, és miután F tartalmazásra nézve maximális oldal, F = F′ következik. Tehát R lapja előáll a kívánt alakban.

Megfordítva, tegyük fel, hogy qx ≤ β a Qx ≤ b rendszernek valódi egyenlőtlensége. Jelölje Q′x ≤ b′ azt a részét Q^{<}x ≤ b^{<}-nak, amelyet az qx ≤ β kihagyásával kapunk. A feltevés szerint qx ≤ β lényeges, így létezik x_{2} ∈ R, amelyre Q′x_{2} ≤ b′ és qx_{2} > β. Másrészt láttuk már, hogy létezik olyan x_{1} ∈ R, amelyre Q^{<}x_{1} ≪ b^{<}. Az x_{1} és x_{2} alkalmas konvex kombinációját véve kapjuk, hogy létezik olyan x_{0} ∈ R, amelyre Q′x_{0} < b′ és qx_{0} = β. Ebből következik, hogy F := {x ∈ R : qx = β} valódi oldal. Mivel pedig egyetlen olyan eredetileg valódi egyenlőtlenség van, amely implicit F -egyenlőség, F maximális valódi oldal. •

Következmény 2.76 Minden valódi oldal lapok metszete. •

Következmény 2.77 Tegyük fel, hogy mind a {P x = b_{0}, Qx ≤ b_{1}} rendszer, mind a {P′x = b′_{0}, Q′x ≤ b′_{1}} rendszer minimális. Az ezek által definiált nemüres R és R′ poliéderek akkor és csak akkor egyenlők, ha P és P′ sortere ugyanaz, továbbá a Qx ≤ b_{1} és Q′x ≤ b′_{1} rendszer egyenlőtlenségei között egy-egy értelmű kapcsolat van, amelyben az egymásnak megfelelő qx ≤ β és q′x ≤ β′ egyenlőtlenségekre fennáll, hogy a (q, β) − (q′, β′) vektor benne van a (P, b_{0}) mátrix sorterében (ami ugyanaz, mint a (P′, b′_{0}) mátrix sortere). •

Feladat 2.35 Egy poliéder minden lapjának dimenziója eggyel kisebb, mint a poliéder dimenziója.

lin17 2004. december 15.

2.9 A SZIMPLEX ALGORITMUS

2.9.1 Megengedettség

Ebben a szakaszban megismerkedünk a Farkas lemma illetve a dualitás tétellel kapcsolatos fő algoritmikus eredményekkel. Azt már korábban láttuk, hogy a Fourier-Motzkin eljárás segítségével egy R poliédernek véges sok lépésben megtalálhatunk egy elemét, amennyiben R nem üres. Ez az eljárás azonban, szemben a Gauss eliminációval, nem polinomiális futásidejű és a gyakorlati tapasztalatok is kedvezőtlenek. Egy lineáris célfüggvény poliéder feletti optimalizálására is van véges algoritmus, hiszen ha cx felülről korlátos, akkor a maximum erős bázis-megoldáson is felvétetik, és ezekből csak véges sok van. Ezzel a megközelítéssel az a baj, hogy erős bázis-megoldásból igen sok lehet (exponenciálisan sok). Például, ha a poliéder, amely felett a cx célfüggvényt akarjuk maximalizálni, egy n-dimenziós egységkocka kocka, azaz {x : 0 ≤ x ≤ 1}, akkor ezt a feladatot mind a 2^{n} csúcs cx szerinti sorbarendezésével már a nem túlságosan nagy n = 100-as méretnél sincs semmilyen esélyünk megoldani, a legjobb számítógépet használva sem, ugyanakkor a problémát ránézésre rögtön meg lehet oldani.

A szimplex algoritmus George Dantzigtól származik. Az a lényege, hogy a poliéder csúcsait szisztematikusan, javuló sorrendben tekinti át. Óriási felhalmozott tapasztalat mutatja, hogy a szimplex algoritmus a gyakorlatban hatékony, tipikusan lineáris számú csúcs átvizsgálása után megtalálja az optimumot. Annál szomorúbb, hogy konstruáltak olyan példa sorozatot, ahol a szimplex algoritmus végiglátogatja az összes, exponenciálisan sok csúcsot, mielőtt az optimálisat megtalálná. Ez azt jelenti, hogy matematikai szempontból a szimplex algoritmus nem tekinthető hatékonyabbnak, mint a durva, összes csúcsot számba vevő algoritmus. (Kimutatták azonban, hogy ha nem a legrosszabb előforduló esettel akarjuk az algoritmus hatékonyságát mérni, hanem az átlagos lépésszámot tekintjük, akkor a szimplex algoritmus polinomiális futás idejű.)

Kezdjük a Farkas lemmával, annak a 2.35 tételben megfogalmazott erősebb változatával, amely tehát azt mondja ki, hogy az {Ax = b, x ≥ 0} primál és az {yA ≥ 0, yb = −1} duál feladatok közül pontosan az egyiknek van bázis-megoldása:

TÉTEL 2.78 Az {Ax = b, x ≥ 0} rendszernek akkor és csak akkor van olyan megoldása, amelyben az x pozitív változóinak megfelelő A-beli oszlopok lineárisan függetlenek, ha nem létezik olyan y, amelyre yA ≥ 0, yb < 0 és A-nak létezik r(A, b) − 1 lineárisan független oszlopa, amelyekre y merőleges. (Tömören, vagy a primál vagy a duál feladatnak létezik bázis-megoldása). •

Bizonyítás a szimplex algoritmussal. Már a Farkas lemma bizonyításánál láttuk, hogy a két lehetőség kizárja egymást. Azt látjuk be algoritmikusan, hogy legalább az egyik lehetőség fennáll. A Gauss-eliminációval először eldöntjük, hogy az Ax = b rendszernek van-e egyáltalán megoldása. Ha nincs, akkor a Gauss-elimináció egy olyan y vektort szolgáltat, amelyre yA = 0 és yb ≠ 0. Itt −1-gyel történő esetleges szorzás után feltehetjük, hogy yb < 0 azaz a második alternatívára jutottunk.

Tegyük fel tehát, hogy Ax = b megoldható. Feltehetjük, hogy A sorai lineárisan függetlenek, mert ha nem, akkor az A soraiból kiválasztunk r(A) lineárisan lineárisan független sort (ezt valójában a Gauss-elimináció már meg is tette), és csak az ezek által alkotott részmátrixszal dolgozunk tovább. Válasszunk ki az A oszlopaiból egy B_{1} bázist (ami tehát egy m × m-es nemszinguláris részmátrix). Tekintsük a B_{1}x = b egyértelmű megoldását (amit tehát az előbbi Gauss-elimináció meghatározott), és egészítsük ki nullákkal. Így az Ax = b egy x_{1} megoldását kapjuk. Ha x_{1} nemnegatív, akkor ez az Ax = b, x ≥ 0 egy bázis-megoldását alkotja.

Tegyük fel most, hogy x_{1}-nek van negatív komponense. (Az alapalgoritmus itt egy tetszőleges negatív komponenst választ. Példával kimutatható, hogy ilyenkor az algoritmus végtelen ciklusba eshet, ezért ennek elkerülésére indokolt valamilyen megkötést tenni.) Jelölje i_{1} a legkisebb indexet, amelyre x_{1}(i_{1}) < 0. (Ez a Bland féle legkisebb index szabály). Legyen y_{1} olyan vektor, amely B minden oszlopára merőleges, kivéve, hogy y_{1}a_{i_{1}} = 1. (Az yB_{1} = d minden m-dimenziós d-re egyértelműen megoldható.) Most q = 1-re

y_{q}b = y_{q}(Ax_{q}) = (y_{q}A)x_{q} = x_{q}(i_{q}) < 0.  (2.54)

Amennyiben minden a_{i}-re y_{1}a_{i} ≥ 0, úgy a duális feladat bázis-megoldását kaptuk.

Tegyük fel tehát, hogy valamely j_{1} indexre y_{1}a_{j_{1}} < 0 és válasszuk j_{1}-t a lehető legkisebbnek. (Ismét a legkisebb index szabályt alkalmazzuk). Természetesen ekkor a_{j_{1}} nincs a B_{1} bázisban, és az is látható, hogy B_{1}-ben a_{i_{1}}-t a_{j_{1}}-re cserélve egy másik bázist kapunk, amit jelöljünk B_{2}-vel. (Valóban, az a_{j_{1}} vektor nem függhet lineárisan a B_{1}-nek a_{i_{1}}-től különböző oszlopaitól, hiszen az y_{1} vektor ezen utóbbiak mindegyikére merőleges, míg a_{j_{1}}-re nem.) Iteráljuk az eljárást most a B_{2} bázissal kezdve, ameddig csak lehet.

Igazolnunk kell, hogy az eljárás véges sok lépésben véget ér. Tegyük indirekt fel, hogy nem ez a helyzet. Mivel csak véges sok bázis-megoldás van, lesznek olyan oszlopvektorok, melyek időről időre ki- majd újra bekerülnek a bázisba. Legyen a_{r} a legnagyobb ilyen indexű. Tehát az r-nél nagyobb indexű oszlopok egy bizonyos időponttól fogva már nem változtatják helyzetüket: vagy egyszer és mindenkorra benn vannak a bázisban, vagy kívül. Legyen egy ezutáni pillanatban B_{p} egy olyan előforduló bázis, amelyben a_{r} benne van, de B_{p+1}-ben nincs. Legyen B_{q} (q > p) egy olyan későbbi bázis, amelyben a_{r} nincs benne, de B_{q+1}-ben benne van. Ekkor tudjuk, hogy y_{q} a B_{q+1} minden oszlopára merőleges, kivéve a_{r}-t, amelyre y_{q}a_{r} < 0. A második választási szabályból az is következik minden a_{r} előtti a_{i} oszlopra (azaz i < r-re), hogy y_{q}a_{i} ≥ 0.

Az első választási szabály miatt x_{p} minden r-nél kisebb indexű komponense nem-negatív. Így tehát az 1 ≤ i < r indexekre (y_{q}a_{i})x_{p}(i) ≥ 0 és (y_{q}a_{r})x_{p}(r) > 0. A B_{q} mátrixnak egyetlen olyan a_{j} oszlopa van, amelyre y_{q} nem merőleges, de mivel éppen ez az oszlop esik ki a B_{q} bázisból, az a_{j} szükségképpen megelőzi a_{r}-t. Tehát y_{q} merőleges a B_{q}-nak a_{r} utáni oszlopaira, de mivel az r-nél nagyobb indexű oszlopokon a B_{q} és a B_{p} bázis megegyezik (itt használva r maximális választását), y_{q} merőleges B_{p} minden r-nél nagyobb indexű oszlopára. Így felhasználva (2.54)-t, kapjuk, hogy 0 > y_{q}b = y_{q}(Ax_{p}) = (y_{q}A)x_{p} ≥ 0, és ez az ellentmondás a tételt és egyúttal az algoritmus végességét is bizonyítja. •

Az algoritmus általánosabb alakban is használható. Például, ha a {P x_{0} + Ax_{1} = b, x_{1} ≥ 0} rendszer megoldhatóságát akarjuk eldönteni, akkor az előző eljárást a következőképpen kell módosítani. A kezdeti B_{1} bázist úgy határozzuk meg, hogy a P maximálisan sok lineárisan független oszlopát egészítjuk ki A oszlopaiból r(P, A) darab lineárisan független oszloppá. Az eljárást úgy módosítjuk, hogy csak az A-beli bázis elemeket cserélhetjük, a kezdeti B_{1} bázis P -ből kiválasztott elemei végig fixen maradnak. Rögtön látható, hogy az így módosított eljárás új bizonyítást ad a 2.36 tételre. A még általánosabb 2.34 alakra is kiterjeszthető az algoritmus, ha a tétel bizonyításában leírt visszavezetést alkalmazzuk. Megállapíthatjuk tehát, hogy a fenti eljárás bármely alakban adott lineáris egyenlőtlenség-rendszer megoldására alkalmas.

Miért hívják a fenti algoritmust szimplex algoritmusnak? Az m-dimenziós térben, ha veszünk úgy m + 1 pontot, hogy ezek egyike sincs benne a többi konvex burkában, akkor az m + 1 pont konvex burka definíció szerint egy szimplexet alkot. Egy dimenzióban ez egy szakasz, két dimenzióban háromszög, három dimenzióban tetraéder.

Tegyük fel például, hogy a síkban adottak a p_{1}, …, p_{n} pontok, és el akarjuk dönteni, hogy ezek konvex burkában benne van-e egy megadott b′ pont. Egyszerűség kedvéért tegyük fel, hogy nincs három pont egy egyenesen. Készítsünk el egy 2 × n-es A′ mátrixot, melynek i-edik oszlopa a p_{i} pont koordinátáit tartalmazza. Legyen A az a mátrix, amely A′-ből keletkezik egy csupa egyesből álló harmadik sor hozzávételével. A b′- t is egészítsük ki egy egyessel egy három dimenziós b vektorrá. Ekkor a feladat azzal ekvivalens, hogy az {Ax = b, x ≥ 0} rendszernek van-e megoldása. Egy bázis-megoldáshoz tartozó három oszlopvektor három olyan p_{i} pontnak felel meg, amelyek egy b′-t tartalmazó háromszöget alkotnak. Egy duális bázis-megoldás egy olyan egyenesnek felel meg (miért?), amely két p_{i} ponton átmegy, és az általa meghatározott egyik zárt félsík tartalmazza az összes p_{i} pontot, de nem tartalmazza b′-t. Mármost a szimplex algoritmus ezen a geometriai nyelven a következőképpen fut. Induljunk ki egy tetszőleges B_{1}-gyel jelölt háromszögből, melynek csúcsai mondjuk p_{1}, p_{2}, p_{3}. Állapítsuk, meg, hogy b′ benne van-e B_{1}-ben. Ha benne van akkor készen vagyunk: b′ benne van a p_{i} pontok konvex burokában. Ha b′ nincs benne a háromszögben, akkor a háromszögnek az egyik e_{1} oldalegyenese, mondjuk p_{2}p_{3}, elválasztja b′-t p_{1}-től. (A háromszögnek egy vagy két ilyen elválasztó oldalegyenese lehet, a b′ elhelyezkedésétől függően: az általános algoritmus ezek egyikét választja, a Bland féle szabály pontosan előírja, hogy melyiket kell választani.) Amennyiben az e′ egyenes által határolt, a b′-t tartalmazó nyílt félsíkban nincsen p_{i} pont, akkor készen vagyunk; megkaptuk az elválasztó egyenest. Ha van, mondjuk a p_{4} pont, akkor p_{1}-t becseréljük p_{4}-re és a keletkező {p_{2}, p_{3}, p_{4}} háromszöggel folytatva iteráljuk az eljárást.

A fenti algoritmus szemléletesen tehát azt jelenti, hogy a p_{i} pontok által alkotott háromszögek segítségével mintegy letapogatjuk a sík egy darabját, és eközben vagy ráakadunk a b′ pontra vagy megtalálunk egy elválasztó egyenest. Magasabb dimenzióban ez azt jelenti, hogy a p_{i} pontjaiból készített szimplexekkel tapogatjuk le a teret, hogy megtaláljuk a b′ pontot. Innen tehát az elnevezés.

A következő példa mutatja, hogy ha a futás során nem alkalmazzuk a Bland féle szabályt, akkor az algoritmus ciklizálhat. Legyen b′ az origó és n = 6. Az origó középpontú egységkörön legyen p_{1}, p_{3}, p_{5} egy egyenlő oldalú háromszög három csúcsa. i = 1, 2, 3-ra a p_{2i−1} pontot az origóval összekötő szakasz felező pontját az origó körül az óramutató járásával ellentétesen egy csöppnyit elforgatva kapjuk a p_{2i} pontot. Ha most B_{i} jelöli a p_{i}, p_{i+1}, p_{i+2} pontok által alkotott háromszöget (modulo 6 tekintve), akkor a szimplex algoritmus egymás után ezen háromszögeket választhatja (ezt ellenőrizzük le!), amíg vissza nem ér a kiindulási B_{1}-be.

Feladat 2.36 Hol tér el először az előbbi példában a szimplex algoritmus, ha ugyanazzal a B_{1} háromszöggel kezdünk és alkalmazzuk a Bland féle legkisebb index szabályt?

Feladat 2.37 Tegyük fel, hogy csak a bázisba bekerülő új oszlop kiválasztásánál alkalmazzuk a legkisebb index szabályt, a bázisból kikerülő oszlop meghatározásánál nem. Ciklizálhat-e ilyenkor az algoritmus vagy már ilyenkor is bizonyíthatóan mindig véges lesz?

Feladat 2.38 Tekintsük a Farkas lemma következő alakját: Az yA ≤ c rendszernek pontosan akkor nincs megoldása, ha létezik olyan x ≥ 0, amelyre Ax = 0 és cx < 0. Tegyük fel, hogy A sorai lineárisan függetlenek. Igazoljuk, hogy a következő algoritmus véges. (A bizonyításban vagy a fenti bizonyítás lépéseit imitáljuk, vagy pedig azt mutassuk ki, hogy az alábbi algoritmus nem más, mint a fenti algoritmus adaptációja):

Legyen B_{1} az A egy m×m-es nemszinguláris részmátrixa és legyen y_{1} az yB_{1} = c_{B_{1}} egyértelmű megoldása. Amennyiben y_{1}A ≤ c, akkor készen vagyunk, megtaláltuk a kívánt y-t. Ha y_{1}A ≰ c, úgy legyen a_{j} az A mátrix legkisebb indexű oszlopa, amelyre y_{1}a_{j} < c(j). Tekintsük a B_{j}x = −a_{j} egyértelmű x′_{1} megoldását, és jelölje x_{1} azt a vektort, amely x′_{1}-ből keletkezik az x_{1}(j) helyen 1-gyel, a többin pedig 0-val kiegészítve. Ekkor Ax_{1} = 0 és cx_{1} = c_{B_{1}}x′_{1} + c(j) = (y_{1}B_{1})x′_{1} + c(j) < (y_{1}B_{1})x′_{1} + y_{1}a_{j} = (y_{1}A)x_{1} = 0. Így ha x_{1} ≥ 0, akkor x_{1} teljesíti a Farkas lemma második alternatíváját. Amennyiben x_{1} ≱ 0, úgy legyen i a legkisebb index, amelyre x_{1}(i) < 0, és cseréljük ki a B_{1}-beli a_{i} oszlopot az a_{j} oszlopra. A keletkező B_{2} mátrixszal folytatva iteráljuk az eljárást.

Feladat 2.39 Terjesszük ki a fenti algoritmust a Farkas lemma következő változatára. Az {yP = c_{0}, yA ≤ c_{1}} rendszernek pontosan akkor nincs megoldása, ha létezik olyan x = (x_{0}, x_{1}), amelyre (P, A)x = 0, x_{1} ≥ 0 és cx < 0.

2.9.2 Optimalizálás

Térjünk rá arra, hogy a fenti eljárás hogyan használható a min{cx : Ax = b, x ≥ 0} primál lineáris program és max{by : yA ≤ c} duális lineráris program megoldására. Jelölje R := {x : Ax = b, x ≥ 0) a primál, R^{∗} := {y : yA ≤ c} pedig a duál poliédert. Feltesszük, hogy A sorai lineárisan függetlenek, ami azt jelenti, hogy R^{∗} csúcsos.

A megengedettségre vonatkozó szimplex algoritmussal először megkeresünk R^{∗}-nak egy y_{0} csúcsát (azaz yA ≤ c egy bázis-megoldását). (Az R^{∗} poliéder csúcsos, hiszen A sorai lineárisan függetlenek.) Amennyiben R^{∗} üres, úgy az eljárás egy olyan x′ ≥ 0 vektort szolgáltat, amelyre Ax′ = 0, cx′ < 0, és ilyenkor vagy a primál poliéder is üres, vagy ha van is egy x_{0} pontja, akkor x_{0} + λx′ minden pozitív λ-ra R-ben van, így cx nem korlátos alulról. Ekkor tehát az algoritmus futása befejeződik.

Tegyük fel tehát, hogy rendelkezésünkre áll y_{0}. Jelölje A_{0}^{=} az A-nak azon a_{i} oszlopai által alkotott részmátrixát, amelyekre y_{0}a_{i} = c(i), míg a maradék oszlopok részmátrixa legyen A_{0}^{<}. A fenti eljárással döntsük el, hogy az {A_{0}^{=}x′ = b, x′ ≥ 0} rendszernek létezik-e megoldása. Amennyiben létezik, úgy x′-t nulla komponensekkel kiegészítve R-nek egy olyan x_{0} elemét kapjuk, amely teljesíti az optimalitási feltételeket (azaz, ha valamely i-re x_{0}(i) szigorúan pozitív, akkor y_{0}a_{i} = c(i)). Ekkor x_{0} primál optimum, y_{0} duál optimum és az eljárás véget ér.

Ha a szóbanforgó x′ nem létezik, akkor a fenti eljárás megtalálja A_{0}^{=}-nak egy m − 1 lineárisan független oszlopból álló A′_{0} részmátrixát valamint egy olyan y′ vektort, amelyekre y′A_{0}^{=} ≤ 0, y′A′_{0} = 0 és y′b > 0.

(Figyelem! Az {y′A_{0}^{=} ≤ 0, y′b ≥ 1} rendszer egy bázis-megoldása azt jelenti, hogy y′ az A_{0}^{=} mátrixnak m − 1 lineárisan független oszlopára merőleges. Az yA ≤ c rendszer egy bázis megoldása azt jelenti, hogy A-nak van m lineárisan független a_{i} oszlopa, amelyre ya_{i} = c(i).)

Amennyiben y′A_{0}^{<} ≤ 0, úgy az adódik, hogy y′A ≤ 0, y′b > 0 és így (a Farkas lemma triviális irányát alkalmazva) a primál feladat nem megoldható, vagy ekvivalensen a duál feladat nem korlátos. Ilyenkor az algoritmus véget ér.

Tegyük most fel, hogy y′A_{0}^{<} ≰ 0. Válasszuk λ-t a legnagyobb olyan számnak, amelyre (y_{0} + λy′)A ≤ c teljesül, azaz (y_{0} + λy′)a_{i} ≤ c(i) fennáll az A_{0}^{<} mindegyik a_{i} oszlopára. Vagyis λ a legnagyobb szám, amelyre λy′a_{i} ≤ c(i) − y_{0}a_{i} teljesül az A_{0}^{<} valamennyi olyan a_{i} oszlopára, amelyre a_{i}y′ > 0. Egyszóval legyen λ_{0} := min{c(i) − y_{0}a_{i})/y′a_{i}}, ahol a minimum az A_{0}^{<} olyan a_{i} oszlopaira megy, melyekre y′a_{i} > 0.

Legyen y_{1} := y_{0} + λ_{0}y′. A λ_{0} választásából adódóan y_{1} eleme R^{∗}-nak.

Lemma 2.79 y_{1} csúcsa R^{∗}-nak.

Biz. Azt kell látni, hogy A-nak van m lineárisan független oszlopa, melyekre y_{1}a_{i} = c(i). Mindenesetre y′A′_{0} = 0 miatt A′_{0}-nak az m − 1 oszlopa ilyen. Legyen a_{j} egy olyan oszlop, ahol a λ_{0} definíciójában szereplő minimum felvétetik. Ekkor nyilván y_{1}a_{j} = c(j), így csak azt kell látnunk, hogy a_{j} lineárisan független az A′_{0} oszlopaitól. De ez valóban így van, hiszen y′A′_{0} = 0 és y′a_{j} ≠ 0. •

Az y_{1} tehát valóban csúcsa R^{∗}-nak, és ráadásul y_{0}-nál jobb csúcsa, hiszen y′b > 0 miatt y_{1}b > y_{0}b. Miután R^{∗}-nak véges sok csúcsa van, az eljárás véges sok iteráció után befejeződik.

A algoritmusban a Farkas lemmára vonatkozó algoritmust szubrutinként használtuk, aminek belsejében persze alkalmazzuk a Bland féle legkisebb index szabályt. A fenti algoritmusban azonban, amikor az y_{0}-ról áttértünk y_{1}-re, a szóban forgó a_{j} oszlop meghatározásánál nem volt szükség a Bland-szabályra.

Az egész eljárás összevonható és elmondható egységes keretben:

Kiindulunk egy y_{0} duális csúcsból. Ezt meghatározza A-nak valamely m×m-es nemszinguláris A_{0} részmátrixát, amelyre y_{0}A_{0} = c_{0} (ahol c_{0} jelöli a c-nek az A_{0} oszlopaihoz tartozó részét.) Az A_{0}x = b egyértelmű megoldását nullákkal kiegészítve kapjuk az Ax = b egy x_{0} megoldását.

Ha x_{0} ≥ 0, úgy x_{0} primál megoldás és y_{0} duál megoldás teljesítik az optimalitási feltételeket, és az algoritmus véget ér. Amennyiben x_{0} ≱ 0, úgy legyen i a legkisebb index, amelyre x_{0}(i) < 0. Legyen y′ olyan, hogy y′A_{0}- nak egy kivételével minden komponense 0 és a kivételes komponens y′a_{i} = −1. Most y′b = y′(Ax_{0}) = (y′A)x_{0} > 0.

Amennyiben y′A ≤ 0, akkor y_{0} + λy′ minden pozitív λ-ra R^{∗}-ban van és az (y_{0} + λy′)b célfüggvény-érték a λ-val tart a végtelenbe, azaz a duál probléma nem korlátos (vagy ekvivalens módon a primál poliéder üres). Ha y′A ≰ 0, akkor legyen λ_{0} := min[(c(i)−y_{0}a_{i})/y′a_{i}], ahol a minimum olyan i indexekre megy, ahol y′a_{i} > 0. (Most előfordulhat, hogy λ_{0} = 0). Legyen j a legkisebb index, amelyre a minimum felvétetik. Jelölje A_{1} azt a mátrixot, amely A_{0}-ból keletkezik az a_{i} kitevésével és az a_{j} bevételével, és legyen y_{1} := y_{0} + λ_{0}y′. Iteráljuk az eljárást.

2004. december 15.lin18

OPTIMALIZÁLÁS GRÁFOKON

Ebben a fejezetben először áttekintjük a gráfokra vonatkozó legfontosabb optimalizálási problémákat és megoldó algoritmusokat. Ezt követően feltárjuk ezen problémák és a lineáris programozás bensőséges kapcsolatát.

3.1 A MAGYAR MÓDSZER

Dávid fiam osztályába 25 gyerek jár. Egy kiránduláson készült fényképek közül 25-t hívtak elő, melyek mindegyikén a gyerekek egy csoportja látható. A képeket szeretnénk kiosztani a gyerekek között, természetesen úgy, hogy minden gyerek rajta legyen a neki juttatott képen. Mikor lehetséges ez, és hogyan tudunk hatékonyan megkeresni egy ilyen hozzárendelést? Általánosabb feladathoz jutunk, ha minden gyerek, mondjuk 0-tól 10ig terjedő pontozással megmondja, hogy az egyes fényképek számára mennyit érnek. Ekkor a gyerekeknek és a fényképeknek egy olyan egymáshoz rendelését kell megkeresnünk, amelynek az összpontszáma a lehető legnagyobb.

Az ilyen jellegű problémák körét nevezik hozzárendelési feladatnak (assignment problem). Íme egy másik példa: az úszószövetség szeretné kiválasztani a válogatott négyszer százméteres vegyes-váltó négy tagját. Mind a négy úszásnemben rendelkezésre áll a szóbajövő úszók legjobb időeredménye. Válasszuk ki a négy úszót és rendeljük hozzájuk a négy különböző úszásnemet úgy, hogy az időeredmények összege minimális legyen.

Láthatjuk, hogy a hozzárendelési problémának több variációja is van. Az egyik alak egy élsúlyozott teljes páros gráfban, amelynek két pontosztálya egyforma elemszámú, maximális súlyú teljes párosítás meghatározását célozza. (Párosításon [matching] egy olyan részgráfot értünk, amelyben minden pont foka legfeljebb egy. A teljes párosításban minden pont foka pontosan egy.) Ugyanez a kérdés kicsit általánosabb, ha nem teljes páros gráffal dolgozunk, és csak annyit teszünk fel, hogy a páros gráfban létezik teljes párosítás. Ennek kapcsán vizsgálandó, hogy egy páros gráfban egyáltalán mikor létezik teljes párosítás, illetve ha nem létezik, mekkora a legnagyobb párosítás és azt miként tudjuk meghatározni. Feltehetjük a kérdést, hogy mekkora a maximális súlyú (nem feltételenül teljes) párosítás súlya, vagy a maximális súlyú k élű párosítás súlya. (Az úszóváltó összeállításánál maximális súlyú négyélű párosítást keresünk). Megjegyzendő, hogy a hozzárendelési problémát néha mátrix nyelven fogalmazzák meg. Például: adott egy nemnegatív n×n-es mátrix, válasszuk ki a mátrix n elemét úgy, hogy minden sorból és minden oszlopból egy elem kerül kiválasztásra és a kiválasztott elemek összege maximális. Ez a feladat ekvivalens egy n × n-es élsúlyozott teljes páros gráf maximális súlyú teljes párosításának meghatározásával.

Mindezen problémák megoldására szolgál a Magyar Módszer. Az elnevezés H. Kuhn amerikai kutatótól származik, aki egy 1955-ös cikkében Kőnig Dénes és Egerváry Jenő korábbi gondolataira támaszkodva elegáns algoritmust fejlesztett ki maximális súlyú párosítás meghatározására páros gráfban.

Gyakorlat 3.1 Mutassuk meg, hogy ha rendelkezésünkre áll egy olyan szubrutin, amelynek segítségével tetszőleges nemnegatív súlyozásra meg tudunk egy maximális súlyú teljes párosítást határozni, akkor egy minimális súlyú teljes párosítást is ki tudunk számítani.

3.1.1 Maximális elemszámú párosítások

Vizsgálatainkat kezdjük a súlyozatlan eset feltérképezésével. A kiindulási eredmény Kőnig alapvető tétele.

TÉTEL 3.1 (Kőnig) Egy G = (S, T; E) páros gráfban a diszjunkt élek maximális ν = ν(G) száma egyenlő az éleket lefogó pontok minimális τ = τ(G) elemszámával.

Biz. Egy ν elemű párosítás lefogásához kell legalább ν csúcs, így az összes élhez is kell, ezért ν ≤ τ.

A nemtriviális ν ≥ τ irány igazolásához konstruálunk egy M párosítást és egy L lefogást, melyek elemszáma ugyanaz. Az eljárás tetszőleges M párosításból indul ki, ami kezdetben az üres halmaz is lehet. Az általános lépésben vagy találunk egy nagyobb párosítást, és ekkor a nagyobb párosításra vonatkozóan iteráljuk az eljárást, vagy pedig egy |M|-mel megegyező elemszámú lefogást, amikor is az algoritmus véget ér.

Irányítsuk meg M éleit T -től S felé, míg az összes többi élt S-től T felé. Jelölje R_{S} illetve R_{T} az S-ben illetve a T -ben az M által fedetlen pontok halmazát. Jelölje Z az R_{S} pontjaiból az így kapott D_{M} irányított gráfban irányított úton elérhető pontok halmazát (amit például szélességi kereséssel találhatunk meg).

Két eset lehetséges. Amennyiben R_{T} -nek esik pontja Z-be, akkor megkaptunk egy olyan R_{S}-t és R_{T} -t összekötő P utat, amely M-ben alternál. Most M és P szimmetrikus differenciája egy M-nél eggyel több élből álló M′ párosítás. (Technikailag az eljárást könnyű végrehajtani: a megtalált út éleinek irányítását egyszerűen megfordítjuk.)

A másik esetben R_{T} diszjunkt Z-től. Z definíciója folytán Z-ből nem lép ki irányított él. Érvényes továbbá, hogy Z-be nem lép be megirányított uv ∈ M párosítás él, hiszen v csak u-n keresztül érhető el, így v csak akkor lehetett irányított úton elérhető R_{S}-ből, ha u is az volt.

Következik, hogy az L := (T ∩ Z) ∪ (S − Z) halmaz egyrészt lefogja az összes élt, másrészt minden M-beli élnek pontosan az egyik végpontját tartalmazza, tehát |M| = |L|, amivel a Kőnig tétel bizonyítása teljes. •

A fenti bizonyítás egyúttal hatékony eljárást is jelent a szóbanforgó optimumok meghatározására. Az algoritmust Kőnig (alternáló utas) algoritmusának nevezzük. A lépésszám megbecsléséhez figyeljük meg, hogy legfeljebb n/2 alkalommal kell utat keresnünk. Miután egyetlen út megkeresése az élszámmal arányos időben történhet, az összlépésszám nem nagyobb, mint O(nm) (ahol n a gráf pontszáma, míg m az élszáma).

3.1.2 A Kőnig tétel ekvivalens alakja

Érdemes megfogalmaznunk Kőnig tételét egy ekvivalens alakban. Ehhez definiáljuk egy X ⊆ S halmaz hiányát a

h(X) := |X| − |Γ(X)|  (3.1)

értékkel, ahol Γ(X) = Γ_{G}(X) = Γ_{E}(X) jelöli az X szomszédainak halmazát, vagyis Γ(X) := {v ∈ T : létezik uv ∈ E él, melyre u ∈ X}. Jelölje μ = μ(G, S) a maximális hiányt, azaz

μ := max_{X⊆S} h(X)  (3.2)

Legyen F az S maximális (azaz μ) hiányú részhalmazainak rendszere, vagyis F := {X ⊆ S : |X|−|Γ(X)| = μ}. Az F tagjait röviden max-hiányú halmazoknak fogjuk hívni.

Lemma 3.2 Egy-egy értelmű kapcsolat áll fenn az élek minimális elemszámú lefogásai és a max-hiányú S-beli halmazok között: ha L ⊆ S ∪ T minimális lefogás, akkor S − L max-hiányú halmaz, míg ha H ⊆ S max-hiányú halmaz, akkor Γ(H) ∪ (S − H) minimális lefogás.

Biz. Ha L ⊆ S ∪ T egy éleket lefogó ponthalmaz, akkor a H′ := S − L halmaz h(H′) hiánya legalább |S| − |L|, hiszen Γ(H′) ⊆ L ∩ T miatt h(H′) ≥ |H′| − |L ∩ T | = (|S| − |S ∩ L|) − |L ∩ T | = |S| − |L|. Másrészt tetszőleges H ⊆ S halmazra L′ := Γ(H) ∪ (S − H) lefogja az éleket és |L′| = (|S| − |H|) + |Γ(H)| = |S| − μ(H). A kettő összevetéséből a lemma következik. •

Jelölje φ = φ(G, S) azon S-beli pontok minimális számát, melyeket egy párosítás fedetlenül hagy. Nyilván φ + ν = |S|. Miután a lemmából τ + μ = |S| következik, érvényes Kőnig tételének alábbi, ekvivalens alakja.

TÉTEL 3.3 (Kőnig-Hall) G = (S, T; E) páros gráfban φ = μ, azaz egy párosítás által fedetlenül hagyott S-beli pontok minimális száma egyenlő az S részhalmazainak maximális hiányával. Speciálisan, akkor és csak akkor létezik S-t fedő párosítás, ha nincs hiányos halmaz, azaz teljesül a Hall-féle feltétel:

|Γ(X)| ≥ |X| minden X ⊆ S részhalmazra. •  (3.3)

A tételt néha Ore tételének is hívják, míg speciális második része a Hall tétel. Megjegyezzük, hogy Kőnig algoritmusa közvetlenül is kiad egy max-hiányú halmazt. Nevezetesen az algoritmus futásának végén kapott elérhető pontok Z halmazára egyrészt az algoritmus által kiadott (maximális) M párosítás |R_{S}| darab pontot hagy fedetlenül S-ben, másrészt a

H := Z ∩ S  (3.4)

halmazra Γ(H) = Z ∩ T, és így H hiánya pontosan |R_{S}|, tehát H max-hiányú.

A Kőnig algoritmus által szolgáltatott M maximális párosítás természetesen függ a futás során hozott döntéseinktől, hiszen az algoritmus azt nem specifikálja, hogy ha több növelő út is rendelkezésre áll, akkor melyiket használjuk. Annál meglepőbb, hogy az algoritmus által kiadott (3.4)-beli H max-hiányú halmaz független az algoritmus futásától. Ennek igazolásához vizsgáljuk meg a max-hiányú halmazok szerkezetét.

Max-hiányú halmazok

Lemma 3.4 Az S halmaz részhalmazain értelmezett γ(X) := |Γ(X)| függvény szubmoduláris, azaz az S bármely két X, Y részhalmazára fennáll a szubmodularitási egyenlőtlenség:

γ(X) + γ(Y) ≥ γ(X ∩ Y) + γ(X ∪ Y).

Biz. Az egyenlőtlenség következik, amint megfigyeljük, hogy Γ(X) ∪ Γ(Y) = Γ(X ∪ Y) és Γ(X) ∩ Γ(Y) ⊇ Γ(X ∪ Y). •

Lemma 3.5 A max-hiányú halmazok F rendszere zárt a metszet és unió képzésre.

Biz. Mivel a |Γ(X)| függvény szubmoduláris, így h(X)+h(Y) ≤ h(X∩Y)+h(X∪Y). Tegyük most fel, hogy X és Y két maximális hiányú halmaz (azaz F elemei). Ekkor μ+μ = h(X)+h(Y) ≤ h(X ∩Y)+h(X ∪Y) ≤ μ+μ, és emiatt valóban h(X ∩ Y) = μ, h(X ∪ Y) = μ. •

A 3.5 lemmából következik, hogy az összes max-hiányú halmaz metszete is és uniója is max-hiányú, azaz létezik egy egyértelmű legszűkebb és egy legbővebb max-hiányú halmaz.

TÉTEL 3.6 Kőnig alternáló utas algoritmusa által szolgáltatott (3.4)-beli H max-hiányú halmaz az egyértelmű legszűkebb max-hiányú halmaz (és így nem függ az algoritmus futása közben tett választásoktól).

Biz. Mivel az M maximális párosítás fedi S − R_{S} minden pontját, ezért tetszőleges max-hiányú halmaz tartalmazza R_{S}-t. Bármely X halmazra, amelyre R_{S} ⊆ X ⊂ H, a szóbanforgó irányított gráfban lép ki X ∪ Γ_{M}(X)-ből egy uv él és így Γ(X) ⊇ Γ_{M}(X) ∪ {v}. Így |Γ(X)| > |Γ_{M}(X)| = |X| − |R_{S}|, azaz h(X) < |R_{S}|, tehát X nem max-hiányú. •

Feladat 3.2 Hogyan lehet az alternáló utas algoritmus segítségével az egyértelmű legbővebb max-hiányú halmazt megkonstruálni?

Az Egerváry-féle súlyozott párosítási algoritmus polinomiális futásidejének bizonyításához szükségünk lesz majd az alábbi hasznos megfigyelésre.

Lemma 3.7 Legyen H ⊆ S a legszűkebb max-hiányú halmaz G-ben. Ha a gráfból kitöröljük az összes olyan élt, amely H szomszédai és S − H között vezet, akkor a létrejövő G′ gráfban a maximális hiány ugyanaz, mint G-ben. Továbbá G és G′ max-hiányú halmazainak rendszere ugyanaz.

Biz. Miután G egy M maximális párosításának a Γ(H)-t fedő élei mind H-ban végződnek, az M benne van G′-ben is, vagyis G′ max hiánya legfeljebb akkora, mint G-é, de persze kisebb nem lehet, mert G′ részgráfja G-nek. Ebből az is következik, hogy a G egy max-hiányú halmaza G′-ben is max-hiányú. Legyen most X tetszőleges max-hiányú halmaz G′-ben. Mivel H max-hiányú G′-ben is, a 3.5 lemma szerint H ∩ X is maxhiányú G′-ben. De akkor H ∩ X max-hiányú G-ben, hiszen H ∩ X-ből induló élt nem töröltünk, és így a H minimalitása folytán H ⊆ X. Ekkor viszont Γ(X) = Γ′(X), azaz X max-hiányú G-ben is. •

3.1.3 Maximális súlyú párosítások

Tételezzük most fel, hogy a G = (S, T; E) páros gráf élein adott egy c nemnegatív, egészértékű súlyfüggvény. Tegyük fel, hogy G-nek létezik teljes párosítása, és vizsgáljuk meg a maximális súlyú teljes párosítás megkeresésének kérdését. Az élek lefogásának általánosításaként nevezzünk egy pontokon értelmezett π függvényt súlyozott lefogásnak, ha minden uv élre π(u) + π(v) ≥ c(uv). Egy élt pontosnak fogunk nevezni (π-re nézve), ha itt egyenlőség áll. A π súlyozott lefogás π(V) összértékén a ∑[π(v) : v ∈ V] összeget értjük, ahol V = S ∪ T.

TÉTEL 3.8 (Egerváry) A G = (S, T; E) teljes párosítással rendelkező páros gráfban a c ≥ 0 egészértékű súlyfüggvényre vonatkozó maximális súlyú teljes párosítás ν_{c} súlya egyenlő az egészértékű súlyozott lefogások minimális τ_{c} összértékével. Amennyiben G teljes páros gráf, úgy az optimális súlyozott lefogás választható nemnegatívnak is.

Biz. Legyen M := {u_{1}v_{1}, u_{2}v_{2}, …, u_{n}v_{n}} tetszőleges teljes párosítás G-ben, míg π egy súlyozott lefogás. Ekkor c(M) := ∑ c(u_{i}v_{i}) ≤ ∑[π(u_{i}) + π(v_{i}) : i = 1, …, n] = π(V), amiből ν_{c} ≤ π_{c} következik. Itt egyenlőség pontosan akkor áll, ha M minden élen pontos.

A fordított irányú egyenlőtlenség bizonyításához tehát kell találnunk egy π súlyozott lefogást úgy, hogy a π-re vonatkozó pontos élekből álló részgráf tartalmazzon teljes párosítást. Legyen π egészértékű súlyozott lefogás, melynek összértéke minimális. (Jogos minimumról beszélni, hiszen egészértékű súlyozott lefogásokról van szó, és az ilyenek összértéke korlátos alulról.) Legyen G_{π} = (S, T; E_{π}) a pontos élek részgráfja. A G_{π}- nek bármely teljes párosítása maximális súlyú, hiszen pontos élekből áll. Belátjuk, hogy G_{π}-nek van teljes párosítása. Ha indirekt nem ez a helyzet, akkor a Kőnig-Hall tétel nyomán létezik egy X ⊆ S hiányos halmaz, amelyre tehát |Γ_{G_{π}} (X)| < |X|. Ennek segítségével tudunk π-n javítani. Definiáljuk δ-t a következőképpen.

δ := min{π(u) + π(v) − c(uv) : uv ∈ E, u ∈ X, v ∈ T − Γ_{G_{π}} (X)}.  (3.5)

Miután nincsen pontos él X és T − Γ_{G_{π}} (X) között, így δ pozitív és persze egész. Módosítsuk π-t a következőképp:

π′(v) = \{ \begin{matrix}π(v) − δ, & ha v ∈ X, \\ π(v) + δ, & ha v ∈ Γ_{G_{π}} (X), \\ π(v) & különben. \end{matrix}  (3.6)

Az így nyert π′ továbbra is súlyozott lefogás, amelyre π′(V) = π(V) − δ|X| + δ|Γ_{G_{π}} (X)| < π(V), ellentmondásban π minimális választásával.

A második rész igazolásához tegyük fel, hogy G teljes páros gráf. Legyen π egy minimális összértékű egész súlyozott lefogás. Ezt akarjuk nemnegatívvá alakítani. Tegyük fel, hogy π legkisebb értéke −K (ahol K > 0) és mondjuk az S-nek van −K értékű pontja. Mivel G teljes páros gráf, c nemnegatív és π súlyozott lefogás, minden v ∈ T pontra π(v) ≥ K. Az S elemein a π értékeket K-val növelve, T elemein pedig K-val csökkentve olyan nemnegatív súlyozott lefogást kapunk, melynek összértéke szintén π(V). •

3.1.4 Egerváry algoritmusa

Ez a bizonyítás lényegében Egerváry eredeti bizonyítása. Bár ő csak teljes páros gráfokra mondta ki tételét, de bizonyítási módszere, amint láttuk, könnyen kiterjed az általános esetre. A bizonyításhoz a π javításakor valójában elegendő a δ-t egynek választani. Az (3.5)-beli definíció a legnagyobb olyan δ-t adja meg, amellyel a π módosítását végrehajtva még súlyozott lefogást nyerünk. Ezáltal a bizonyítási módszer egyúttal algoritmust is jelent maximális súlyú teljes párosítás és minimális összértékű súlyozott lefogás kiszámítására: kiindulunk egy tetszőleges egészértékű π súlyozott lefogásból, és a pontos élek G_{π} gráfjában (például Kőnig algoritmusával) vagy találunk egy teljes párosítást, amely értelemszerűen maximális súlyú, vagypedig találunk egy hiányos halmazt, amelynek segítségével a bizonyításban leírt módon javítjuk a súlyozott lefogást. A módosított súlyozott lefogással folytatva iteráljuk az eljárást. Nevezzük ezt az eljárást Egerváry algoritmusának.

A tétel és az algoritmus a közös nevezővel való felszorzással könnyen kiterjeszthető racionális súlyfüggvényekre (amikor persze az optimális súlyozott lefogás egészértékűségét nem követeljük meg). Tetszőleges valós súlyfüggvényekre a tétel folytonossági meggondolásokból következik. Egerváry algoritmusa ezekben az esetekben is futtatható. Kimutatható azonban, hogy az algoritmus ezen generikus alakja (amikor a π javítására használt X hiányos halmazt szabadon választjuk) egész vagy raconális c-re még akkor sem polinomiális, ha mindig max-hiányú halmazzal dolgozunk. Ráadásul valós súlyfüggvény esetén az algoritmus még csak nem is biztosan véges. Ha azonban az aktuális π javítására mindig az egyértelmű legszűkebb max-hiányú halmazt használjuk, akkor, amint mindjárt igazoljuk, az algoritmus még valós c esetén is polinomiális. Amint korábban már láttuk, Kőnig alternáló utas algoritmusa automatikusan a legszűkebb max-hiányú halmazt szolgáltatja.

TÉTEL 3.9 Amennyiben az Egerváry algoritmus futtatásakor a szóbanforgó π súlyozott lefogás javítására a Kőnig algoritmus által szolgáltatott egyértelmű legszűkebb max-hiányú X halmazt használjuk, úgy az algoritmus polinomiális futásidejű.

Biz. Figyeljük meg először, hogy miként változik a pontos élek gráfja, amikor az algoritmus π-ről π′-re tér át. Mindenesetre az X ∪Γ_{G_{π}} (X) valamint ennek komplementere által feszített pontos élek nem változnak. Az S − X és Γ_{G_{π}} (X) között vezető esetleges pontos élek megszűnnek pontosnak lenni, míg az X és T −Γ_{G_{π}} (X) között vezető élek közül mindazok pontossá válnak, amelyeken a (3.5) definícióval megadott minimum felvétetik. A 3.7 lemmából következik, hogy ezen cserénél a maximális hiány vagy csökken, vagy ha nem, úgy a legszűkebb max-hiányú halmaz szigorúan bővül.

Tekintsük egy fázisnak az algoritmus futásának azon szakaszát, amely során a pontos élek (egyre változó) részgráfjában a maximális hiány változatlan. Egyetlen fázis során a max-hiányú halmaz legfeljebb |S|-szer tud bővülni és nyilván legfeljebb |S| fázis létezik. Vagyis a Kőnig algoritmus legfeljebb |S|^{2}-szeri meghívásával az algoritmus futása befejeződik. Miután Kőnig algoritmusának lépésszámára O(|S||E|) korlát volt mondható, a leírt súlyozott eljárás teljes futásideje O(|S|^{3}|E|).

Bár ez a lépésszám nem különösebben látványos (és valójában hatékonyabb eljárások is léteznek), azt mindenesetre megkaptuk, hogy az algoritmus polinomiális futásidejű, sőt erősen polinomiális is abban az értelemben, hogy a futásidő egyáltalán nem függ a szereplő c költségfüggvénytől, amennyiben feltesszük, hogy a számokkal végzett összadást, kivonást és összehasonlítást egyetlen lépésben tudjuk elvégezni.

Feladat 3.3 Hogyan ,,veszi észre” az Egerváry algoritmus, ha bemenetként olyan páros gráfot kap, amelyben nincs teljes párosítás?

3.1.5 Kuhn Magyar Módszere

H.W. Kuhn módszerének alapgondolata az, hogy Kőnig algoritmusa és Egerváry π-javító eljárása összevonható. Ennek talán hátránya, hogy az algoritmus összetettebbé válik, de előnye, hogy rögtön látszik az algoritmus polinomialitása és ráadásul jobb lépésszám becslés is adódik.

Az eljárás tetszőleges π súlyozott lefogással indul. Az általános lépésben tekintjük a pontos élek által (a V = S ∪ T ponthalmazon) alkotott G_{π} részgráfot. Legyen M egy már rendelkezésre álló párosítás G_{π}-ben. Irányítsuk meg M éleit T -től S felé, míg az összes többi G_{π}-beli élt S-től T felé. Jelölje R_{S} illetve R_{T} az S-ben illetve a T -ben az M által fedetlen pontok halmazát. Jelölje Z az R_{S} pontjaiból az így kapott irányított gráfban irányított úton elérhető pontok halmazát (amit például szélességi kereséssel találhatunk meg). Amennyiben R_{T} -nek esik pontja Z-be, akkor megkaptunk egy olyan R_{S}-t és R_{T} -t összekötő P utat, amely M-ben alternál. Most M és P szimmetrikus differenciája egy M-nél eggyel több élből álló M′ párosítás. Ekkor az M′ párosítással folytatva iteráljuk az eljárást.

Nézzük most azt az esetet, amikor R_{T} diszjunkt Z-től. Legyen H := Z ∩ S. Mivel G-nek van teljes párosítása, biztosan van olyan e éle G-nek, amely H és T − Γ_{G_{π}} (H) között vezet, ahol Γ_{G_{π}} (H) jelöli a H szomszédainak halmazát a G_{π}-ben. Ilyen él nem lehet pontos, így a

δ := min{π(u) + π(v) − c(uv) : uv ∈ E, u ∈ H, v ∈ T − Γ_{G_{π}} (H)}  (3.7)

érték pozitív. Módosítsuk π-t a következőképp:

π′(v) = \{ \begin{matrix}π(v) − δ, & ha v ∈ H, \\ π(v) + δ, & ha v ∈ Γ_{G_{π}} (H), \\ π(v) & különben. \end{matrix}  (3.8)

A δ választása miatt az így módosított π′ továbbra is súlyozott lefogás, amely egészértékű, ha c az volt. A π′-re vonatkozó pontos élek G_{π′} gráfja és G_{π} ugyanazon éleket feszíti Z-ben, továbbá G_{π′}-nek van legalább egy éle (ahol a δ-t definiáló minimum felvétetett) H és T − Γ_{G_{π}} (H) között, ezért G_{π′}-ben az R_{S}-ből elérhető pontok halmaza szigorúan bővebb, mint G_{π}-ben.

Emiatt a G_{π′}-hez rendelt irányított gráfban az R_{S}-ből elérhető pontok halmaza szigorúan bővebb. Így egy fázis (ami során tehát a pontos élek gráfjában a maximális párosítás elemszáma nem nő) |S| útkereső eljárás alkalmazása után véget ér. Mivel egy útkeresés O(|E|) lépésben végrehajtható és legfeljebb |S| fázis van, az algoritmus teljes futásideje O(|E||S|^{2}).

3.1.6 Maximális súlyú párosítások

Megmutatjuk, hogy a maximális súlyú (nem feltétlenül teljes) párosítás meghatározásának problémája egyszerű fogással visszavezethető a maximális súlyú teljes párosításéra.

TÉTEL 3.10 Egy G′ = (S′, T′; E′) páros gráfban nemnegatív c súlyfüggvény esetén a párosítások maximális ν′_{c} súlya egyenlő a nemnegatív (!) súlyozott lefogások minimális τ′_{c} súlyával. Amennyiben c egészértékű, az optimális π′_{c} is választható egészértékűnek.

Biz. A ν′_{c} ≤ τ′_{c} egyenlőtlenség nyilvánvaló, így csak a fordított iránnyal foglalkozunk. Új pontok esetleges hozzávételével elérhetjük, hogy a páros gráf két osztálya egyforma méretű legyen. Egészítsük ki a gráfot 0 súlyú élek bevételével egy G teljes páros gráffá. A súlyfügvény ezen kiterjesztését továbbra is jelölhetjük c-vel. A 3.8 tétel (második része) szerint G-nek létezik egy M teljes párosítása és c-nek egy π nemnegatív súlyozott lefogása, melyekre c(M) = ∑ π(v). Mivel az új élek súlya 0, így az új élek kihagyásával M-ből keletkező G′-beli M′ párosítás súlya változatlanul c(M). Miután új pontból (ha van) csak 0 súlyú él megy ki, így π értéke az új pontokon 0. Továbbá, mivel M minden éle pontos, ezért egy 0 súlyú uv élének végpontjaira π(u) = π(v) = 0. Ha tehát π-t megszorítjuk az eredeti pontokra, akkor a kelektező π′-re ∑ π′(v) = ∑ π(v), és ∑ π′(v) = c(M′). •

Végül megjegyezzük, hogy tetszőleges rögzített k pozitív egészre Ford és Fulkerson később ismertetésre kerülő minimális költségű folyam algoritmusának segítségével ki lehet számolni a maximális (vagy minimális) súlyú k élű párosítást, ha ilyen párosítás létezik egyáltalán.

2004. december 15. file: lin21

3.2 LEGRÖVIDEBB SÉTÁK ÉS UTAK

Adott a D = (V, A) n pontú, m élű irányított gráf élein egy c : A → R költség- (vagy másnéven súly-) függvény. Sétán egy olyan v_{0}, e_{1}, v_{1}, e_{2}, …, e_{k}, v_{k} sorozatot értünk, amelyben felváltva következnek pontok és élek, és mindegyik e_{i} él a v_{i−1} pontból vezet a v_{i} pontba. A séta zárt, ha v_{0} = v_{k}. A szereplő élek száma a séta hossza. Azt mondjuk, hogy v_{0} a séta kezdőpontja, v_{k} a séta végpontja. Amenyiben nincs ismétlődés, útról beszélünk. Rövidség kedvéért egy s-ből v-be vezető utat sv-útnak fogunk hívni.

Fő célunk minimális össz-költségű, másnéven legolcsóbb sv-utat találni. Ha a költség negatív is lehet, akkor a feladat már az azonosan −1 súlyozás esetén is NP-teljes, ugyanis ekkor a legrövidebb út feladat magában foglalja a Hamilton út problémának az előírt végpontú változatát, ami a tetszőleges végpontú Hamilton út problémához hasonlóan NP-teljes.

3.2.1 Nemnegatív költségek: Dijkstra algoritmusa

Tegyük fel először, hogy a c súlyozás nemnegatív. Egy s gyökerű fenyőn, röviden s-fenyőn egy olyan irányított fát értünk, amelynek minden pontja az s-ből irányított úton elérhető. Amennyiben a fenyő minden v pontjára az s-ből odavezető út a D digráf egy legolcsóbb s-ből v-be vezető útja, úgy legolcsóbb utak egy s-fenyőjéről beszélünk. Jelölje w_{n}(v) az s-ből v be vezető legolcsóbb út költségét.

Lemma 3.11 Legyen T egy legolcsóbb utak s-fenyője és tegyük fel, hogy az m_{T} := min{w_{n}(u) + c(uv) : uv kilép T -ből} minimum valamely a = u_{a}v_{a} élen vétetik fel. Ekkor T′ := T + a is legolcsóbb utak fenyője.

Biz. Nyilván csak az s-ből v_{a}-ba vezető T′ beli P′ útról kell belátnunk, hogy D-ben legolcsóbb. Legyen P tetszőleges sv út D-ben, és jelölje ennek (s felől indulva) első V (T)-ből kilépő e = u_{e}v_{e} élét. P -nek az s-től u_{e}-ig tartó P′′ részútjára érvényes, hogy c(P′′) ≤ c(P), hiszen c nemnegatív. Az a minimális választása miatt, c(P′) ≤ c(P′′) és a lemma következik. •

A 3.11 lemmán alapuló Dijkstra módszer n − 1 fázisból áll. s-ből kiindulva, élek egyenkénti hozzávételével felépítünk legolcsóbb utaknak egy T s-fenyőjét. Ennek érdekében fenntartunk egy k_{T} címkét, amely azt mondja meg, hogy az aktuális T -hez tartozó m_{T} érték mely v ∈ V − V (T) pontban vétetik fel. Minden fenyőn kívüli v ∈ V − V (T) pontra fenntartunk egy l_{c}(v) := min{w_{n}(u) + c(uv) : uv kilép T -ből} címkét. Ezen kívül fenntartunk még egy a(v) címkét is, amely azt mondja meg, hogy az l_{c}(v)-t meghatározó minimum mely uv élen vétetik fel. Az l_{c}(v) szemléletesen azt jelenti, hogy mekkora az s-ből v-be vezető, csak V (T) pontjait használó utak költségének minimuma. Evvel a jelöléssel tehát k_{T} az l_{c}(v) minimum helye.

Ezen címkék segítségével meg tudjuk mondani, hogy melyik a élt kell a soron következő lépésben T -hez venni. Nevezetesen, vesszük a k_{T} -ban lévő a_{v} pontot és az a(a_{v})-ben lévő a = a_{u}a_{v} élt vesszük az aktuális T fenyőhöz.

Egyszerű módosításokkal kapjuk meg a keletkező T′ fenyőhöz tartozó címkéket. Az l_{c}(v) értékeket a következő szabály szerint módosítjuk. l_{c}(v) := min{l_{c}(v), l_{c}(v_{a})+c(v_{a}v)}. Amennyiben a minimum a második tagon éretik el, az a(v) címke tartalmát v_{a}v-re cseréljük. Ebben az esetben még azt is megnézzük, hogy a csökkentett l_{c}(v) nem kisebb-e m_{T} -nél, és ha az, akkor k_{T} tartalmát az aktuális v pontra cseréljük, m_{T} -t pedig l_{c}(v)-re.

Így az összes módosítás kiszámítása O(n) lépést igényel, és a teljes algoritmus bonyolultsága O(n^{2}). •

3.2.2 Konzervatív költségek, megengedett potenciálok

A legolcsóbb út problémája tehát viszonylag egyszerűen megoldható, ha a költségek nemnegatívok, de létezik egy még mindig jól kezelhető általánosabb eset is, amikor negatív élek ugyan előfordulhatnak, de nincsen olyan irányított kör, amelynek össz-költsége negatív (röviden: negatív kör). Az ilyen súlyozást konzervatívnak nevezzük. Egy nemnegatív költség-függvény például nyilvánvalóan konzervatív, éppúgy mint egy aciklikus digráf tetszőleges költség-függvénye.

Hogyan lehet hatékonyan eldönteni, hogy egy adott súlyozás konzervatív-e, és ha igen, miként határozzunk meg egy legolcsóbb utat?

TÉTEL 3.12 Egy c súlyozás akkor és csak akkor konzervatív, ha létezik olyan π : V → R megengedett potenciálnak nevezett függvény a csúcsokon, amelyre

π(v) − π(u) ≤ c(uv) fennáll minden uv élre.  (3.9)

Továbbá, ha c egészértékű, akkor π is választható annak.

Biz. Ha létezik megengedett potenciál, akkor bármely C irányított körre fennáll, hogy c(C) = ∑_{i=1}^{k} c(v_{i}v_{i+1}) ≥ ∑[π(v_{i+1}) − π(v_{i})] = 0, ami azt jelenti, hogy c konzervatív. (Itt v_{1}, …, v_{k} a kör pontjait jelöli, és a v_{k+1} = v_{1} jelölési konvencióval éltünk.)

Megfordítva, tegyük fel, hogy c konzervatív. Be akarjuk látni, hogy létezik megengedett potenciál. Jelölje π_{j}(v) a v-ben végződő legfeljebb j élű séták költségének a minimumát. A definícióból adódik, hogy tetszőleges uv élre

π_{j}(v) ≤ π_{j−1}(u) + c(uv)  (3.10)

Állítjuk, hogy ha c konzervatív, akkor π_{n}(z) = π_{n−1}(z) minden z ∈ V csúcsra (ahol n a pontszám). Ez nyilván igaz, ha egy legolcsóbb legfeljebb n élű séta s-ből z-be legfeljebb n − 1 élű. Ha viszont pontosan n élű, akkor biztosan tartalmaz egy C kört, aminek éleit kihagyva egy legfeljebb n − 1 élű sétát kapunk. Ennek költsége c(C) ≥ 0-val kisebb, mint π_{n}(z). Kisebb persze nem lehet, így c(C) szükségképpen 0, azaz van egy π_{n}(z) költségű legfeljebb n − 1 élű séta, és így valóban π_{n}(z) = π_{n−1}(z).

(3.10)-t és π_{n}(u) = π_{n−1}(u)-t használva kapjuk, hogy π_{n}(v) ≤ π_{n−1}(u) + c(uv) = π_{n}(u) + c(uv), azaz π_{n} megengedett potenciál, amely ráadásul egészértékű, amennyiben c az volt. •

A π_{n}(v) értékeket könnyű kiszámítani, az alábbi rekurzió segítségével. Legyen π_{0}(v) ≡ 0 és legyen

π_{i+1}(v) = min{π_{i}(v), min{π_{i}(u) + c(uv) : uv ∈ A}}.  (3.11)

Ha most a π_{n}(v) megengedett potenciál immár rendelkezésünkre áll, akkor alkalmazhatjuk Dijkstra algoritmusát minimális költségű P út megkeresésére a c̄(uv) := c(uv) − π_{n}(v) + π_{n}(u) (nemnegatív!) költségfüggvényre nézve. Ekkor P automatikusan minimális c-költségű út lesz, hiszen bármely s-ből t-be vezető út c-költségének és c̄-költségének az eltérése ugyanaz az úttól független π_{n}(t) − π_{n}(s) szám.

Feladat 3.4 Adjunk a 3.12 tételre alternatív bizonyítást, amely pontszám szerinti indukciót használ az alábbi vázlat alapján. Válasszunk ki egy tetszőleges z pontot, minden uz és zv élpárra vegyünk egy új élt u-ból zbe, amelynek költsége legyen c(uz) + c(zu), majd töröljük a z pontot. A keletkező kisebb pontszámú gráfra alkalmazzunk indukciót.

A 3.12 tételt egyszerű fogással kiterjeszthetjük arra az esetre, amikor a potenciál különbségre nemcsak felső, hanem alsó korlátot is előírunk.

TÉTEL 3.13 A D = (V, A) digráf élhalmazán adott két korlátozó függvény f ≤ g. Akkor és csak akkor létezik olyan π : V → R vektor (amely ráadásul egészértékű, ha f és g is az), amelyre f(uv) ≤ π(v) − π(u) ≤ g(uv) minden e = uv élre, ha a c′-vel élsúlyozott D′ segédgráfban nincsen negatív kör, ahol uv akkor eleme D′-nek, ha vagy uv ∈ A és ekkor c′(uv) := g(uv), vagy vu ∈ A és ekkor c′(uv) := −f(vu).

Biz. A tétel következik a fentebb megfogalmazott speciális alakjából, amikor csak felső korlátok vannak adva a π(v) − π(u) különbségekre. Valóban, az e = uv élre adott f(uv) ≤ π(u) − π(v) alsó korlát ekvivalens egy újonnan behúzott vu élre vonatkozó π(u) − π(v) ≤ −f(vu) felső korláttal. •

Feladat 3.5 Fogalmazzuk meg a 3.13 tétel általánosítását, ha minden v pontban a π(v)-re alsó és felső korlát is ki van tűzve.

Tegyük fel, hogy az s pontból a digráf valamennyi pontja elérhető irányított úton. Jelölje l_{c}(v) az s-ből v-be vezető legolcsóbb út költségét egy c konzervatív súlyozásra nézve.

Következmény 3.14 l_{c} megengedett potenciál.

Biz. Adjunk a digráfhoz egy új s′ pontot és egy új s′s élt, melynek költsége legyen egy alkalmasan nagy M szám negatívja. Ekkor minden v-re a v-ben végződő legolcsóbb út s′-ben fog kezdődni. A 3.12 tétel bizonyításában láttuk, hogy ezen utak költsége megengedett potenciál. Ez viszont éppen az l_{c} függvény M-mel való eltoltja, tehát l_{c} is megengedett potenciál. •

Egy uv élt a továbbiakban pontosnak fogunk hívni (π-re nézve), ha (3.9)-et egyenlőséggel teljesíti. Tetszőleges π potenciál által definiált Δ_{π}(uv) := π(v)−π(u) költség-függvényt potenciál-különbségnek vagy tenziónak nevezünk.

Feladat 3.6 Igazoljuk, hogy egy éleken értelmezett költség-függvény akkor és csak akkor tenzió, ha minden körre az egyik irányba menő élek összköltsége egyenlő a másik irányba menő élek összköltségével.

TÉTEL 3.15 Konzervatív c költségfüggvény esetén az s-ből t-be vezető utak költségének l_{c}(t) minimuma egyenlő a π(t) − π(s) érték maximumával, ahol a maximum az összes megengedett π potenciálon veendő.

Biz. Legyen π megengedett potenciál és P tetszőleges út s-ből t-be, melynek pontjai v_{1} = s, v_{2}, …, v_{k} = t. Ekkor c(P) = ∑ c(v_{i+1}v_{i}) ≥ ∑(π(v_{i+1})−π(v_{i})) = π(t)−π(s), vagyis a tételben a min ≥ max irány következik.

A fordított irányú egyenlőtlenség igazolásához kell találnunk egy P st-utat és egy π megengedett potenciált, amelyekre c(P) = π(t)−π(s). E célra viszont egy tetszőleges P legolcsóbb st-út és az l_{c} megengedett potenciál megfelel. • Következmény 3.16 Ha P olyan st-út, amely valamely megengedett π potenciálra nézve pontos élekből áll, akkor P legolcsóbb st-út. •

Feladat 3.7 Adott az éleken egy tetszőleges súly-függvény. Határozzunk meg egy olyan s-ből t-be vezető utat, amelyen a legnagyobb súly a lehető legkisebb.

Feladat 3.8 Tegyük fel, hogy az éleken két konzervatív költség-függvényünk adott: c_{1} és c_{2}. Készítsünk algoritmust olyan st út megkeresésére, amely a c_{1}-re nézve minimális költségű és ezen belül c_{2}-re nézve minimális költségű.

Feladat 3.9 Igazoljuk, hogy ha egy s-ből t-be vezető P út minden éle benne van egy legolcsóbb útban, akkor P maga is legolcsóbb út.

3.2.3 Aciklikus digráfok: a kritikus út módszere

Tegyük most fel, hogy a D digráf aciklikus (azaz nem tartalmaz irányított kört) és az s pontból mindegyik másik pontba vezet út. Legyen a c súlyozás tetszőleges: ez automatikusan konzervatív. Aciklikus digráfnak mindig van olyan pontja, amelyből nem vezet ki él és ezért a pontokat olyan v_{1} = s, v_{2}, …, v_{n} sorba lehet rendezni, hogy minden él korábbi pontból későbbibe vezessen. Ezt az úgynevezett topológikus sorrendet mélységi kereséssel lineáris időben meg lehet találni.

A legrövidebb utak egy fenyőjét aciklikus digráfban még a Dijkstra algoritmusnál is egyszerűbben fel tudjuk építeni mert a pontoknak a fenyőbe kerülési sorrendje nem csak menetközben derül ki, hanem az az előre adott topológikus sorrend lesz. Tegyük fel, hogy az első j − 1 pont által feszített részgráfban már meghatároztuk a legolcsóbb utak egy F_{j−1} fenyőjét az l_{c}(v_{i}) költségekkel egyetemben (1 ≤ i ≤ j − 1). A sorrendben következő v_{j} pontra legyen l_{c}(v_{j}) := min{l_{c}(v_{i}) + c(v_{i}v_{j}) : v_{i}v_{j} ∈ A} és legyen F_{j} := F_{j−1} + v_{i}v_{j}, ahol a v_{i}v_{j} egy olyan él, amelyen a minimum felvétetik.

Alkalmazásokban előfordul, hogy aciklikus digráfban maximális súlyú utat kell keresni. Az is gyakori, hogy nem annyira az optimális útra vagyunk kiváncsiak, mint inkább az optimális potenciálra. A 2.3 szakaszban már tekintettük a következő ütemezési feladatot. Egy projekt különféle részfeladatok elvégzéséből áll, melyeknek előre adott a végrehajtási ideje. Tudjuk továbbá, hogy bizonyos részfeladatoknak meg kell előzni másokat (házépítésnél az alapozás megelőzi a fürdőszoba csempézést), azaz a részfeladatok halmazán adott egy részbenrendezés. Kérdés, hogy mi az a legrövidebb idő, amely alatt a teljes projekt elvégezhető. További elvárás megadni az egyes részfeladatok kezdési időpontját úgy, hogy minden feladat kezdésére az őt a részbenrendezésben megelőzők már elkészüljenek.

A megoldáshoz készítsünk el egy D irányított gráfot a következőképpen. Reprezentáljunk mindegyik z részfeladatot egy u_{z}v_{z} irányított éllel, amelynek súlya legyen a z végrehajtási ideje. Amennyiben a z feladat megelőzi az y feladatot, úgy vegyünk be D-be egy v_{z}u_{y} élt 0 súllyal. Végül adjunk a digráfhoz egy s forráspontot, amelyből minden u_{x} pontba vezessünk 0 súlyú élt, és adjunk egy t pontot, amelybe minden v_{x} pontból vezessünk 0 súlyú élt. Feladatunk olyan π(v) időpontok kijelölésével ekvivalens, amelyekre π(s) = 0, π(t) minimális és minden uv élre a π(v) − π(u) időpontkülönbség legalább akkora, mint az él súlya. Ha most mindent negálunk, akkor aciklikus irányított gráfról lévén szó konzervatív súlyozást kapunk. Így a 3.15 tétel alkalmazásával kapjuk, hogy a projekt végrehajtásának minimális ideje egyenlő a legsúlyosabb út súlyával. Egy ilyen utat szoktak néha kritikus útnak nevezni, és az előzőekben leírt minimális út problémának az itteni feladatra adaptált változatát kritikus út módszernek (angolul PERT: project evaluation and review technique). A tételt kicsit formálisabban is kiírhatjuk.

TÉTEL 3.17 Legyen c′ : A′ → R a D = (V, A′) aciklikus irányított gráf élhalmazán egy tetszőleges súlyfüggvény, és tegyük fel, hogy az s′ pontból vezet irányított út t′-be. Ekkor

min{π′(s′) − π′(t′) : π′(v) − π′(u) ≥ c′(uv), uv ∈ A} = max{c′(P) : P út s′-ből t′-be}.  (3.12)

Biz. Legyen D = (V, A) az A éleinek megfordításával keletkező irányított gráf, legyen s := t′, t := s′, és legyen ab ∈ A-re c(ab) := −c′(ba). Mivel D′ aciklikus, c konzervatív. Alkalmazzuk a 3.15 tételt D-re és a c : költségfüggvényre. A tétel által szolgáltatott optimális π olyan, hogy π(b) − π(a) ≤ c(ab) minden ab ∈ A élre, azaz π′ := −π-re fennáll π′(v) − π′(u) ≥ c′(uv) minden uv ∈ A élre. •

Feladat 3.10 Dolgozzunk ki eljárást pontsúlyozott részbenrendezett halmaz maximális súlyú láncának megkeresésére.

Gyakorlat 3.11 Adott egy út bizonyos részútjainak F rendszere. Válasszunk ki F-nek diszjunkt tagjait úgy, hogy az összhosszuk maximális legyen.

Feladat 3.12 Adott két betűkből álló sorozat. Válasszunk ki algoritmikusan egy maximális sok tagból álló közös részsorozatot. A feladat még akkor is megoldható, ha az egyes betűknek különböző súlya van és a kiválasztott közös részsorozatban lévő betűk súlyösszegét akarjuk maximalizálni.

Feladat 3.13 Igazoljuk algoritmikusan, hogy egy P részbenrendezett halmazban a leghosszabb lánc elemszáma egyenlő a P -t fedő antiláncok minimális számával! Fogalmazzuk meg és igazoljuk a megfelelő tételt maximális súlyú láncokról, ha P elemei súlyozva vannak.

Feladat 3.14 Határozzuk meg algoritmikusan egy véges sorozat legtöbb tagból álló monoton növekvő részsorozatát!

Feladat 3.15 Igazoljuk, hogy egy nm+1 különböző tagokból álló számsorozatnak vagy van n+1 tagú monoton növő vagy egy m + 1 tagú monoton csökkenő részsorozata! Létezhet-e mind a két fajta részsorozat?

2004. december 15. file: lin22

3.3 ÁRAMOK ÉS FOLYAMOK HÁLÓZATOKBAN

3.3.1 Fogalmak

Ebben a részben hálózatokra vonatkozó két rokon fogalommal foglalkozunk: áramokkal és folyamokkal.

Áramok

Jelöljön D = (V, A) egy irányított gráfot. Valamely x : A → R vektorra és S ⊆ V részhalmazra legyen ϱ_{x}(S) := ∑[x(uv) : uv ∈ A, uv belép S-be] és legyen δ_{x}(S) := ϱ_{x}(V − S). Az x vektort áramnak (circulation) nevezzük, ha teljesül rá a megmaradási szabály (conservation rule), azaz ϱ_{x}(v) = δ_{x}(v) fennáll minden v csúcsra. Valamely c : A → R költségfüggvényre vonatkozólag a cx skalárszorzatot nevezzük az x áram költségének.

Gyakorlat 3.16 (a) Igazoljuk, hogy x akkor és csak akkor áram, ha ϱ_{x}(v) ≤ δ_{x}(v) fennáll minden v csúcsra.

(b) Ha x áram, akkor ϱ_{x}(Z) = δ_{x}(Z) minden Z ⊆ V részhalmazra is fennáll.

Legyen f : A → R ∪ {−∞} alsó kapacitás, g : A → R ∪ {+∞} felső kapacitás úgy, hogy f ≤ g. Azt mondjuk hogy az x áram megengedett (feasible), ha

f ≤ x ≤ g.  (3.13)

(Figyelem: az f-ben megengedünk −∞ komponenst, ami persze csak annyit jelent, hogy az illető élen az áram értéke nincs alulról korlátozva. Analóg módon a g-nek lehetnek +∞ komponensei, de az x áram komponensei mindig valósak. Az f alsó korlátban +∞-t, a g felső korlátban pedig −∞-t nem engedünk meg. Néha előírjuk, hogy az f vagy a g komponensei egészértékűek legyenek; ebbe beleértjük a ±∞-t is.)

A fő kérdés az, hogy mikor létezik megengedett áram, illetve ha létezik, miképp lehet meghatározni egy minimális költségű megengedett áramot.

Folyamok

Az árammal rokon a folyam fogalma. Ismét adott egy D = (V, A) irányított gráf, továbbá D-nek egy kijelölt s forráspontja (source) és egy t nyelőpontja (sink). A továbbiakban, amikor folyamokról lesz szó, végig feltesszük, hogy s-be nem lép be él és t-ből nem lép ki él. Folyamon egy olyan nemnegatív x : A → R_{+} vektort értünk, amely minden, s-től és t-től különböző pontra teljesíti a megmaradási szabályt azaz ϱ_{x}(v) = δ_{x}(v) fennáll minden v ∈ V − {s, t} csúcsra. Amennyiben még az x ≤ g feltétel is teljesül, megengedett folyamról beszélünk. Egy s-t tartalmazó, de t-t nem tartalmazó X halmazt nevezzünk st̄-halmaznak. Tetszőleges S st̄-halmaz és x folyam esetén

δ_{x}(s) = δ_{x}(s) − ϱ_{x}(s) = ∑[δ_{x}(v) − ϱ_{x}(v) : v ∈ S] = δ_{x}(S) − ϱ_{x}(S).  (3.14)

Vagyis minden S st̄-halmazra a δ_{x}(S) − ϱ_{x}(S) értékkel definiált tiszta kiáramlás független S választásától. Ezt a közös, δ_{x}(s)-sel (és ϱ_{x}(t)-vel) egyenlő értéket nevezzük az x folyam nagyságának (flow amount). Az x(uv) szám a folyam értéke az uv ∈ A élen. Az x folyamot út-folyamnak (kör-folyamnak) nevezzük, ha x csak egy s-ből t-be vezető út (irányított kör) mentén pozitív.

A fő kérdés, hogy miként lehet meghatározni a maximális nagyságú folyamot, illetve adott költségfüggvény esetén hogyan lehet kiszámítani egy előre adott k értékre a k nagyságú folyamok közül a minimális költségűt.

Gyakorlat 3.17 Igazoljuk, hogy minden nem-negatív folyam kör- és út-folyamok nem-negatív kombinációja.

3.3.2 Motivációk

Megemlítünk néhány természetes gyakorlati feladatot, melyek megoldása áramok vagy folyamok segítségével történik.

A szállítási probléma

Adott k üzem mindegyike ugyanazt a terméket állítja elő és tudjuk, hogy mekkora az egyes üzemek termelő kapacitása (supply). Adott továbbá l fogyasztóhely, melyeknek tudjuk az igényeit (demand). Tudjuk, hogy mely üzemekből mely fogyasztókhoz milyen kapacitással lehet szállítani, és hogy mennyi az egységnyi termék szállításának a költsége. Döntsük el, hogy az adott feltételek mellett létezik-e olyan szállítási terv, amely kielégíti a fogyasztók igényeit, és ha létezik, keressük meg a legolcsóbb megoldást. Ez a szállítási feladat (transportation problem). Ha minden kapacitás és igény azonosan egy, akkor a szállítási feladat a korábban megismert hozzárendelési problémára redukálódik.

Gráfnyelven a szállítási feladat a következőképpen fogalmazható meg. Adott egy G = (S, T; E) páros gráf. Az S pontjai felelnek meg az üzemeknek, míg T pontjai a felhasználóknak. Minden v ∈ S-beli ponthoz adott egy q(v) szám, amely az illető üzem kibocsátóképességét jelzi. Minden v ∈ T -beli ponthoz adott egy h(v) szám, amely v igényét jelzi. Adott még a gráf élein egy g : E → R_{+} kapacitásfüggvény valamint egy c : E → R_{+} költségfüggvény. Az első feladat annak eldöntése, hogy létezik-e olyan x : E → R_{+} függvény, amelyre 0 ≤ x ≤ g, d_{x}(v) ≤ q(v) minden v ∈ S-re, és d_{x}(v) = h(v) minden v ∈ T -re. Amennyiben létezik ilyen x, úgy a második feladat egy olyan x meghatározásából áll, amely minimalizálja a cx költséget.

A szállítási feladatot a következőképp lehet folyam feladatként megfogalmazni. Irányítsuk meg a G gráf éleit S-től T -felé. Adjunk a gráfhoz egy új s pontot, amelyből minden v ∈ S pontba vezet egy q(v) kapacitású él. Adjunk a gráfhoz egy új t pontot, amelybe minden v ∈ T pontból vezet egy h(v) kapacitású él. A szállítási feladatnak pontosan akkor van megoldása, ha az így keletkezett D digráfban van M := ∑_{v∈T} q(v) nagyságú folyam. A költséges változat egy minimális költségű M nagyságú folyam meghatározását célozza.

Egy teszt feladat

Egy áramkör működésének helyességét szeretnénk tesztelni. Az áramkör n különböző állapotban lehet. Minden állapotból történhet átmenet bizonyos más állapotokba, és azt tudjuk mérni, hogy egy megadott átmenet valóban azt teljesíti-e, amit a tervezők előírtak. Adott továbbá az egyes átmeneteknek az ideje. A mi feladatunk az átmenetek egy sorrendjének megtervezése úgy, hogy az összidő a lehető legkisebb legyen.

Gráfnyelven a feladat a következőképp fogalmazható meg. Adott egy D = (V, A) erősen összefüggő irányított gráf, élein egy költségfüggvénnyel. A digráf pontjai az áramkör állapotainak felelnek meg, míg élei a lehetséges átmeneteknek. Tervezzük meg a gráf éleinek egy olyan bejárását, hogy minden élen legalább egyszer megyünk végig és a bejárás összköltsége minimális.

Amennyiben minden pontba ugyanannyi él megy be, mint ki, akkor nincs mit optimalizálnunk: ilyenkor könnyen megkonstruálható az éleknek egy olyan (úgynevezett Euler-) bejárása, amely minden élt pontosan egyszer használ. Ha viszont ez a fokszám-feltétel nem teljesül, akkor bizonyos éleken egynél többször is át kell mennünk. Jelölje z(e) azt a számot, amely azt mutatja, hogy az e élen hányszor haladunk végig. A tesztelési feladat olyan egészértékű z : A → Z_{+} függvény meghatározását jelenti, amelynek értéke minden élen pozitív, minden v csúcsra ϱ_{z}(v) = δ_{z}(v) és cz minimális. Másszóval egy egészértékű minimális költségű megengedett áramot kell keresnünk az f ≡ 1, g ≡ ∞ kapacitásfüggvényekre vonatkozólag.

Élidegen utak

Alkalmazásokban gyakran vetődik fel a kérdés, hogy mikor létezik egy irányított gráf egy pontjából valamely másikba k élidegen (vagy pontidegen) út. Erre az elvi választ Menger tétele adja meg, amelynek különféle változatai vannak, annak megfelelően, hogy élidegen vagy pontidegen utakat keresünk irányított vagy irányítatlan gráfban. Az irányított élidegen verzió szerint akkor és csak akkor létezik s-ből t-be k élidegen út, ha minden s-t tartalmazó S ⊆ V −t halmaz kifoka legalább k. Kérdés, hogy algoritmikusan miként lehet megtalálni k élidegen utat, illetve ha nincs megoldás, akkor hogyan határozható meg a Menger tétel által biztosított knál kisebb kifokú S halmazt. (Egy ilyen halmaz gyorsan ellenőrizhető igazolványként szolgálhat arra, hogy D-ben nem létezik k élidegen st-út.) Még összetettebb feladatot kapunk, ha az éleken adott költségfüggvényre vonatkozólag úgy akarunk k élidegen utat keresni, hogy összköltségük minimális legyen.

Mindenesetre a következő nagyon speciális esetben még csak Menger tételére sincs szükségünk. Tegyük fel, hogy a D′ = (V, A′) digráfban

(i) s-be nem lép be él, (ii) t-ből nem lép ki él, (iii) és minden más v csúcs ϱ(v) befoka egyenlő δ(v) kifokával.

Ebben az esetben bizonyosan létezik δ(s) élidegen út s-ből t-be. Valóban, induljunk ki s-ből, majd amíg csak lehetséges haladjunk tovább addig még nem használt él mentén. A fokszámokra tett feltételek miatt csak t-ben akadunk el. Így tehát megtaláltunk egy st-sétát, amelyből az esetleges köröket kihagyva lesz egy P_{1} utunk. Ezt az eljárást δ(s)-szer ismételve megkapjuk a keresett δ(s) élidegen utat.

Bár ez a mohó módszer csak nagyon speciális esetben használható, de útmutatást ad az általános esetre is. Ahelyett ugyanis, hogy D-ben a k élidegen utat közvetlenül próbálnánk megtalálni, a D egy olyan D′ részgráfjának megkeresésére törekszünk, amely teljesíti a fenti három tulajdonságot, és amelyben δ_{D′}(s) = k. A fentiek szerint ekkor a D′-ben már könnyűszerrel megtaláljuk a k élidegen utat.

Feladatunk tehát egy egészértékű k nagyságú folyam megkeresése a g ≡ 1 kapacitásfüggvényre nézve, illetve a költséges útpoblémában egy minimális költségű k nagyságú folyam megkeresése.

3.3.3 Megengedett áramok

Megengedett áramok létezésére ad szükséges és elegendő feltételt az alábbi, Alan Hoffmantól származó tétel.

TÉTEL 3.18 (Hoffman, 1960) A D = (V, A) digráfban adott f ≤ g kapacitásfüggvényekre vonatkozólag akkor és csak akkor létezik megengedett áram, ha

ϱ_{f} (X) ≤ δ_{g}(X) minden X ⊆ V halmazra.  (3.15)

Továbbá, ha f és g egészértékűek és (3.15) fennáll, úgy létezik egészértékű megengedett áram is.

Biz. A szükségesség igazolásához tegyük fel, hogy x megengedett áram. Ekkor δ_{g}(X) − ϱ_{f} (X) ≥ δ_{x}(X) − ϱ_{x}(X) = 0, amiből (3.15) következik.

Az elegendőség igazolásához tekintsük a következő függvényt:

γ(X) := δ_{g}(X) − ϱ_{f} (X).  (3.16)

Most (3.15) azzal ekvivalens, hogy γ nem-negatív. Az X, Y ⊆ V halmazokra jelölje d_{x}(X, Y) az x(e) értékek összegét mindazon e élekre, melyek X − Y és Y − X egy-egy pontját kötik össze (mindegy melyik irányban). A bizonyítás kulcsa a következő lemma.

Lemma 3.19 γ(X) + γ(Y) = γ(X ∩ Y) + γ(X ∪ Y) + d_{g−f} (X, Y).

Biz. Könnyen ellenőrizhetjük, hogy minden lehetséges él hozzájárulása a két oldalhoz ugyanannyi. •

A Hoffman tétel bizonyításához visszatérve nevezzünk egy olyan e élt pontosnak, amelyre f(e) = g(e). Nevezzünk pontosnak csúcsok egy Z részhalmazát, amelyre γ(Z) = 0. Tegyük fel indirekt, hogy a D digráfra nem igaz a tétel, és válasszunk egy olyan ellenpéldát (adott D), amelyben a pontos élek és a pontos halmazok együttes száma maximális. Az nem lehet, hogy minden él pontos, mert akkor x := f(= g), a (3.15) miatt, megengedett áram volna. Legyen a = st olyan él, amelyre f(a) < g(a).

Állítjuk, hogy a belép egy pontos T halmazba. Valóban, ha nem lépne be, akkor f(a)-t meg tudnánk úgy növelni, hogy a módosított f′ alsó korlátra továbbra is fennállna f′ ≤ g és ϱ_{f′}(Z) ≤ δ_{g}(Z) minden Z ⊆ V -re, továbbá vagy az a él válna pontossá, vagy pedig egy olyan halmaz, amelybe az a él belép. Ez a lehetőség azonban ellentmondana a pontos élek és halmazok maximális együttes számára tett feltevésünknek. Tehát az a él valóban belép egy T pontos halmazba. Analóg módon látható, hogy a kilép egy S pontos halmazból.

Az a él létezése folytán tudjuk, hogy a d_{g−f} (S, T) érték szigorúan pozitív. A lemmát és (3.15)-t alkalmazva kapjuk, hogy 0+0 = γ(S)+γ(T) > γ(S∩T)+γ(S∪T) ≥ 0+0, amely ellentmondás mutatja, hogy nem létezhet ellenpélda, és így a tétel következik. Ugyanez a gondolatmenet azt is mutatja, hogy ha f és g egészértékű, akkor van egészértékű megengedett áram is. • •

Gyakran az áramnál általánosabb fogalmat tekintenek. Például az x vektorra azt írjuk elő, hogy minden v pontra ϱ_{x}(v) − δ_{x}(v) = b(v), ahol b : V → R előre adott vektor. Vagy még általánosabban, adott p : V → R ∪ {−∞}, b : V → R ∪ {∞} esetén (p ≤ b) minden v csúcsra legyen

p(v) ≤ ϱ_{x}(v) − δ_{x}(v) ≤ b(v).  (3.17)

Egy egyszerű fogással azonban ez a feladat áram problémává alakítható. Nevezetesen, vegyünk fel egy új s csúcsot, és D valamennyi pontjából vezessünk egy-egy élt s-be. Egy új vs élen legyen f(vs) := p(v), g(vs) := b(v). Jelölje a kibővített élek halmazát A′. Tetszőleges x : A → R vektorhoz legyen x′ : A′ → R a következőképpen definiálva: x′(e) := x(e) ha e ∈ A, és x′(e) := ϱ_{x}(v)−δ_{x}(v) ha e′ = vs (v ∈ V). Hasonlóképp terjesszük ki f-t és g-t az új élekre: f(us) := p(u), g(us) := b(u). Könnyen látszik, hogy x akkor és csak akkor teljesíti (3.13)-t és (3.15)-t, ha x′ megengedett áram.

Feladat 3.18 Hoffman tételének általánosításaként igazoljuk, hogy akkor és csak akkor létezik a (3.13)-t és (3.17)-t kielégítő x vektor, ha ϱ_{f} (X) − δ_{g}(X) ≤ min{p(X), b(V − X)} fennáll minden X ⊆ V -re.

3.3.4 Áramok és folyamok kapcsolata

Alapvető az alábbi, L.R. Fordtól és D.R. Fulkersontól származó Maximális-Folyam Minimális-Vágás tétel (Max Flow Min Cut; MFMC).

TÉTEL 3.20 (Maximális-Folyam Minimális-Vágás) A D = (V, A) irányított gráfban akkor és csak akkor létezik a g kapacitásra vontakozó k nagyságú megengedett folyam, ha minden S st̄-halmazra δ_{g}(S) ≥ k. Ha e feltétel teljesül, g egészértékű és k egész, úgy a folyam is választható egészértékűnek.

A tételt néha az alábbi ekvivalens alakban említik.

TÉTEL 3.21 A megengedett st-folyamok maximális nagysága egyenlő a δ_{g}(S) értékek minimumával, ahol a minimum az összes st̄-halmazra megy. Ha g egészértékű, úgy a maximum egészértékű folyamon is felvétetik.

Biz. Legyen x megengedett st-folyam és S st̄-halmaz. Ekkor (3.14) folytán δ_{x}(s) = δ_{x}(S) − ϱ_{x}(S) ≤ δ_{g}(S), amiből max ≤ min következik.

A fordított irány igazolásához jelölje m_{g} a szóbanforgó minimum értékét. (Ez a minimum nyilvánvalóan létezik, merthogy véges sok szám minimumáról van szó. Az viszont még ezen a ponton nem világos, hogy létezik maximális nagyságú folyam.) Adjunk D-hez egy új e = ts élt és definiáljuk f(e) = m_{g}, g(e) := {∞}. Az eredeti éleken legyen f mindenhol nulla.

Könnyen látszik, hogy most (3.15) fennáll, és így a 3.18 tétel szerint létezik megengedett áram (amely ráadásul egészértékű, ha g az). Kihagyva a hozzávett e élt, m_{g} nagyságú folyamot kapunk. •

A fenti bizonyítás előnye, hogy nem csupán egész vagy racionális kapacitásokra működik. Hátránya viszont, hogy nem konstruktív.

Feladat 3.19 Az MFMC tételből vezessük le Menger tételének irányított élidegen változatát. (Azaz egy irányított gráfban akkor és csak akkor van egy s pontból egy t pontba k élidegen út, ha minden st̄-halmazból lép ki legalább k él.)

Hoffman tétele az MFMC tételből

Nemcsak a maximális folyam feladat vezethető vissza megengedett áramokra, hanem megfordítva, a Hoffman tétel is levezethető az MFMC tételből. Ennek érdekében minden v ∈ V csúcsra legyen λ(v) := ϱ_{f} (v) − δ_{f} (v). (Az itt következő levezetésben feltesszük, hogy f, g véges értékű: kis gyakorló feladat az általános eset kezelése.) Ha λ mindenhol nulla, akkor f megengedett áram, és készen vagyunk.

Ha λ nem azonosan nulla, akkor az S = {v : λ(v) > 0} és T = {v : λ(v) < 0} halmazok nem-üresek. Készítsük el a D′ = (V′, A′) digráfot úgy, hogy V′ = V ∪ {s, t} és A′ = A ∪ (s, v) : v ∈ S ∪ ((v, t) : v ∈ T). Definiáljuk a g′ kapacitásfüggvényt a következőképpen. g′(sv) := λ(v) ha v ∈ S, g′(vt) := −λ(v) ha v ∈ T, és g′(a) := g(a) − f(a) ha a ∈ A. Legyen M = ∑[λ(v) : v ∈ S]. A következő lemma a kapcsolatot írja le egyrészt D megengedett áramai és D′ megengedett st folyamai között, másrészt D′ M-nél kisebb vágásai és D (3.15)-t megsértő halmazai között.

Lemma 3.22 (a) Ha x M-nagyságú megengedett st-folyam D′-ben (a g′ kapacitásra vonatkozóan), akkor f +x (az eredeti A-ra megszorítva) megengedett áram.

(b) Ha δ_{g′}(X + s) < M valamely X ⊆ V halmazra, akkor X megsérti a Hoffman-féle (3.15) feltételt.

Biz. (a) A megengedettség, azaz f ≤ f + x ≤ g, következik a konstrukcióból. A megmaradási szabály nyilván fennáll V − (S ∪ T) pontjaiban. Mivel x nagysága M, minden s-ből kilépő él telített. Így S-nek bármely v pontjára az eredeti gráfban érvényes, hogy x(sv) + ϱ_{x}(v) = δ_{x}(v), azaz ϱ_{f} (v) − δ_{f} (v) + ϱ_{x}(v) = δ_{x}(v), és így ϱ_{f+x}(v) = δ_{f+x}(v), vagyis a megmaradási szabály érvényes S pontjaiban is. A bizonyítás T pontjaira analóg módon végezhető el.

(b) λ(S) = M > δ_{g′}(X + s) = δ_{g−f} (X) + λ(S − X) − λ(T ∩ X), amibe λ(S − X) = λ(S) − λ(S ∩ X)-t helyettesítve kapjuk, hogy 0 > δ_{g−f} (X)−λ(S ∩X)−λ(T ∩X) = δ_{g−f} (X)−λ(X) = δ_{g−f} (X)+δ_{f} (X)−ϱ_{f} (X), vagyis δ_{g}(X) < ϱ_{f} (X). •

Feladat 3.20 Vezessük le Hoffman tételét az MFMC tételből, ha f-nek lehetnek {−∞}, g-nek pedig {+∞} komponensei.

A fenti redukció azt is mutatja, hogy egy maximális folyam illetve minimális vágás meghatározására szolgáló algoritmus segítségével el lehet dönteni, hogy teljesül-e (3.15), és ha igen, akkor tudunk találni megengedett áramot. Hasonlóképp, a minimális költségű folyam feladatra vonatkozó algoritmus segítségével megoldható a minimális költségű megengedett áram problémája is.

Következő feladatunk először a maximális folyam meghatározásának algoritmikus vizsgálata lesz, majd a minimális költségű k nagyságú folyamok kiszámítására vontakozó algoritmust mutatjuk be.

2004. december 15. file: linp23

3.4 MAXIMÁLIS FOLYAM ALGORITMUSOK

Az MFMC tételt először racionális g kapacitásfüggvényre igazoljuk a Ford-Fulkerson növelő utas algoritmus segítségével. Legyen x megengedett folyam. Ekkor tetszőleges S st̄-halmaz esetén az x folyam nagyságára érvényes az alábbi becslés. δ_{x}(s) = δ_{x}(s) − ϱ_{x}(s) = ∑[δ_{x}(v) − ϱ_{x}(v) : v ∈ S] = δ_{x}(S) − ϱ_{x}(S) ≤ δ_{g}(S). Ebből adódik, hogy az 3.20 tételben a feltétel szükségessége illetve az 3.21 tételben max ≤ min egyenlőtlenség.

Az is megállapítható, hogy egy x folyam bizonyosan maximális nagyságú, amennyiben létezik egy olyan S st̄-halmaz, amelyre teljesülnek az alábbi optimalitási feltételek.

(a) x(a) = g(a) minden a élre, amely kilép S-ből, és

(b) x(a) = 0 minden a élre, amely belép S-be.

Jelen célunk egy ilyen x folyam és S halmaz algoritmikus megkeresése. Ezt először csak egészértékű (illetve racionális) g kapacitásfüggvény esetén tesszük meg, majd tetszőleges g-re.

3.4.1 A növelő utak módszere

A Fordtól és Fulkersontól származó algoritmus tetszőleges x megengedett st-folyamból indul ki (például x ≡ 0), és azt iteratívan javítja. Készítsünk el egy D_{x} = (V, A_{x}) digráfot a következőképp. Egy uv él A_{x}-hez tartozik, ha vagy (i) uv ∈ A és x(uv) < g(uv), és ekkor ezen élét D_{x}-nek előre-élnek hívjuk, vagy (ii) vu ∈ A és x(vu) > 0, és ekkor uv neve hátra-él. Jelölje S az s-ből D_{x}-ben irányított úton elérhető pontok halmazát.

1. eset t ∉ S, azaz t nem érhető el s-ből. Mivel D_{x} semelyik éle sem lép ki S-ből, ezért D-ben minden S-ből kilépő él telített (azaz x(uv) = g(uv)) és minden S-be belépő uv élen x(uv) = 0. Vagyis az (a) és (b) optimalitási feltételek teljesülnek és az algoritmus végetér: az adott x folyam nagysága egyenlő δ_{g}(S)-sel.

2. eset t ∈ S, azaz t elérhető s-ből. Legyen P tetszőleges s-ből t-be vezető irányított út D_{x}-ben.

Legyen Δ_{1} := min{g(uv) − x(uv) : uv előre-éle P -nek} és Δ_{2} = min{x(vu) : uv hátra-éle P -nek}. Legyen Δ = min{Δ_{1}, Δ_{2}}. Ekkor Δ pozitív. Nevezzük P egy élét kritikusnak, ha Δ ezen az élen éretik el.

Módosítsuk x-t a következőképp. Ha uv előre-éle P -nek, úgy a D uv élén növeljük x(uv)-t Δ-val. Ha uv hátra-éle P -nek, úgy a D vu élén csökkentsük x(vu)-t Δ-val. Könnyen látható, hogy a módosított x′ megengedett folyam lesz, amelynek nagysága Δ-val nagyobb, mint x-é. Következésképp, ha g egészértékű, akkor a 2. eset csak véges sokszor fordulhat elő, vagyis véges sok növelés után az 1. eset következik be, amikor is az algoritmus véget ér. Tehát egész kapacitások esetén az MFMC tétel bizonyítást nyert.

Amennyiben g racionális, a nevezők legkisebb közös többszörösével a kapacitásokat végigszorozva visszajutunk az egész kapacitású esethez. •

Megjegyzendő, hogy ha g irracionális, akkor a fenti eljárás nem biztosan ér véget véges sok lépésben (amint az példával demonstrálható). Másik hátrány, hogy még egész kapacitások esetén is az iterációk száma arányos lehet az előforduló legnagyobb kapacitás nagyságával. Így az algoritmus bonyolultsága az input méretének exponenciális függvényével arányos, azaz nem polinomiális. (Egy szám nagysága a jegyei számának exponenciális függvénye.)

3.4.2 Skálázási technika

Az alábbiakban bemutatunk egy ügyes fogást, amelynek segítségével bizonyos eljárásokat polinomiális futásidejűvé lehet tenni. Használatát a maximális folyam problémán szemléltetjük, mert ott igen egyszerű, de számos alkalommal bonyolultabb körülmények között is használható.

Tételezzük fel, hogy a kapacitások egész számok és kettes számrendszerben vannak megadva. A legnagyobb kapacitás álljon M jegyből. Összesen M darab folyam problémát fogunk megoldani, mindegyikben a megelőzően megkapott maximális folyamot használjuk kiindulási folyamként. Jelölje g_{i} azt a kapcitás függvényt, amely úgy áll elő, hogy minden élen az eredeti kapacitásnak (balról) az első i jegyét tekintjük, míg a többit eltöröljük. Tegyük fel, hogy a g_{i} kapacitásfüggvényre nézve már meghatároztuk az x_{i} maximális folyamot. Ekkor 2x_{i} megengedett folyam a g_{i+1}-re nézve. A 2x_{i}-ből kiindulva alkalmazzuk a fent leírt növelő utas módszert a g_{i+1} kapacitásfüggvényre vonatkozólag.

Miután minden e élre g_{i+1}(e) értéke vagy 2g_{i}(e) vagy 2g_{i}(e)+1, legfeljebb élszámnyi növelés után megkapjuk az x_{i+1} maximális folyamot (a g_{i+1}-re nézve). Összesen tehát legfeljebb M|A| növelés segítségével megkonstruáltunk egy eredeti kapacitásokra vonatkozó maximális folyamot.

3.4.3 Legrövidebb növelő utak

A fenti eljárás hátránya, hogy csak egész (és így racionális) kapacitásokra működik. Ezen nehézség leküzdésére J. Edmonds és R. Karp [1972] és E.A. Dinits [1970] javasolták, hogy minden iterációban a legkisebb élszámú növelő utat válasszuk. Ez az egyszerű megszorítás lehetővé teszi, hogy a Ford-Fulkerson algoritmus bonyolultságát |V | és |A| polinomjával korlátozzuk, függetlenül a kapacitások nagyságától. (Ezt persze úgy értve, hogy a számokkal végzett alapműveleteket egyetlen lépésnek tekintjük.)

TÉTEL 3.23 Ha a Ford-Fulkerson féle növelő utas algoritmusban mindig a legrövidebb növelő utat használjuk, úgy az eljárás tetszőleges g kapacitásfüggvény esetén legfeljebb O(|V ||A|) növelés után véget ér.

Biz. Jelölje σ_{x}(v) a v távolságát D_{x}-ben s-től. (Ha nincs egyáltalán s-ből v-be út, akkor σ_{x}(v) = ∞). Legyen P egy legrövidebb út D_{x}-ben s-ből t-be. Ekkor P mindegyik uv élére, σ_{x}(v) = σ_{x}(u) + 1.

Lemma 3.24 Amikor P mentén végrehajtunk egy növelést, a σ_{x}(v) érték semmilyen v-re sem csökken.

Biz. Nézzük meg milyen hatással van a növelés a D_{x} segédgráfra. Mivel a folyamot D-nek csak olyan élein változtattuk, melyek P éleinek felelnek meg, D_{x} csupán P éleinél változhat. Éspedig, D′_{x} lehetséges új élei P élei megfordítva, ugyanakkor P kritikus élei (ahol Δ felvétetik) eltűnnek D_{x}-ből. A v pont s-től való távolsága csak akkor csökkenhetne, ha olyan uw éleket adnánk a segédgráfhoz, melyekre σ_{x}(w) > σ_{x}(u) + 1, amiből a lemma következik. •

A növelések sorozatát fázisokra bontjuk. Egy fázis során σ_{x}(t) ugyanaz marad. A lemma szerint legfeljebb |V | − 1 fázis lehetséges.

Lemma 3.25 Egy fázison belül legfeljebb |A| növelésre kerülhet sor.

Biz. Jelölje σ_{i}(v) a v pont távolságát s-től az i fázis kezdetén az aktuális segédgráfban. Nevezzünk egy uv élt i-szorosnak, ha σ_{i}(v) = σ_{i}(u) + 1. Az i-dik fázis során csupán i-szoros éleket használunk. Tudjuk, hogy egy növelés legalább egy i-szoros élt eltüntet az aktuális segédgráfból és nem hoz be új i-szoros élt. Mivel a segédgráfnak legfeljebb |A| darab i-szoros éle van, a lemma következik. •

Mindezeket összetéve kapjuk, hogy legfeljebb |V ||A| növelésre van szükségünk, így az Edmonds-Karp és Dinits féle algoritmus össz-bonyolultsága O(|V ||A|^{2}), hiszen egyetlen növelés O(|A|) lépést igényel.

Miután a fenti algoritmus futása során a rendelkezésre álló legrövidebb növelő utak közül bármelyiket választhatjuk, a végül kapott maximális folyam függ ezen választásoktól. Nem így a végső S!

Feladat 3.21 (a) A végül kapott minimális δ^{+}(S) vágás független az algoritmus futásától. (b) Ha X és Y minimalizálja az δ_{g}(Z) értéket az összes st̄-halmazra, akkor X ∩ Y és X ∪ Y is minimalizáló st̄-halmazok. (c) A minimalizáló halmazok metszete S.

Feladat 3.22 Adott e élre hogyan lehet eldönteni, hogy (a) létezik-e olyan maximális folyam, amely telíti e-t,

(b) minden maximális folyam telíti e-t.

Feladat 3.23 Algoritmikusan határozzuk meg az összes {x, y} rendezett csúcspárt, amelyre létezik olyan X halmaz, hogy s, x ∈ X, y ∈ V − X és X minimális vágást határoz meg.

Feladat 3.24 Adott két kapacitásfüggvény esetén algoritmikusan döntsük el, hogy létezik-e olyan S st̄-halmaz, amely miondkét kapacitásfüggvényre nézve minimális vágást határoz meg.

Feladat 3.25 Adott c_{1} és c_{2} kapacitásfüggvények esetén keressünk olyan c_{1}-re nézve minimális st̄-vágást, amely a c_{2}-re nézve a lehető legkisebb.

Feladat 3.26 Készítsünk algoritmust, amely adott költségfüggvényre eldönti, hogy létezik-e k élidegen út s-ből t-be, melyek mindegyike minimális költségű.

Feladat 3.27 Digráfban keressünk két diszjunkt halmazt, melyek egyike st̄-halmaz, másika ts̄-halmaz úgy, hogy befok összegük minimális.

2004. december 15. file: lin24

3.5 MINIMÁLIS KÖLTSÉGŰ FOLYAMOK

Legyen adva D = (V, A) irányított gráf az s forrás- és t nyelőponttal. Adott még az éleken a g nemnegatív kapacitásfüggvény és a c nemnegatív költségfüggvény. Feltesszük, hogy g egészértékű. Korábban már láttuk, hogy miként lehet egy maximális M nagyságú s-ből t-be vezető folyamot polinom időben kiszámítani. Most minden 0 és M közé eső k egészre szeretnénk találni egy olyan k nagyságú folyamot, melynek költsége a k nagyságú folyamok közt minimális. Egy z folyam költségét a cz = ∑[c(e)z(e) : e ∈ A] skaláris szorzattal definiáljuk.

A Ford és Fulkerson [1962] által kifejlesztett megoldó algoritmus ismertetése előtt megjegyezzük, hogy van egy speciális költségfüggvény osztály, amelyre a feladat szinte semmitmondó. Legyen π : V → Z_{+} olyan függvény a V -n, amelyre π(s) = 0 ≤ π(v) ≤ π(t) minden v ∈ V -re. Ilyen függvényt potenciálnak hívunk. Definiáljuk a Δ_{π} : A → R költségfüggvényt a következőképpen

Δ_{π}(uv) := π(v) − π(u),  (3.18)

és nevezzük Δ_{π}-t pontindukált költségfüggvénynek. Ennek lehetnek negatív értékei is.

Lemma 3.26 A Δ_{π} pontindukált költségfüggvényre vonatkozólag minden k nagyságú megengedett folyamnak ugyanaz a költsége, éspedig kπ(t).

Biz. Mivel minden folyam út-folyamok és kör-folyamok nemnegatív kombinációja, azt kell csupán kimutatnunk, hogy egy kör-folyam költsége nulla, míg egy 1 nagyságú út-folyam költsége π(t). Ehhez legyen a z_{1} kör-folyam értéke 1 a K irányított kör élein és a z_{2} út-folyam értéke szintén 1 a P st-út élein. A kör csúcsai legyenek {v_{1}, …, v_{l}} (ahol a v_{l+1} = v_{1} jelölési konvencióval élünk). Ekkor z_{1}Δ_{π} = ∑[Δ_{π}(v_{i}v_{i+1}) : i = 1, …, l] = ∑[π(v_{i+1}) − π(v_{i}) : i = 1, …, l] = 0. Legyenek P csúcsai s = u_{1}, u_{2}, …, u_{l} = t. Ekkor z_{2}Δ_{π} = ∑[c_{π}(u_{i}u_{i+1}) : i = 1, …, l − 1] = ∑[π(u_{i+1} − π(u_{i}) : i = 1, …, l] = π(t) − π(s) = π(t). •

Az uv ∈ A élekre használni fogjuk a következő jelölést:

c_{π}(uv) := c(uv) − π(v) + π(u).  (3.19)

A lemma miatt minimális költségű folyam meghatározása szempontjából c és c_{π} ekvivalens.

TÉTEL 3.27 A D = (V, A) irányított gráf élhalmazán adott a g : A → Z_{+} egészértékű kapacitásfüggvény és a c : A → R_{+} költségfüggvény. A k nagyságú egészértékű megengedett folyamok költségének minimuma egyenlő a

kπ(t) + ∑[c_{π}(uv)g(uv) : uv ∈ A, c_{π}(uv) > 0]  (3.20)

érték maximumával, ahol a maximum az összes π potenciálra megy. Egy k nagyságú megengedett z folyam akkor és csak akkor minimális költségű a k nagyságú megengedett folyamok között, ha létezik olyan π potenciál, amelyre fennállnak a következő optimalitási feltételek:

π(v) − π(u) < c(uv) ⇒ z(uv) = 0,  (i)
π(v) − π(u) > c(uv) ⇒ z(uv) = g(uv).  (ii)

Amennyiben c egészértékű, az optimális π is választható egészértékűnek.

Biz. Potenciálok segítségével egy z folyam cz költségére az alábbi alsó korlátot nyerhetjük.

∑ c(uv)z(uv) = ∑[π(v)−π(u)]z(uv)+∑ c_{π}(uv)z(uv) = kπ(t)+∑[c_{π}(uv)z(uv) : c_{π}(uv) < 0]+∑[c_{π}(uv)z(uv) : c_{π}(uv) > 0] ≥ kπ(t) + 0 + ∑[c_{π}(uv)g(uv) : c_{π}(uv) > 0].

Ebből egyrészt következik a min ≥ max egyenlőtlenség, másrészt az, hogy egy k nagyságú z folyam bizonyosan minimális költségű a k nagyságúak között, ha létezik hozzá olyan π potenciál, amelyre a fenti becslésben minden egyenlőtlenség egyenlőséggel teljesül, ami viszont pont azzal ekvivalens, hogy fennállnak a tételben megadott (i) és (ii) optimalitási feltételek. Emiatt a tétel mindkét része következik, ha kimutatjuk, hogy minden lehetséges egész k értékre létezik egy k nagyságú egészértékű megengedett folyam és egy ehhez tartozó π potenciál (amely egészértékű, ha c az), melyek kielégítik az optimalitási feltételeket. Ezeket konstruálja meg Ford és Fulkerson most ismertetésre kerülő minimál-költséges folyam algoritmusa, amely a maximális nagyságú folyam kiszámítására vonatkozó Ford-Fulkerson féle növelő utas eljárás finomításának tekinthető.

Az eljárás az azonosan nulla folyammal és az azonosan nulla potenciállal indul. Ezután a folyam nagyságát növeljük egyenként, illetve menetközben néha a potenciált növeljük úgy, hogy az optimalitási feltételek végig fennállnak. Az algoritmus akkor ér véget, amikor maximális nagyságú folyamot illetve egy minimális vágást kaptunk. Az algoritmus végig megőrzi az aktuális folyam egészértékűségét és amennyiben c egészértékű, úgy az aktuális potenciálét is.

ITERATÍV LÉPÉS Az általános helyzetben adott a z folyam és a π potenciál, és ezek kielégítik az (i) és (ii) feltételeket. Megkonstruálunk egy D′ = (V, A′) segédgráfot a következőképpen. D′-nek kétféle éle van: előre és hátra. Egy uv ∈ A′ él előre-él, ha uv ∈ A, c_{π}(uv) = 0 és z(uv) < g(uv). Egy uv ∈ A′ él hátra-él, ha vu ∈ A, c_{π}(vu) = 0 és z(vu) > 0. Legyen S az s-ből D′-ben irányított úton elérhető pontok halmaza. Két eset lehet.

1. Eset t ∉ S, azaz t nem elérhető s-ből.

Legyen ε_{1} = min{c_{π}(uv) : uv ∈ A, u ∈ S, v ∈ V − S, z(uv) < g(uv)} és ε_{2} = min{−c_{π}(uv) : uv ∈ A, u ∈ V − S, v ∈ S, z(uv) > 0}, ahol az üres halmazon vett minimumot ∞-nek definiáljuk. Legyen ε = min{ε_{1}, ε_{2}}. Az optimalitási feltételek és az S definíciója miatt ε pozitív.

Amennyiben ε = ∞, akkor az algoritmus végetér. Ebben az esetben az S-ből kilépő eredeti élek mind telítettek, míg az S-be belépő eredeti élek mindegyikén a folyam nulla. Így tehát δ_{g}(S) = δ_{z}(S)−ϱ_{z}(S) = δ_{z}(s), vagyis az aktuális z folyam maximális nagyságú és az S-ből kilépő élek halmaza minimális vágást határoz meg.

Legyen most ε < ∞, és módosítsuk π-t úgy, hogy minden v ∈ V − S-re növeljük π(v)-t ε-nal. Az S és az ε definíciójából rögtön kapjuk:

Állítás 3.28 A módosított potenciál és a változatlanul hagyott z folyam kielégíti az optimalitási feltételeket.

Készítsük el az új segédgráfot és ismételjük meg az eljárást. Figyeljük meg, hogy a segédgráfban a (régi) S által feszített élek változatlanok maradnak és legalább egy S-ből kilépő új él keletkezik az ε választása folytán. (Csupán tájékoztatásul: az összes S-be lépő él megszűnik.) Emiatt az új segédgráfban az s-ből elért pontok halmaza szigorúan bővebb lesz, mint S. Ezért az 1. eset legfeljebb (|V | − 1)-szeri előfordulása alatt vagy után bizonyosan vagy az ε = ∞ következik be, vagypedig az alábbi 2. eset.

2. Eset t ∈ S, vagyis t elérhető s-ből. Legyen P a D′-ben egy s-ből t-be vezető irányított út. Módosítsuk z-t a következőképpen. Legyen z′(uv) = z(uv) + 1, ha uv a P -nek előre-éle és legyen z′(uv) = z(uv) − 1, vu a P -nek hátra-éle.

A módosításból adódik:

Állítás 3.29 A módosított folyam és változatlanul hagyott potenciál kielégíti az optimalitási feltételeket.

Ezzel az algoritmus leírását be is fejeztük. Az eljárás bizonyosan véges, hiszen összesen M folyamnövelésre kerül sor és két folyamnövelés között legfeljebb |V | potenciál változtásra. Ezáltal a tétel bizonyítása teljes. •

Mi mondható az eljárás futásidejéről? Minthogy minden 1 ≤ k ≤ M értékre ki akartuk számolni a k nagyságú minimális költségű folyamot, az algoritmus lépésszámát az M értékének és a digráf |A| méretének függvényében kell becsülnünk. Mivel lényegében M darab növelésre volt szükségünk (2. eset), ezért az eljárás polinomimális M és |A| függvényében.

Elképzelhető persze olyan helyzet is, amikor csak egy maximális nagyságú minimális költségű folyamot kell kiszámítanunk. Ebben az esetben az algoritmus lépésszámának a digráf méretének függvényében kellene polinomiálisnak lennie, és ez most természetesen nem áll, hiszen a lépésszám az M nagyságával arányos. De még ebben az esetben is két fontos speciális eset kezelhető.

Ha a legnagyobb kapacitás nem túlságosan nagy (nevezetesen, ha |V | polinomjával korlátozható), akkor a fenti eljárás nyilván polinomiális, függetlenül attól, hogy a c költség-függvény egészértékű-e vagy sem.

Tegyük most fel, hogy a kapacitások tetszőlegesek, a költség-függvény egészértékű és ,,kicsi”. Ekkor az algoritmus következő módosítása erősen polinomiális algoritmust eredményez. Tekintsük az algoritmus egy közbenső helyzetét, amikor egy π potenciál rendelkezésre áll. A szoros élek digráfjában (egy uv él szoros, ha c_{π}(uv) = 0) számítsunk ki (a Max-flow Min-cut algoritmusssal) egy maximális nagyságú z folyamot és egy S minimális ki-kapacitású st̄-halmazt. Ha D-ben minden S-be belépő és S-ből kilépő él szoros, akkor S minimális vágást határoz meg és az aktuális z folyam maximális nagyságú, amely kielégíti az optimalitási feltételeket. Ebben az esetben az algoritmus véget ér.

Amennyiben D-nek létezik nem-szoros éle, amely S-be be- vagy kilép, akkor ε, ahogy azt fentebb az 1. esetnél kiszámítottuk, véges lesz. Módosítsuk π-t úgy, mint az előbb, azaz minden v ∈ V − S-re növeljük π(v)-t ε-nal. Azt állítjuk, hogy a π(t) érték a D digráf valamely (irányítatlan értelemben vett) s-ből t-be vezető útjának a költsége. Valóban, minden folyam-növeléskor a segédgráfban van olyan st út, amely szoros élekből áll. Következik, hogy a különböző π(t) értékek száma (vagyis az 1. eset előfordulásainak száma) felülről korlátozható az élek össz-költségével. Tehát az eljárás polinomiális, ha a c egészértékű és legnagyobb értéke |V | polinomjával korlátozható. Ugyanakkos van olyan példa (sorozat), amely azt mutatja, hogy ha c-nek csak az egészértékűségét tesszük fel, akkor az algoritmus nem polinomiális.

Feladat 3.28 Igazoljuk, hogy tetszőleges c esetén a fenti algoritmus véges sok lépésben véget ér.

Feladat 3.29 Hogyan lehet egy élsúlyozott páros gráfban adott k-ra maximális súlyú k élű párosítást kiszámítani?

2004. december 15. file: lin25

3.6 TELJESEN UNIMODULÁRIS MÁTRIXOK

Az alábbiakban egy mátrixot vagy egy vektort akkor nevezünk egésznek vagy egészértékűnek, ha minden elemük (komponensük) egész szám. Gyakran előfordul, hogy egy lineáris egyenlőtlenség-rendszernek egész megoldására vagy egy lineáris programnak egész optimális megoldására van szükségünk. Bebizonyították, hogy mindkét feladat NP-teljes, így általánosságban olyan típusú kerek megoldást nem várhatunk, mint amilyent a Farkas lemma vagy a dualitás tétel nyújt a valós (vagy racionális) esetre. Speciális feltételi mátrixok esetén azonban szavatolható egészértékű megoldás vagy optimum létezése. Ennek messzemenő következményei lesznek gráfokon megfogalmazott optimalitási feladatok megértésében.

3.6.1 Definíciók és példák

Valamely A mátrixot akkor nevezünk teljesen unimodulárisnak (TU: totally unimodular), ha minden aldeterminánsa (0, ±1) értékű. Speciálisan, ilyen mátrix minden eleme 0, +1 vagy −1. Világos, hogy TU-mátrix transzponáltja is az. Sorokat vagy oszlopokat −1-gyel szorozva vagy elhagyva ismét TU-mátrixot kapunk. Továbbá, egységvektorokat sorként vagy oszlopként egy TU-mátrixhoz illesztve TU-mátrixot kapunk. Így, ha az A TU-mátrixot kiegészítjük egy I egység-mátrixszal, akkor a keletkező (A, I) mátrix is TU-mátrix. Ha A TU-mátrix, úgy (A, −A) is az. (De ha mondjuk egy csupa 1 oszloppal egészítjük ki A-t, akkor nem feltétlenül kapunk TU-mátrixot: legyen A az {1, 2, 3, 4} pontokon az {12, 13, 14} élekből álló gráf 4 × 3-as incidencia mátrixa.)

Példaképp, legyen Q egy D = (V, A) irányított gráf incidencia mátrixa, azaz Q sorai a V -nek, oszlopai E-nek felelnek meg, és az q_{v,e} elem akkor +1 illetve −1, ha az e él belép illetve kilép v-ből (egyébként 0). Egy G = (V, E) gráf (pont-él) incidencia mátrixában a soroknak a csúcsok, míg az oszlopoknak az élek felelnek meg. A mátrix egy v csúcshoz és e élhez tartozó eleme akkor 1, ha e egyik végpontja v, különben 0. Tehát az incidencia mátrix minden oszlopában két darab 1-es elem van.

TÉTEL 3.30 (a) Digráf incidencia mátrixa teljesen unimoduláris. (b) Páros gráf incidencia mátrixa teljesen unimoduláris.

Biz. (a) Vegyünk egy Q′ négyzetes részmátrixot, amelyről be akarjuk látni, hogy determinánsa 0, ±1. Amennyiben ennek van olyan oszlopa, amelyben legfeljebb csak egy nem-nulla elem van, akkor ezen oszlop szerint kifejtve a determinánst, indukcióval kész vagyunk. Így feltehetjük, hogy minden oszlopban pontosan két nemnulla van (merthogy több nem lehet). Ezek közül az egyik +1, a másik −1, vagyis a sorokat összeadva 0-t kapunk, azaz Q′ sorai lineárisan függőek, így a determináns 0.

(b) Szorozzuk meg −1-gyel a mátrix azon sorait, amelyek a páros gráf egyik osztályában lévő pontoknak felelnek meg. Ekkor egy irányított gráf incidencia mátrixát kapjuk, amiről az előbb láttuk, hogy TU. •

Feladat 3.30 Igazoljuk, hogy ha egy páros gráf incidencia mátrixát kibővítjük egy csupa egyesekből álló sorral, akkor TU-mátrixot kapunk, míg ha az oszlopaihoz veszünk egy csupa egyes oszlopot, akkor az így keletkező mátrix nem feltételenül TU.

Hipergráfon egy (V, F) párt értünk, ahol V adott alaphalmaz, F pedig V részhalmazainak egy rendszere, amelyben ugyanaz a részhalmaz több példányban is szerepelhet. Az F tagjai a hipergráf hiperélei. Egy H hipergráfot akkor nevezzünk teljesen unimodulárisnak, ha H incidencia mátrixa teljesen unimoduláris. Ez egy olyan 0 − 1 értékű mátrix, amelyben a soroknak a V elemei felelnek meg, az oszlopoknak az F elemei, és a mátrix egy eleme pontosan akkor egy, ha az oszlopának megfelelő hiperél tartalmazza a mátrix-elem sorának megfelelő V -beli elemet. A gráfok speciális hipergráfok, ahol minden hiperél kételemű. Ezek közül már láttuk, hogy a páros gráfok teljesen unimodulárisak. Más gráfok viszont sohasem azok, hiszen egy páratlan kör incidencia mátrixának determinánsa ±2.

Mint láttuk, minden D digráf ±1-es incidencia mátrixa TU. Ezt általánosítja a hálózati mátrix. Legyen D olyan irányított gráf, amely irányítatlan értelemben összefüggő és legyen F egy feszítő fa. Az A mátrix sorai az F éleinek felelnek meg, míg az oszlopai az F -en kívüli éleknek. Minden uv nem-fa élre a fában egy egyértelmű (nem feltétlenül irányított) út vezet v-ből u-ba. Ennek egy f elemére a mátrix a_{f,e} elemét definiáljuk 1-nek, ha f iránya megegyezik az útéval és −1-nek, ha azzal ellentétes. A mátrix minden más eleme 0.

Lemma 3.31 Hálózati mátrix részmátrixa is az. Hálózati mátrix sorát vagy oszlopát −1-gyel szorozva hálózati mátrixot kapunk.

Biz. Egy oszlop eltörlése annak felel meg, hogy a megfelelő nem-fa élt a digráfból kihagyjuk. Egy sor törlése annak felel meg, hogy a megfelelő fa-élt a digráfban összehúzzuk. Egy sor vagy oszlop −1-gyel való szorzása annak felel meg, hogy a megfelelő élt (akár fa-él, akár nem-fa él) átirányítjuk. • TÉTEL 3.32 Az A hálózati mátrix teljesen unimoduláris.

Biz. A lemma alapján elég belátni, hogy egy négyzetes hálózati mátrix determinánsa 0, 1 vagy −1. Tekintsük a fának egy v végpontját. Ha az F fa v-vel szomszédos éléhez tartozó sorban lévő nem-nulla elemek α száma legfeljebb 1, akkor a determináns kifejtési szabály alapján indukcióval készen vagyunk. Tegyük fel, hogy α > 1, vagyis v szomszédos legalább két nem-fa éllel. Átirányítás miatt feltehető, hogy ezek közül pontosan egy van v felé irányítva. Legyen ez sv és legyen vt egy másik nem-fa él. Ha az sv-nek megfelelő oszlopot, hozzáadjuk a vt-nek megfelelő oszlophoz, akkor egyrészt persze a determináns értéke nem változik, másrészt ismét hálózati mátrixot kapunk, éspedig azé a gráfét, amelyben a vt él helyett az st él szerepel.

Ilyen átalakításokkal egy olyan gráfot kaphatunk, amelyben az F feszítő fa változatlan, egyetlen nem-fa él (nevezetesen sv) szomszédos v-vel, vagyis a hozzátartozó hálózati mátrix v-nek megfelelő sorában egy nemnulla elem van. Ilyen hálózati mátrixról pedig már láttuk, hogy a determinánsa 0, ±1, ugyanakkor a fenti operációk nem változtatták a determináns abszolút értékét. •

Következmény 3.33 Egy olyan hipergráf, amely egy irányított fa élhalmazán van definiálva és a hiperélek irányított utak, teljesen unimoduláris.

Egy hipergráfot laminárisnak mondunk, ha bármely két hiperéle vagy diszjunkt vagy az egyik tartalmazza a másikat. Például, ha F = (V, E) egy s gyökerű fenyő és minden e = uv éléhez tekintjük a v-ből a fenyőben elérhető pontok halmazát, akkor ezen halmazok lamináris rendszert alkotnak. Valójában ezen állítás megfordítását sem nehéz bebizonyítani, amely szerint minden lamináris halmazrendszer lényegében ilyen alakban áll elő.

Legyen F_{1} és F_{2} két lamináris hipergráf az S alaphalmazon. Jelölje A_{i} (i = 1, 2) az F_{i} incidencia mátrixának transzponáltját. Ebben az oszlopok az S elemeinek felelnek meg, míg a sorok F_{i} elemeinek. Legyen M :=

( \begin{matrix}A_{1} \\ A_{2} \end{matrix} ).

TÉTEL 3.34 M teljesen unimoduláris.

Biz. Vegyük M-nek egy négyzetes részmátrixát. Az ebben lévő egyesek száma szerinti indukcióval ennek determinánsáról kimutatjuk, hogy 0 vagy ±1. Mivel A_{i} bármely részmátrixa is egy lamináris rendszer incidencia mátrixa (miért?!), így feltehetjük, hogy a vizsgált részmátrix maga M. Ha M-ben minden elem nulla, akkor persze a determináns is nulla. Ha M-nek van olyan sora vagy oszlopa, amelyben legfeljebb egy nem-nulla elem van, akkor indukcióval (és kifejtési szabállyal) készen vagyunk.

Ha F_{1} is és F_{2} is partíció, akkor mind A_{1}, mind A_{2} sorainak összege a csupa 1 vektor, tehát A sorai lineárisan függőek, így det(M) = 0. Tegyük fel, hogy mondjuk F_{1} nem partíció. Ekkor van egy olyan minimális Z tagja, amely része F_{1} egy másik tagjának. Ha most F_{1}-nek valamennyi Z-tartalmazó tagjából kivonjuk Z-t, ami azzal ekvivalens (a laminaritás miatt), hogy a megfelelő sorokból kivonjuk Z sorát, akkor a determináns értéke nem változik. Viszont a keletkező mátrixban kevesebb egyes szerepel, így indukcióval készen vagyunk. •

Feladat 3.31 Igazoljuk, hogy a 3.34 tételben szereplő M mátrix hálózati mátrix!

Feladat 3.32 Igazoljuk, hogy az alábbi mátrix teljesen unimoduláris, de sem ő, sem a transzponáltja nem hálózati mátrix:

( \begin{matrix}1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 1 & 0 & 0 \\ 1 & 0 & 1 & 1 & 0 \\ 1 & 0 & 0 & 1 & 1 \\ 1 & 1 & 0 & 0 & 1 \end{matrix} ).

3.6.2 Farkas lemma, dualitás tétel, optimalitási feltételek TU-mátrixokra

Az erős bázis-megoldás fogalma már eddig is hasznos volt (mert csak véges sok volt belőlük, és mert minden, a poliéderen felülről korlátos cx célfüggvény esetén max cx erős bázis-megoldáson felvétetett.) E fogalom most újabb fontos szerephez jut.

Lemma 3.35 Tetszőleges M TU-mátrixszal megadott egyenlőtlenség-rendszer esetén, ha a b jobboldali korlátozó vektor egész, akkor minden erős bázis-megoldás egész.

Biz. Legyen M = ( \begin{matrix}P \\ Q \end{matrix} ) és tekintsük a

P x = b_{0}, Qx ≤ b_{1}  (3.21)

rendszert. Az Iránymenti korlátosság című szakaszban megfigyeltük, hogy minden erős bázis-megoldás előáll valamely M′x′ = b′ egyenletrendszer egyértelmű megoldásának nulla komponensekkel való kiegészítéseként, ahol M′ az M egy [(r(M) × (r(M)]-es nem-szinguláris részmátrixa és b′ jelöli a b azon részét, amely az M′ sorainak felel meg. Mármost, ha M TU-mátrix, akkor a nem-szinguláris M′ determinánsa +1 vagy −1. A Cramer szabály szerint, miután b′ egész, az egyértelmű x′ megoldás is az. •

Lemma 3.36 Legyen c tetszőleges (nem feltétlenül egészértékű) vektor. Bármely M TU-mátrixszal megadott K metszet-kúpnak, ha van olyan x′ eleme, amelyre cx′ > 0, akkor K-nak van ilyen (0, ±1)-értékű eleme is.

Biz. Legyen M = ( \begin{matrix}P \\ Q \end{matrix} ) és tegyük fel, hogy a K kúp a P x = 0, Qx ≤ 0 rendszer megoldás-halmaza. Mivel

x′ pozitív számszorosa is K-ban van, feltehető, hogy x′ maga olyan, hogy minden komponense a [−1, +1] zárt intervallumba esik. Vagyis a

(−1, …, −1) ≤ x ≤ (1, …, 1), P x = 0, Qx ≤ 0  (3.22)

rendszer által meghatározott korlátos poliédernek x′ olyan eleme, amelyre cx′ > 0. Ekkor az 2.51 tétel szerint van olyan x^{∗} erős bázis-megoldása (3.22) rendszernek, amelyre cx^{∗} ≥ cx′. A 3.35 lemma miatt x^{∗} egészértékű, azaz minden komponense 0, ±1. •

A Farkas lemma szerint a (3.21) és az alábbi (3.23) rendszerek közül pontosan az egyik oldható meg. Az alábbi tétel a Farkas lemma TU-mátrixokra vonatkozó élesítését szolgáltatja.

TÉTEL 3.37 Tegyük fel, hogy az M = ( \begin{matrix}P \\ Q \end{matrix} ) mátrix teljesen unimoduláris. Ha a (3.21) primál probléma

oldható meg és a korlátozó b vektor egész, akkor (3.21)-nek van egész megoldása is. Ha az

y_{1} ≥ 0, yM = 0, yb < 0  (3.23)

duális probléma oldható meg, ahol y = (y_{0}, y_{1}), akkor van (0, ±1)-értékű y megoldás is (függetlenül b egészértékűségétől).

Biz. A tétel első fele következik a 3.35 lemmából, és abból a korábbi eredményből, hogy ha létezik megoldás, akkor létezik erős bázis-megoldás is. A tétel második fele pedig a 3.36 lemma közvetlen folyománya. •

Egy poliédert akkor nevezünk egésznek, ha minden oldala tartalmaz egész pontot. Ez nyilván azzal ekvivalens, hogy minden (tartalmazásra nézve) minimális oldal tartalmaz egész pontot, továbbá azzal (az oldal definíciója folytán), hogy minden lineáris célfüggvény optimuma egész vektoron is felvétetik. Csúcsos poliéder

esetén a poliéder akkor egész, ha minden csúcsa egész. Az alábbi tételek mindegyikében az M = ( \begin{matrix}P \\ Q \end{matrix} ) mátrix

teljesen unimoduláris és b egész vektor.

TÉTEL 3.38 Ha a max{cx : P x = b_{0}, Qx ≤ b_{1}} lineáris programozási problémának létezik megoldása, akkor az optimum egész vektoron is felvétetik (függetlenül attól, hogy c egészértékű vagy sem). Ekvivalens alakban: minden TU-mátrix és egész korlátozó vektor által megadott poliéder egész.

Biz. Miután az optimum erős bázis-megoldáson is felvétetik, a 3.35 lemmából a tétel következik. •

Az alábbi tételek ugyanígy következnek a 2.21 és 2.55 tételekből a 3.35 és 3.36 lemmák segítségével.

TÉTEL 3.39 Tegyük fel, hogy R = {x : P x = b_{0}, Qx ≤ b_{1}} nemüres. A következők ekvivalensek.

(1) {cx : x ∈ R} felülről korlátos.

(2) Nem létezik olyan (0, ±1)-értékű x′ vektor, amelyre P x′ = 0, Qx′ ≤ 0, és cx′ > 0.

(3) Létezik olyan y = (y_{0}, y_{1}) vektor, amelyre y_{1} ≥ 0 és yM = c, és amely egész, amennyiben c egész. •

TÉTEL 3.40 Legyen x^{∗} az R := {x : P x = b_{0}, Qx ≤ b_{1})} poliéder egy eleme. Jelölje Q_{x^{∗}}^{=} a Q aktív részmátrixát. A következők ekvivalensek.

(1) x^{∗} maximalizálja cx-t R fölött.

(2) Nem létezik olyan (0, ±1)-értékű x′ vektor, amelyre P x′ = 0, Q_{x^{∗}}^{=}x′ ≤ 0, és cx′ > 0.

(3) Létezik olyan y = (y_{0}, y_{1}) vektor, amelyre y_{1} ≥ 0 yM = c, y(B − Mx^{∗}) = 0, és y egész, amennyiben c egész. •

3.6.3 Kerekítés és egyenletes színezés

Kerekítés

Akkor mondjuk, hogy egy z egész szám az x szám kerekítése, ha |x − z| < 1. (Tehát az 1, 01-nak az 1 és a 2 is kerekítése.) Ez speciálisan azt jelenti, hogy ha x egész, akkor x = z. A z vektor az x vektor kerekítése, ha minden komponense kerekítés. Egy x nem-egész szám ⌊x⌋ alsó egész részén a legnagyobb x-nél kisebb egész számot értjük, míg ⌈x⌉ felső egész részen a legkisebb x-nél nagyob számot. Egész x-re ⌊x⌋ := ⌈x⌉ := x. Amennyiben x egy vektort jelöl, úgy ⌊x⌋ azt a vektort jelöli, amelyet x-ből nyerünk a komponenseinek alsó egész részét véve. Az x vektor ⌈x⌉ felső egész részét analóg módon definiáljuk.

Lemma 3.41 Legyen A teljesen unimoduláris mátrix és x_{0} egy vektor. Ekkor létezik egy olyan q egészértékű vektor, amelyre ⌊x_{0}⌋ ≤ q ≤ ⌈x_{0}⌉ és ⌊Ax_{0}⌋ ≤ Aq ≤ ⌈Ax_{0}⌉. Más szóval az x_{0}-nak van olyan q kerekítése, hogy az A minden a sorára aq kerekítése ax_{0}-nak.

Biz. A feltevés szerint az ⌊x_{0}⌋ ≤ z ≤ ⌈x_{0}⌉ és ⌊Ax_{0}⌋ ≤ Az ≤ ⌈Ax_{0}⌉ rendszernek van megoldása, így a 3.37 tétel szerint van egész megoldása is. •

Érdemes megfogalmazni az alábbi következményt: Ha (S, F) teljesen unimoduláris hipergráf, úgy bármely x_{0} : S → R függvénynek létezik olyan q kerekítése, hogy minden A ∈ F hiperélre a ∑[q(v) : v ∈ A] szám kerekítése ∑[x_{0}(v) : v ∈ A]-nak.

TÉTEL 3.42 Tetszőleges m × n-es B mátrixnak van olyan kerekítése, hogy a következő mennyiségek mind egynél kevesebbel változnak: minden sorösszeg, minden oszlopösszeg, az első j sor elemeinek összege (j = 1, 2, …, m), az első i oszlop elemeinek összege (i = 1, 2, …, n).

Biz. Legyen S a B mátrix mezőinek halmaza. B minden sorához legyen a sorban lévő mezők halmaza tagja F_{1}-nek valamint minden i-re (2 ≤ i ≤ m) az első i sor mezőinek halmaza legyen tagja F_{1}-nek (összesen tehát 2m − 1 tagja van F_{1}-ben). F_{2} analóg módon van definiálva az oszlopok segítségével. Ekkor F_{i} lamináris, így a 3.34 tétel és a 3.41 lemma alapján készen vagyunk. •

TÉTEL 3.43 Egy x_{1}, … x_{n} sorozat elemeinek létezik olyan z_{1}, …, z_{n} kerekítése, hogy minden 1 ≤ i ≤ j ≤ n indexre a z_{i} + … + z_{j} összeg kerekítése az x_{i} + … + x_{j} összegnek.

Biz. A {v_{1}, …, v_{n}} alaphalmazon tekintsük azt a hipergráfot, melynek élei a {v_{i}, …, v_{j}} típusú halmazok minden 1 ≤ i ≤ j ≤ n index párra. Amint már láttuk, ez a hipergráf teljesen unimoduláris, így a 3.6.3 lemma alkalmazható. •

Egyenletes színezések

A teljesen unimoduláris mátrixok egy másik érdekes alkalmazása hipergráfok egyenletes színezésével foglalkozik.

TÉTEL 3.44 Legyen A TU-mátrix, b egész vektor, k pozitív egész. Legyen z olyan egész vektor, amelyre Az ≤ kb. Ekkor z előáll olyan z_{1}, z_{2}, …, z_{k} egész vektorok összegeként, melyekre Az_{i} ≤ b.

Biz. k szerinti indukció alapján elég egy olyan egész z_{1} egész vektort találni, amelyre Az_{1} ≤ b és A(z − z_{1}) ≤ (k − 1)b. Ugyanis ilyen z_{1} létezése esetén z′ := z − z_{1} olyan, amelyre Az′ ≤ (k − 1)b és az indukciós feltevés alkalmazható (k − 1)-re.

A fenti z_{1} létezéséhez csak azt kell látni, hogy az Az − (k − 1)b ≤ Ax ≤ b poliédernek van egész pontja. A poliéder mindenesetre nemüres, hiszen z/k benne van. Továbbá a feltételek egy TU-mátrixszal adhatók meg, így létezik a kívánt egész pont is. •

A fenti tétel kiterjeszthető arra az esetre, amikor z nemnegativitását is megköveteljük, és az Ax-re nemcsak felső korlát van, hanem alsó is. Valóban, ha A TU-mátrix, akkor az (A, −A, I) mátrix is teljesen unimoduláris. Kapjuk a következőt.

Következmény 3.45 Ha z ≥ 0 olyan egész vektor, amelyre kb_{1} ≤ Az ≤ kb_{2}, akkor z felbomlik olyan z_{1}, z_{2}, …, z_{k} egész vektorok összegére, melyekre z_{i} ≥ 0, és b_{1} ≤ Az_{i} ≤ b_{2}.

Ezt felhasználhatjuk TU-mátrixok oszlopainak egyenletes k-színezésére. Az A oszlopainak egy partícióját (,,színezését”) A_{1}, A_{2}, …, A_{k} részre akkor nevezzük egyenletesnek, ha A minden a sorára érvényes, hogy a sornak az egyes A_{i} részekbe eső elemeinek összege minden A_{i}-re lényegében ugyanaz, tehát ⌊e_{n}a/k⌋ vagy ⌈e_{n}a/k⌉.

TÉTEL 3.46 Az A TU-mátrix oszlopainak létezik egyenletes k-színezése.

Biz. Legyen d az A oszlopainak az összege. Legyen b_{1} := ⌊d/k⌋, b_{2} := ⌈d/k⌉. Ekkor a z :≡ 1 benne van a {kb_{1} ≤ Ax ≤ kb_{2}, x ≥ 0} poliéderben. Az előbbi következmény szerint z felbomlik z_{1}, z_{2}, …, z_{k} egész vektorok összegére, melyekre z_{i} ≥ 0, és b_{1} ≤ Az_{i} ≤ b_{2}. Világos, hogy a z_{i}-k 0 − 1 vektorok. Legyen A_{i} az oszlopoknak azon halmaza, melyeknek megfelelő komponense z_{i}-nek 1. Ezek éppen a kívánt egyenletes színezést adják. •

Egy alkalmazás

Következmény 3.47 Adott egy F irányított fa (speciális esetben irányított út) és F irányított részútjainak egy P := {P_{1}, …, P_{t}} rendszere, ahol minden utat F -élek egy részhalmazának tekintünk. P tagjai megszínezhetők k színnel (minden k pozitív egészre) úgy, hogy F minden e élére az e-t tartalmazó egyszínű utak száma minden színre lényegében ugyanannyi, ahol a ,,lényegében ugyanannyi” azt jelenti, hogy bármely két színosztályra az eltérés legfeljebb egy lehet. •

Ha a hálózati mátrix transzponáltjára alkalmazzuk az egyenletes színezési tételt, akkor a következőt kapjuk.

Következmény 3.48 Adott egy F irányított fa és F irányított részútjainak egy P := {P_{1}, …, P_{t}} rendszere, ahol minden utat F -élek egy részhalmazának tekintünk. Az F élei megszínezhetők k színnel (minden k pozitív egészre) úgy, hogy P minden tagjában a színek lényegében egyenletes számban fordulnak elő. •

Feladat 3.33 Egyszerű mohó algoritmus megadásával közvetlenül bizonyítsuk be a 3.48 következményt.

A 3.46 tétel páros gráfokra vonatkozó következményeit a 3.55 tételben tárgyaljuk.

TU-mátrixok jellemzése

Bemutatjuk a TU-mátrixoknak egy hasznos jellemzését. A 3.46 tételben láttuk már, hogy TU-mátrixok oszlopai egyenletesen k-színezhetők. Kérdés, hogy ez a tulajdonság mennyire a csak TU-mátrixok sajátja. Az alábbi tétel szerint, már az egyenletes 2-színezhetőségből is következik a TU-ság. Az oszlopok egyenletes 2-színezhetőségének azt az ekvivalens definícióját használjuk, amely egy olyan z {±1}-es vektor létezését követeli, amelyre Qz {0, ±1}-es vektor.

TÉTEL 3.49 (Ghouila-Houri) (ejtsd: Gujla-úri) Egy Q mátrix akkor és csak akkor teljesen unimoduláris, ha oszlapainak bármely részhalmaza egyenletesen 2-színezhető.

Biz. TU-mátrix egyenletes k-színezhetőségét már láttuk korábban, így csak a fordított iránnyal foglalkozunk. Megjegyezzük, hogy ha kihagyjuk Q néhány sorát, akkor Q oszlopainak egy egyenletes 2-színezése automatikusan egyenletes 2-színezése a maradéknak. Így Q mindenesetre {0, ±1}-es mátrix.

Tegyük fel, hogy Q minimális méretű ellenpélda. Ekkor tehát Q nem TU, de minden valódi részmátrixa az. Vagyis Q maga egy négyzetes mátrix, amelyre K := det Q ∉ {0, ±1}. Így Q nem egyelemű és Q minden valódi aldeterminánsa {0, ±1} értékű. Tekintsük a Q mátrix Q^{−1} inverzét. A Cramer szabály szerint

Q^{−1} minden nem-nulla eleme ± 1/K alakú.  (3.24)

Legyen q_{1}^{∗} a Q^{−1} első oszlopa és jelölje R azon j indexek halmazát, melyekre q_{1}^{∗}(j) ≠ 0. Jelölje _{i}q a Q mátrix i-dik sorát és e_{1} = (1, 0, …, 0) az első egységvektort. Mivel minden i ≥ 2 indexre _{i}qq_{1}^{∗} = 0, ezért (3.24) miatt a _{i}q sornak páros sok olyan q_{ij} nem-nulla eleme van, amelyre j ∈ R.

A feltevés szerint a Q mátrix R-hez tartozó oszlopai egyenletesen 2-színezhetők, vagyis létezik egy olyan z {0, ±1}-es vektor, amelyre Qz {0, ±1} értékű és z(j) pontosan akkor nem nulla, ha j ∈ R. Az előbbi paritási megfigyelés miatt minden i ≥ 2-re _{i}qz = 0. De ekkor _{1}qz ≠ 0, mert különben Qz = 0 volna, ellentmondásban | det Q| ≥ 2-vel. z esetleges negálásával feltehetjük, hogy _{1}qz = 1, vagyis Qz = e_{1}, és emiatt z = q_{1}^{∗}, ellentmondásban a (3.24) tulajdonsággal. •

2004. december 15. file: lin26

3.7 HÁLÓZATI OPTIMALIZÁLÁS ÉS LINEÁRIS PRO-GRAMOZÁS

Mi állhat annak hátterében, hogy utakkal, folyamokkal, áramokkal, páros gráfok párosításaival kapcsolatban megannyi szép tételt tudtunk megfogalmazni és igazolni? Miként lehet ilyen tételeket megsejteni? Ebben a részben megmutatjuk, hogy a szóbanforgó hálózati optimalizálási feladatok egy olyan lineáris programozási feladatként fogalmazhatók meg, amelyben a feltételi mátrix teljesen unimoduláris. Kiderül, hogy a tételek mindegyike úgy tekinthető, mint egy lineáris programozási tétel (Farkas lemma, korlátossági tétel, optimalitási feltétel, dualitás tétel) TU-mátrixokra felírt alakjának speciális esete. Ennek a felismerésnek nem csak az a haszna, hogy már igazolt tételekre újabb bizonyítást nyerünk, hanem olyan hatékony eszköz birtokába jutunk általa, amely általánosabb ilyen irányú tételek megsejtésére és bizonyítására is alkalmas.

A csupa egyesből álló j-dimenziós vektort e_{j} jelöli, míg a j · j-es identitás mátrixot I_{j}.

3.7.1 Páros gráfok

Optimális párosítások

Először levezetjük Kőnig már megismert tételét:

TÉTEL 3.50 (Kőnig) A G = (S, T; E) páros gráfban a független élek maximális ν száma egyenlő az éleket lefogó pontok minimális τ számával.

Biz. A gráf pontjainak számát jelölje p az élek számát q. A páros gráf incidencia mátrixát jelölje A, amelyben a soroknak a gráf pontjai, az oszlopoknak a gráf élei felelnek meg. Ekkor tehát A egy p×q méretű 0−1-mátrix. Tekintsük a következő primál-duál lineáris program párt:

max{e_{q}x : Ax ≤ e_{p}, x ≥ 0},  (3.25)
min{e_{p}y : yA ≥ e_{q}, y ≥ 0}.  (3.26)

A 3.38 tétel szerint mindkét programnak az optimuma egész vektoron felvétetik. Jelöljük ezeket rendre x_{0}-lal és y_{0}-lal. (3.25) minden egészértékű megoldása 0 − 1 értékű, és rögtön látszik, hogy (3.26) minden optimális egészértékű megoldása is 0 − 1 értékű. Legyen M azon élek halmaza, melyeken x_{0} az 1 értéket vesz fel, és legyen L azon pontok halmaza, amelyeken y_{0} egyet vesz fel. Az Ax ≤ e_{p} feltétel azt jelenti, hogy M párosítás a gráfban, míg az yA ≥ e_{q} feltétel azt jelenti, hogy L az éleket lefogó pontrendszer. A primál és duál optimum értékek egyenlősége pedig azt jelenti, hogy |M| = |L|, ami a célunk volt. •

E bizonyítás kapcsán azt mondhatjuk, hogy a Kőnig tétel nem más, mint a dualitás tétel TU-mátrixokra vonatkozó egészértékű alakja abban a speciális esetben, amikor a feltételi mátrix a páros gráf incidencia mátrixa, míg a korlátozó vektor és a célfüggvény a (megfelelő dimenziós) azonosan 1 vektor. Természetesen a primál programban az azonosan 1 célfüggvény helyett választhatunk tetszőleges c célfüggvényt. Ekkor a fenti megközelítés a 3.10 tételt adja meg:

TÉTEL 3.51 Páros gráfban egy párosítás maximális költsége egyenlő min{∑_{v∈V} π(v) : π ≥ 0, π(u) + π(v) ≥ c(uv) minden uv élre}. Ha c egészértékű, az optimális π is választható egészértékűnek. •

Melléktermékként kapjuk:

TÉTEL 3.52 A G páros gráf A incidencia mátrixával felírt

{x : Ax ≤ e_{p}, x ≥ 0}  (3.27)

poliéder egész, amelynek csúcsai pontosan a gráf párosításainak incidencia vektorai. •

Egy gráf párosítás politopja a párosítások incidencia vektorainak konvex burka. A 2.5 tétel szerint tetszőleges politop (korlátos) poliéder, azaz felírható egy lineáris egyenlőtlenség-rendszer megoldáshalmazaként. A 3.52 tétel a (3.27) rendszerrel tehát konkrétan megadja a párosítás politop poliéderként történő előállítását. (Ezek miatt nem okozhat félreértést, hogy a párosítás politopot gyakran párosítás poliédernek hívják.) Megjegyzendő, hogy tetezőleges gráfra is a párosítás politop mindig része a (3.27) poliédernek, de ilyenkor lehet valódi része.

Nevezzünk egy mátrixot bisztochasztikusnak, ha négyzetes, nemnegatív és minden sorösszege valamint minden oszlopösszege egy. Legegyszerűbb bisztochasztikus mátrixok a permutáció mátrixok, melyeknek minden eleme 0 vagy 1 és minden oszlopában és minden sorában pontosan egy darab egyes van. Permutáció mátrixok konvex kombinációja is bisztochasztikus. A következő tétel fő mondanivalója az, hogy valójában minden bisztochasztikus mátrix előáll ilyen alakban.

TÉTEL 3.53 (Birkhoff és Neumann) Egy mátrix akkor és csak akkor bisztochasztikus, ha permutáció mátrixok konvex kombinációja.

Biz. Egy B n × n-es mátrix megfelel egy G n × n-es teljes páros gráf élhalmazán értelmezett x_{B} vektornak. Figyeljük meg, hogy a permutácio mátrixok éppen a teljes párosításoknak felelnek meg. Ha B bisztochasztikus, akkor Ax_{B} = e_{n^{2}}, x_{B} ≥ 0, azaz x_{B} benne van a G párosítás poliéderében, vagyis előáll párosítások (incidencia vektorainak) konvex kombinációjaként. tehát B előáll permutáció márixok konvex kombinációjaként. •

Természetesen megkaphatjuk Egerváry 3.8 tételét, sőt most már belefoglaljuk azt az esetet is, amikor a súlyfüggvény nem egész.

TÉTEL 3.54 (Egerváry) A G = (S, T; E) teljes párosítással rendelkező páros gráfban a c ≥ 0 súlyfüggvényre vonatkozó maximális súlyú teljes párosítás ν_{c} súlya egyenlő a súlyozott lefogások minimális τ_{c} összértékével. Amennyiben G teljes páros gráf, úgy az optimális súlyozott lefogás választható nemnegatívnak is. Amennyiben c egészértékű az optimális súlyozott lefogás is választható annak.

Biz. A fenti megközelítéshez képest csak annyit kell változtatni, hogy az Ax ≤ e_{p} egyenlőtlenség rendszer helyett az Ax = e_{p} egyenletrendszert kell vennünk. Ekkor persze a duálisban a változókra nincs nemnegatívitás előírva. A teljes páros gráf esetén azért igaz mégis, hogy az optimális duális megoldás választható nemnegatívnak, mert ilyenkor az {max cx : Ax ≤ e_{p}, x ≥ 0} lineáris program optimális megoldása c nem negativitása valamint a páros gráf teljessége miatt mindig teljes párosításon is felvétetik, márpedig ezen lineáris program duálisában a változók nemnegatívak. •

Mi történik, ha adott k-ra a pontosan k élű párosítások maximális súlyára szeretnénk tételt kapni? Miután egy páros gráf incidenciamátrixát egy csupa egyes sorral kiegészítve továbbra is TU-mátrixot kapunk (figyelem: csupa egyes oszloppal való kiegészítéssel nem), így a következő primál-duál lineáris program pár megadja a választ: max{cx : Ax ≤ e_{p}, e_{q}x = k} és min{πe_{p} + kα : πA + αe_{q} ≥ c, π ≥ 0}. A primál optimum tehát egészértékű, és így szükségképpen egy k elemű párosítás incidencia vektora. A duál optimum is egészértékű, feltéve, hogy c az.

Páros gráf fokszámkorlátozott részgráfjai: a szállítási probléma

További általánosításokat kaphatunk, ha a primál feladatban a jobboldalt valamilyen (nem-negatív) b vektornak választjuk. Ennek az a kombinatorikus jelentése, hogy a páros gráfban maximális súlyú fokszámkorlátozott részgráfot keresünk. Természetesen alsó korlátokat is kitűzhetünk a fokszámokra, mint ahogy korlátozhatjuk alulról és felülről azt is, hogy egy élt hány példányban vehetünk be a keresett részgráfba (megint csak amiatt, hogy az incidencia mátrixot egy csupa egyes sorral kiegészítva TU-mátrixot kapunk). Valójában nem is érdemes explicit megfogalmazni a különböző lehetőségekre vonatkozó min-max tételeket, mert a dualitás tétel és a páros gráf incidencia mátrixának teljes unimodularitása már magában hordozza a szükséges információt. Emlékeztetünk, hogy korábban ezen feladatok körét neveztük szállítás problémának.

3.7.2 Élszínezések

Közismert Kőnig élszínezési tétele, amely szerint minden Δ-reguláris páros gráf élhalmaza felbomlik Δ élidegen teljes párosításra. (Ez közvetlenül levezethető indukcióval, vagy esetleg a Hall tételre támaszkodva). Ugyanakkor a TU-mátrixokra vonatkozó 3.46 egyenletes színezési tételből sokkal általánosabb eredmény nyerhető. Az élszínezési tétel néha kicsit általánosabban fogalmazzák meg: Ha egy páros gráfban a maximális fokszám Δ, akkor az éleket meg lehet Δ színnel színezni úgy, hogy minden csúcsba különböző színű élek futnak.

TÉTEL 3.55 Egy G = (S, T; E) páros gráf éleit meg lehet k színnel úgy színezni, hogy minden v csúcsra és mindegyik j színre (j = 1, …, k) a v-be menő d(v) darab él közül ⌊d(v)/k⌋ vagy ⌈d(v)/k⌉ darab színe j. Ráadásul még azt is megkövetelhetjük, hogy minden színosztály mérete közel ugyanakkora legyen, vagyis ⌊|E|/k⌋ vagy ⌈|E|/k⌉. Ha k-t a maximális Δ fokszámnak választjuk, akkor megkapjuk Kőnig élszínezési tételét, amely szerint páros gráf kromatikus indexe (élszínezési száma) a maximális fokszámmal egyenlő. Ha k-t a minimális δ fokszámnak választjuk, akkor Gupta egy tételét kapjuk, amely szerint G páros gráf élhalmaza felbontható δ részre úgy, hogy mindegyik rész fedi az összes pontot. •

A lineáris programozási megközelítés eredményességét egy kevésbé közismert tételen is bemutatjuk.

TÉTEL 3.56 (Folkman és Fulkerson) Egy G = (S, T; E) páros gráfban akkor és csak akkor létezik l darab élidegen k élű párosítás, ha

i_{G}(Z) ≥ l(k + |Z| − |U|)  (3.28)

fennáll U := S ∪ T minden Z részhalmazára, ahol i_{G}(Z) jelöli a Z által feszített élek számát.

Biz. Mivel egy M párosítás legfeljebb |U| − |Z| olyan élt tartalmaz, amelynek legalább egyik végpontja nincs Z-ben, így legalább |M| − (|U| − |Z|) darab |Z| által feszített élt tartalmaz. Így, ha létezik l darab k élű párosítás, akkor Z legalább l(k + |Z| − |U|) élt feszít, vagyis (3.28) szükséges.

Az elegendőséghez jelölje A a páros gráf pont-él incidencia márixát, p a csúcsok számát, q az élek számát. Az xe_{q} és ye_{q} skalárszorzatot szemléletesebben x(E)-vel illetve y(E)-vel jelöljük, míg a πe_{p}-t π(U)-val. Tekintsük a

max {x(E) : x ≥ 0, Ax ≤ le_{q}, I_{q}x ≤ e_{q}}  (3.29)

primál és a

min {lπ(U) + y(E) : (π, y) ≥ 0, πA + yI_{q} ≥ e_{q}}  (3.30)

duális lineáris programot, ahol π : U → R_{+} az A sorainak megfelelő duális változók vektora, míg y : E → R_{+} az I_{m} sorainak megfelelőké. Az A mátrix TU-sága miatt mind a primál, mind a duál optimum egész vektoron felvétetik, sőt 0 − 1 vektoron is, hiszen a primál feltételek között explicit szerepel a 0 ≤ x ≤ 1 kikötés, míg a duálisban a jobboldalon azonosan 1 áll, így egy optimális (π, y) vektor minden komponense legfeljebb 1.

Amennyiben a (dualitás tétel miatt létező) közös optimum-érték legalább kl, úgy a 0 − 1 értékű optimális primál vektor 1 értékű komponensei egy olyan legalább kl élű G′ = (U, E′) részgráfot határoznak meg, amelyben minden pont foka legfeljebb l. Élek esetleges törlésével elérhetjük, hogy G′ pontosan kl darab élből álljon. Kőnig élszínezési tétele miatt E′ felbomlik l darab párosításra, amelyek szükségképpen pontosan k eleműek.

Tételezzük most fel, hogy a közös optimum értéke kisebb, mint kl. Ekkor létezik egy 0 − 1 értékű (π, y) duális optimális megoldás, amelyre lπ(U) + y(E) < kl. Jelölje Z a gráf azon v pontjainak halmazát, melyekre π(v) = 0. A duális feltételek miatt minden Z által feszített e élre y(e) = 1, és ezért i_{G}(Z) ≤ y(E). Miután π(U) = |U| − |Z|, így l(|U| − |Z|) + i_{G}(Z) ≤ lπ(U) + y(E) < kl, ellentmondásban a (3.28) feltétellel. •

3.7.3 Megengedett potenciálok, legolcsóbb utak

Legyen D = (V, A) irányított gráf, melynek (0, 1, −1)-es incidencia mátrixát jelölje Q. Egy π : V → R vektort akkor neveztünk a c : A → R költségfüggvényre nézve megengedett potenciálnak, ha π(v) − π(u) ≤ c(uv) fennáll minden uv ∈ A élre. Figyeljük meg, hogy egy π vektor pontosan akkor megengedett potenciál, ha πQ ≤ c. Egy x : A → R vektor pedig pontosan akkor áram, ha Qx = 0. Megmutatjuk, hogy a megengedett potenciál létezésére vonatkozó 3.12 tétel rögtön következik a Farkas lemma TU-mátrixokra vonatkozó élesebb alakjából. Az alábbi tétel a 3.12 tétel más szövegezéssel.

TÉTEL 3.57 Adott c : A → R költség-függvényre akkor és csak akkor létezik olyan π : V → R vektor, amelyre π(v) − π(u) ≤ c(uv) minden e = uv ∈ A élre, ha c konzervatív, azaz ha nem létezik negatív költségű irányított kör. Amennyiben c egészértékű, úgy a potenciál is választható annak.

Biz. A Q mátrix transzponáltja teljesen unimoduláris, így a 3.37 tétel miatt vagy létezik a πQ ≤ c rendszernek megoldása (amely egész, ha c az), vagy pedig a duális {Qx = 0, x ≥ 0, cx < 0} rendszernek létezik egy (0, ±1)- es megoldása. Az első eset épp egy megengedett potenciál létezését jelenti, míg a második esetben, x ≥ 0 miatt, x egy (0, 1) értékű, negatív költségű áram, amely élidegen körökre bomlik, és így e körök egyike is negatív. •

A dualitás tétel TU-mátrixokra vonatkozó élesített alakjából könnyen levezethető a 3.15 tétel is.

TÉTEL 3.58 Konzervatív c költségfüggvény esetén az s-ből t-be vezető utak költségének l_{c}(t) minimuma egyenlő π(t) − π(s) maximumával, ahol a maximum az összes megengedett π potenciálon veendő.

Biz. Tegyük fel, hogy a Q mátrix első és második sora felel meg az s illetve a t pontnak. Tekintsük a max{π(t) − π(s) : πQ ≤ c} lineáris programot. Ennek duálisa min{cx : Qx = (−1, +1, 0, 0, …, 0), x ≥ 0}. A primál program optimális megoldása épp a tétlben szereplő maximum. Mivel Q TU-mátrix, így a 3.38 tétel miatt létezik egészértékű optimális π is, ha c egész. A duális programnak a 3.38 szerint a c egészértékűségétől függetlenül létezik egy x^{∗} egészértékű optimuma. Figyeljük meg, hogy a Qx = (−1, +1, 0, 0, …, 0), x ≥ 0 megoldásai éppen az egy nagyságú folyamok. Mivel x^{∗} egészértékű, így előáll, mint egy út és irányított körök (incidencia vektorainak) nemnegatív kombinációjaként. De c konzervatívitása miatt a körök költsége nemnegatív, így ezeket kihagyva feltehetjük, hogy x^{∗} egy st út incidencia vektora. •

3.7.4 Megengedett áramok és folyamok

Korábban már megjegyeztük, hogy ha a megmaradási szabály helyett csupán a ϱ_{x}(v) ≤ δ_{x}(v) egyenlőtlenséget írjuk elő minden v csúcsnál, akkor x automatikusan áram, másszóval a Qx ≤ 0 egyenlőtlenség-rendszer megoldáshalmaza pontosan az áramok halmaza. (Ezt kellett bizonyítani a 3.16 gyakorlat (a) részében.)

TÉTEL 3.59 Ha f ≤ g egészértékű, akkor a megengedett áramok {x : Qx ≤ 0, f ≤ x ≤ g} poliédere, amennyiben nemüres, egész poliéder.

Biz. Mivel Q TU-mátrix, így ha kiegészítjük egy (negatív) egységmátrixszal, úgy továbbra is TU-mátrixot kapunk, és így a 3.38 tételt alkalmazhatjuk. •

Hasonló megfontolással kapjuk:

TÉTEL 3.60 A D = (V, A) digráf élhalmazán adott a g ≥ 0 egész kapacitásfüggvény. Legyen s és t két kijelölt csúcs, melyekre ϱ(s) = 0 = δ(t). A k nagyságú megengedett folyamok {x ∈ R^{A} : 0 ≤ x ≤ g, ϱ_{x}(v) = δ_{x}(v) minden v ∈ V − {s, t}-re, δ_{x}(s) = k} poliédere, amennyiben nemüres, egész poliéder. •

Hoffman megengedett áramok létezésére vonatkozó tételét korábban már kétféleképpen is beláttuk: egyrészt adtunk rá egy direkt bizonyítást, másrészt levezettük az MFMC tételből is. Most megmutatjuk, hogy a Hoffman tétel lényegében nem más, mint a Farkas lemmának a 3.37 tételben TU-mátrixokra vonatkozó élesebb alakja egy digráf incidencia mátrixára felírva.

TÉTEL 3.61 (Hoffman, 1960) A D = (V, A) digráfban adott f ≤ g kapacitásfüggvényekre vonatkozólag akkor és csak akkor létezik megengedett áram, ha

ϱ_{f} (X) ≤ δ_{g}(X) minden X ⊆ V halmazra.  (3.31)

Továbbá, ha f és g egészértékűek és (3.31) fennáll, úgy létezik egészértékű megengedett áram is.

Biz. Csak az elegendőség igazolásával foglalkozunk. Tekintsük a Qx ≤ 0, x ≤ g, −x ≤ −f rendszert. A 3.37 tételt alkalmazva kapjuk, hogy ha a fenti rendszernek nincs megoldása, akkor van olyan (y, u, v) (0, 1)-értékű vektor amelyre (∗) yA + u − v = 0 és (∗∗) ug − vf < 0. Mivel f ≤ g, így minden élre feltehető, hogy u(e) és v(e) közül legalább az egyik nulla (ha ugyanis mindkettő 1, akkor mindkettőt helyettesíthetjük nullával.)

Jelölje Z azon z pontok halmazát, ahol az y(z) = 1. Ekkor (∗) miatt minden olyan e élre, amelynek mindkét vége vagy Z-ben vagy V − Z-ben van, u(e) = v(e) = 0. Továbbá minden Z-be belépő e élre v(e) = 1, u(e) = 0 és minden z-ből kilépő élre v(e) = 0, u(e) = 1. Miután ug = δ_{g}(Z) és vf = ϱ_{f} (Z), így (∗∗) ellentmond a (3.31) feltételnek. •

3.7.5 Minimális költségű áramok

Tekintsük most a költséges áram problémát, azaz adott c : A → R költségfüggvény esetén keressünk minimális költségű megengedett áramot, más szóval oldjuk meg a

min{cx : Qx = 0, f ≤ x ≤ g}  (3.32)

lineáris programot. (Természetesen az x ≤ g egyenlőtlenség itt azt jelenti, hogy x(e) ≤ g(e) az olyan élekre, ahol g(e) véges. Duális változó tehát csak ilyen egyenlőtlenségekhez tartozik.)

Korlátosság és optimalitás

Először vizsgáljuk meg, hogy cx mikor korlátos alulról. Készítsünk el egy D′ = (V, A′) digráfot, és élein definiáljuk a c′ költségfüggvényt a következőképpen. D′-ben uv akkor él, ha vagy vu ∈ A, f(vu) = −∞, és ekkor c′(uv) = −c(vu), vagy pedig uv ∈ A, g(uv) = ∞, és ekkor c′(uv) = c(uv).

TÉTEL 3.62 Feltéve, hogy létezik megengedett áram, a következők ekvivalensek.

(a) cx korlátos alulról,

(b) nincs negatív összköltségű irányított kör D′-ben,

(c) létezik egy olyan π : V → R függvény, amelyre

π(v) − π(u) ≤ c(uv), ha uv ∈ A és g(uv) = ∞,
π(v) − π(u) ≥ c(uv), ha uv ∈ A és f(uv) = −∞.

Biz. A (b) és (c) feltételek ekvivalenciája következik a 3.13 tételből. Tekintsük a megengedett áramok P := {x : Qx ≤ 0, f ≤ x ≤ g} poliéderét és alkalmazzuk a 3.39 tételt. Eszerint {cx : x ∈ P } akkor és csak akkor korlátos alulról, ha nem létezik olyan (0, ±1) értékű x áram, amelyre cx < 0, x(e) ≤ 0, ha g(e) véges, és x(e) ≥ 0, ha f(e) véges. Ilyen x létezése pedig épp a D′-beli negatív kör létezésével ekvivalens. •

Tegyük most fel, hogy x megengedett áram. Készítsünk el egy D_{x} = (V, A_{x}) digráfot és az élhalmazán egy c_{x} költségfüggvényt a következőképpen. Az uv él akkor tartozzék A_{x}-hez, ha vagy uv ∈ A, x(uv) < g(uv), és ekkor legyen c_{x}(uv) := c(uv), vagy pedig vu ∈ A, x(vu) > f(vu), és ekkor legyen c_{x}(uv) := −c(vu). A 3.40 tételt specializálva kapjuk a következőt.

TÉTEL 3.63 Adott x megengedett áram esetén a következők ekvivalensek.

(a) x optimális megoldása (3.32)-nak,

(b) D_{x}-ben nem létezik negatív összköltségű irányított kör,

(c) létezik egy olyan π : V → R függvény, amelyre

π(v) − π(u) ≤ c(uv), ha uv ∈ A és x(uv) < g(uv),
π(v) − π(u) ≥ c(uv), ha uv ∈ A és x(uv) > f(uv). •

Feladat 3.34 Fogalmazzuk meg és bizonyítsuk be a 3.62 és a 3.63 tételek megengedett potenciálokra vonatkozó ellenpárját.

3.7.6 Minimális költségű folyamok

A minimális költségű folyamokra vonatkozó algoritmus segítségével már igazoltuk az alábbi tételt, legalábbis abban az esetben, amikor g egészértékű (3.27 tétel). Most megmutatjuk, hogy a háttérben most is a 3.38 tételben megfogalmazott TU-mátrixokra vonatkozó élesített dualitás tétel áll.

TÉTEL 3.64 A D = (V, A) irányított gráf élhalmazán adott a g : A → Z_{+} kapacitásfüggvény és a c : A → R_{+} költségfüggvény. A k nagyságú egészértékű megengedett folyamok költségének minimuma egyenlő a

kπ(t) + ∑[c_{π}(uv)g(uv) : uv ∈ A, c_{π}(uv) > 0]  (3.33)

érték maximumával, ahol a maximum az összes π potenciálra megy. Amennyiben g egészértékű, az optimális folyam választható egésznek. Egy k nagyságú megengedett z folyam akkor és csak akkor minimális költségű a k nagyságú megengedett folyamok között, ha létezik olyan π potenciál, amelyre fennállnak a következő optimalitási feltételek:

π(v) − π(u) < c(uv) ⇒ z(uv) = 0,  (i)
π(v) − π(u) > c(uv) ⇒ z(uv) = g(uv).  (ii)

Amennyiben c egészértékű, az optimális π is választható egészértékűnek.

Biz. Tegyük fel, hogy a digráf Q incidencia-mátrixának első és második sora felel meg az s illetve a t pontnak. Tekintsük a min{cx : x ≥ 0, Qx = (−k, +k, 0, 0, …, 0), x ≤ g} primál programot. Az x ≤ g feltételt az ekvivalens (−I_{m})x ≥ −g alakba téve felírhatjuk a duális problémát: max{k(π(t) − π(s)) − gz : πQ − zI_{m} ≥ c, z ≥ 0}, ahol m = |A|. A primál poliéder elemei a k nagyságú folyamok. A 3.38 tétel szerint a primál poliéder egész, függetlenül c egészértékűségétől. A duális poliéder egész, amennyiben g egész. Figyeljük, meg hogy tetszőleges π meghatároz egy hozzá tartozó legjobb z-t: z(uv) := π(v) − π(u) − c(uv), ha π(v) − π(u) > c(uv), és z(uv) = 0, ha c(uv) ≤ π(v) − π(u). Így tehát adott π-hez tartozó k(π(t) − π(s)) − gz célfüggvény értéke nem más mint a (3.33) képletben megadott érték, hiszen a π eltolásával feltehetjük, hogy π(s) = 0.

A tétel második felében megfogalmazott optimalitási feltételek a 3.40 tételből hasonlóképp olvashatók ki. •

3.7.7 Hálózati mátrixokkal adott lineáris programok

Fontos megjegyezni, hogy a hálózati mátrixokkal megadott lineáris programok megoldhatók áram problémaként. Legyen D = (V, A) irányított gráf, F feszítő fa és legyen N := A − F a nem-fa élek halmaza. Legyen adott f = (f_{F} , f_{N}) és g = (g_{F} , g_{N}) korlát, melyekre f ≤ g. Legyen továbbá c = (c_{F} , c_{N}) egy olyan vektor, amelyre c_{F} = 0. Jelölje az F -hez tartozó (0, ±1)-es hálózati mátrixot B, míg a D digráf (0, ±1)-es pont-él incidencia mátrixát Q_{D}. Legyen továbbá x = (x_{F} , x_{N}). Tekintsük a max{c_{N}x_{N} : f_{F} ≤ Bx_{N} ≤ g_{F} , f_{N} ≤ x_{N} ≤ g_{N}} lineáris programot. Belátjuk, hogy ez ekvivalens a max{cx : Q_{D}x = 0, f ≤ x ≤ g} maximális költségű áram feladattal.

Amennyiben x = (x_{F} , x_{N}) áram (azaz Q_{D}x = 0), úgy könnyen látszik, hogy x_{F} = Bx_{N}, és persze cx = c_{N}x_{N}. Emiatt f ≤ x ≤ g ekvivalens a f_{F} ≤ Bx_{N} ≤ g_{F} , f_{N} ≤ x_{N} ≤ g_{N} feltételekkel. Fordítva, tegyük fel, hogy x_{N} kielégíti ezen utóbbi egyenlőtlenségeket. Minden e ∈ N nem-fa élhez legyen χ_{e} az (1, a_{e}) vektor, ahol a_{e} az A mátrix e-hez tartozó oszlopa. (Másszóval, χ_{e} az e élhez tartozó C_{e} alapkör 0, ±1-es incidencia vektora.) Ekkor persze χ_{e} áram, és így az x := ∑[x_{N}(e)χ_{e} : e ∈ N] is áram, méghozzá olyan, hogy x(e) = x_{N}(e), ha e ∈ N. Látható, hogy f_{F} ≤ Bx_{N} ≤ g_{F} azzal ekvivalens, hogy f_{F} (e) ≤ x(e) ≤ g_{F} (e) minden e ∈ F élre fennáll. •

Következik például, hogy páros gráfok éleinek vagy az irányított fák irányított részútjainak egyenletes színezéseire vonatkozó tételeket egy maximális folyamot kiszámító algoritmussal tudjuk algoritmikusan kezelni. Hasonlóképp a kerekítési eredményeket. A minimális költségű megengedett potenciál meghatározásának problémáját pedig úgy lehet algoritmikusan megoldani, hogy felírjuk a hozzátartozó duális feladatot. Ez minimális költségű megengedett áram problémának tekinthető, majd ennek megoldásaként előállítjuk az optimális áramot és ennek optimális duális megoldást, ami éppen az eredeti potenciál probléma megoldása.

2004. december 15. file: lin27

Tartalom

1 LINEÁRIS ALGEBRA ÉS LINEÁRIS EGYENLETRENDSZEREK 1 1.1 VEKTORTÉR, ALTÉR, LINEÁRIS FÜGGETLENSÉG . . . . . . . . . . . . . . . . . . . . . . 1 1.2 MÁTRIXOK, EGYENLETRENDSZEREK MEGOLDHATÓSÁGA . . . . . . . . . . . . . . . 2 1.3 EGYENLETRENDSZER MEGOLDÁS-HALMAZA, AFFIN ALTEREK . . . . . . . . . . . . . 5

2 LINEÁRIS EGYENLŐTLENSÉG-RENDSZEREK 8

2.1 BEVEZETÉS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.1 Megjegyzések az intuícióról . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 KÚPOK, POLIÉDEREK, POLITOPOK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.1 Kúpok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.2 Poliéderek és politopok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.3 A FOURIER-MOTZKIN ELIMINÁCIÓ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.1 Oszlop elimináció . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.2 Az FM eljárás hatékonysága . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3.3 A 2-SAT probléma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3.4 Egy ütemezési feladat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4 POLIÉDEREK SZERKEZETE ÉS ELŐÁLLÍTÁSA . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.1 A poliéder egyenesei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.2 Bázis-megoldások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.3 Csúcsos poliéderek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4.4 Korlátos poliéderek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4.5 Poliéderek előállítása . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.5 MEGOLDHATÓSÁG: A FARKAS LEMMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5.1 Direkt bizonyítás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.5.2 Lineáris és logikai következmény . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.5.3 Alkalmazások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.6 IRÁNYMENTI KORLÁTOSSÁG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.6.1 Erős bázis-megoldások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.6.2 Az iránymenti korlátosság feltétele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2.7 OPTIMALITÁS: A DUALITÁS TÉTEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.7.1 Optimalitási feltételek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.7.2 A dualitás tétel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.7.3 Következmények . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

2.8 POLIÉDEREK ELŐÁLLÍTÁSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.8.1 Oldalak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.8.2 Dimenzió, lapok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

2.9 A SZIMPLEX ALGORITMUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.9.1 Megengedettség . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.9.2 Optimalizálás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3 OPTIMALIZÁLÁS GRÁFOKON 43

3.1 A MAGYAR MÓDSZER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.1.1 Maximális elemszámú párosítások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.1.2 A Kőnig tétel ekvivalens alakja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.1.3 Maximális súlyú párosítások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.1.4 Egerváry algoritmusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.1.5 Kuhn Magyar Módszere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.1.6 Maximális súlyú párosítások . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3.2 LEGRÖVIDEBB SÉTÁK ÉS UTAK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.2.1 Nemnegatív költségek: Dijkstra algoritmusa . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.2.2 Konzervatív költségek, megengedett potenciálok . . . . . . . . . . . . . . . . . . . . . . 48 3.2.3 Aciklikus digráfok: a kritikus út módszere . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.3 ÁRAMOK ÉS FOLYAMOK HÁLÓZATOKBAN . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.1 Fogalmak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.2 Motivációk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.3.3 Megengedett áramok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.3.4 Áramok és folyamok kapcsolata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

3.4 MAXIMÁLIS FOLYAM ALGORITMUSOK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.4.1 A növelő utak módszere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.4.2 Skálázási technika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.4.3 Legrövidebb növelő utak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

3.5 MINIMÁLIS KÖLTSÉGŰ FOLYAMOK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.6 TELJESEN UNIMODULÁRIS MÁTRIXOK . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3.6.1 Definíciók és példák . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.6.2 Farkas lemma, dualitás tétel, optimalitási feltételek TU-mátrixokra . . . . . . . . . . . . 61 3.6.3 Kerekítés és egyenletes színezés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3.7 HÁLÓZATI OPTIMALIZÁLÁS ÉS LINEÁRIS PROGRAMOZÁS . . . . . . . . . . . . . . . . 65 3.7.1 Páros gráfok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.7.2 Élszínezések . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 3.7.3 Megengedett potenciálok, legolcsóbb utak . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.7.4 Megengedett áramok és folyamok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.7.5 Minimális költségű áramok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.7.6 Minimális költségű folyamok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.7.7 Hálózati mátrixokkal adott lineáris programok . . . . . . . . . . . . . . . . . . . . . . . 69