![Logo Matematická biologie](images/logo-matbiol.png)
Metoda kvadratického programování
Tuto metodu nejprve ukážeme na konkrétním příkladu. Uvažujme populaci strukturovanou do tří tříd (stadií), přičemž v první třídě jsou novorozenci a ve třetí jsou plodní jedinci. Vývoj populace je tedy popsán projekční rovnicí
|
(6) |
Tuto rovnici můžeme přepsat v jednotlivých složkách jako systém
|
|
|
|
|
|||
|
|
|
nebo v jiném maticovém tvaru
|
(7) |
Matici na pravé straně této rovnice označíme vektor označíme
a rovnici zapíšeme stručně jako
Tyto rovnice můžeme zapsat jako jednu
-rozměrný vektor na levé straně označíme
matici typu
na levé straně označíme
a dostaneme
Složky vektoru a složky matice
jsou měřené hodnoty, vektor
je tvořen parametry, které chceme odhadnout. Pokud by se populace vyvíjela přesně podle modelu Identifikace parametrů modelu (6) a pozorování by nebyla zatížena chybou, platilo by podle předchozí rovnosti
neboli
Proto za odhady parametrů
vezmeme takové, které minimalizují normu vektoru
konkrétně použijeme normu euklidovskou.
Parametry jsou nezáporné,
vyjadřují pravděpodobnosti, součet pravděpodobnosti
přežití a přechodu ze druhé do třetí třídy a
přežití ve druhé třídě nemůže převýšit hodnotu 1. Parametry tedy musí splňovat nerovnosti
Tyto nerovnosti přepíšeme v maticovém tvaru
|
(8) |
Matici na levé straně označíme vektor na pravé straně označíme
a dostaneme podmínky ve tvaru
Celkem tak dostáváme, že odhad parametrů můžeme hledat tak, že najdeme minimum normy vektoru
za podmínky Identifikace parametrů modelu (8), stručně
V obecném případě uvažujeme populaci vyvíjející se podle rovnice
|
(9) |
která odpovídá rovnici Identifikace parametrů modelu (6) z úvodního příkladu a kterou můžeme přepsat ve tvaru
|
(10) |
kde je jednotková matice řádu
(viz výpočet v časti Vektory, matice a operace s nimi). Označíme-li
můžeme tuto rovnost zapsat stručněji,
|
(11) |
Předpokládáme, že známe strukturu matice takže víme, že mezi jejími složkami je právě
nenulových a zbývajících
je nulových; v úvodním příkladu bylo
a
Vektor
tedy obsahuje pouze
nenulových prvků. Je-li
-tá složka vektoru
rovna nule, pak každý prvek z
-tého sloupce matice
je při násobení v předchozí rovnosti násoben nulou. To znamená, že
-tý sloupec matice
k výsledku ničím nepřispívá, je zbytečný. Tato úvaha vede k tomu, že můžeme snížit dimenzi problému. Vektor
nahradíme vektorem
, který obsahuje nenulové prvky vektoru
, matici
nahradíme maticí
která vznikne z matice
tak, že v ní vynecháme všechny sloupce, které odpovídají nulovým prvkům vektoru
; v úvodním příkladu se jednalo o rovnici Identifikace parametrů modelu (7). Rovnosti Identifikace parametrů modelu (11) tedy přepíšeme ve tvaru
|
(12) |
nebo souhrnně
Vektor na levé straně označíme matici na pravé straně označíme
a dostaneme
|
(13) |
Vektor i matice
jsou složeny z pozorovaných hodnot, vektor
je
-ticí parametrů, které chcem odhadnout. Pokud by se vývoj populace přesně řídil modelem Identifikace parametrů modelu (9), pak by podle rovnosti Identifikace parametrů modelu (13) platilo
Tato úvaha vede k tomu, že za odhady parametrů
vezmeme takové hodnoty, aby norma vektoru
byla co nejmenší.
|
Hodnota nezávisí na parametrech, proto stačí minimalizovat výraz v závorce. Označíme
Pak je matice typu
a je symetrická. Hledáme vektor
s nezápornými složkami tak, aby
|
(14) |
Kromě nezápornosti musí složky vektoru splňovat i další podmínky - pravděpodobnosti nemohou překročit hodnotu 1, součet všech pravděpodobností vyjadřujících přechod z nějakého stadia do jiných také nemůže být větší než 1 a podobně. Všechna taková omezení jsou lineární, můžeme je tedy podobně jako nerovnosti Identifikace parametrů modelu (8) z úvodního příkladu obecně zapsat ve tvaru
|
(15) |
kde je vhodná matice a
je vhodný vektor; matice
má
sloupců, počet jejích a řádků je roven dimenzi vektoru
Úloha Identifikace parametrů modelu (14), Identifikace parametrů modelu (15) je úlohou kvadratického programování v základním tvaru.