Az előző fejezetben látott szabályok közül a leggyakoribb az, amikor az objektumok változásának valószínűsége arányos az objektumok gyakoriságával. Amíg ott csupán a változás tendenciái érdekeltek, addig ebben a fejezetben az arányosság mértékének pontosabb, számszerű vizsgálatával foglalkozunk.
A következő elemi modellekkel a növekedés (létszámnövekedés) különböző típusait vizsgáljuk. Két esetet különböztetünk meg:
Mindkét növekedésfajta esetén újabb három lehetőséget nézünk meg:
Jelölje X az egyedszámot, ΔX az egyedszám időegység alatti változását! Ekkor az egyes növekedéseket a következő függvények írják le az egyes növekedések esetén, ahol P a növekedés ütemét jellemző állandó:
Mindegyik modellünk úgy fog felépülni, hogy táblázatunkban nem foglalunk el kezdetben minden mezőt a betűkkel, hanem csak a táblázat bizonyos százalékát töltjük ki, majd meghatározott szabályok szerint helyezünk el további betűket a táblázat üres helyeire, amíg el nem érjük a táblázat teljes betöltöttségét (csak egy fajta betűt használunk). A három modell között a különbség ismét a szabályokban lesz.
Egy időegység a táblázat méretének (N*M) megfelelő számú elemi lépésnek felel meg. Egy lépésben átlagosan adott darabszámú egyedet kell a táblázatban elhelyezni. Különösebb matematikai megfontolások nélkül most fogadjuk el, hogy ha L paraméterű Poisson eloszlású véletlenszámokat használunk minden lépésben a konkrétan elhelyezendő egyedek számának meghatározására, akkor lépésenként átlagosan valóban L darab egyedet helyezünk el, és ez a módszer felel meg legjobban céljainknak. (Azt, hogy miért éppen a Poisson eloszlás a legalkalmasabb erre, a tananyagban a Poisson folyamatokról mondottak körvonalazzák.)
Ezt a növekedést csupán a növekedéstípusok megismerése és megvalósítási lehetőségei céljából vizsgáljuk.
Indulásként helyezzünk el átlagosan K darab X betűt táblázatunkban (azaz minden egyes helyre K/(N*M) valószínűséggel tegyünk)! Helyezzünk el további betűket az alábbi 3 stratégia szerint addig, amíg nem telik be a táblázatunk! A betelés üteme szempontjából lesz lényegi eltérés a modellek között.
Helyezzünk el elemi lépésenként P/(N*M) paraméterű Poisson-eloszlással X betűket tetszőleges üres helyen! Ekkor, ha az egy időegység N*M elemi lépésből áll, akkor egy időegység alatti növekedés várható értéke P lesz. A megoldás algoritmusa:
Szimulációs lépés:
Ciklus K=1-től N*M-ig
DB:=Poisson(P/(N*M))
Ciklus L=1-től DB-ig
Üres_hely_keresés(x,y)
Tábla(x,y):="X"
Ciklus vége
Ciklus vége
Eljárás vége.
Modellünk használatakor azt tapasztalhatjuk, hogy a X betűk számának növekedése független a B-k számától (a növekedést konstans-, a létszámot lineáris függvény írja le). A növekedés jellege:
Válasszunk ki véletlenszerűen egy helyet táblázatunkban; ha az már foglalt, akkor helyezzünk el átlagosan P db X betűt üres helyekre, ugyanis annak a valószínűsége, hogy egy tetszőleges helyen X betűt találunk, pontosan a X betűk száma osztva N*M-mel, így N*M lépés alatt a X betűk találásának várható értéke a X betűk aktuális száma lesz! A megoldás algoritmusa:
Szimulációs lépés:
Ciklus K=1-től N*M-ig
(i,j):=véletlen hely
Ha Tábla(i,j)="X" akkor DB:=Poisson(P)
Ciklus L=1-től DB-ig
Üres_hely_keresés(x,y)
Tábla(x,y):="X"
Ciklus vége
Elágazás vége
Ciklus vége
Eljárás vége.
A növekedést ebben az esetben az X betűk számának lineáris függvénye fogja leírni (minél több X betű van, annál nagyobb valószínűséggel fogunk X-et találni), amelyből azt kapjuk, hogy a létszámot exponenciális függvény írja le:
ugyanis az X’(t) = P * X(t) differenciálegyenlet megoldása X(t) = C * exp(P*t).
Válasszunk ki véletlenszerűen 2 helyet a táblázatunkban, s ha mindkettőben X betű van, akkor helyezzünk el üres helyekre átlagosan P*N*M darab X betűt! Annak a valószínűsége, hogy két véletlenszerűen választott helyen X betűt találunk (mivel ezek független események) az X betűk sűrűségének (Xszám/ (N*M)) négyzete, így N*M lépés alatt az X betűk találásának várható értéke (Xszám*Xszám)/(N*M), tehát egy ilyen konkrét esetben P*N*M darab X betűt kell elhelyeznünk.
Szimulációs lépés:
Ciklus K=1-től N*M-ig
(i,j):=véletlen hely
(a,b):=véletlen hely
Ha Tábla(i,j)="X" és Tábla(a,b)="X"
akkor DB:=Poisson(P*N*M)
Ciklus L=1-től DB-ig
Üres_hely_keresés(x,y)
Tábla(x,y):="X"
Ciklus vége
Elágazás vége
Ciklus vége
Eljárás vége.
Ebben az esetben a növekedés üteme a létszám négyzetétől függ, amelyből az következik, hogy a létszámot egy hiperbolikus függvény írja le:
ugyanis az X’(t) = P * X(t)*X(t) differenciálegyenlet megoldása X(t) = 1 / (C - P * t).
Ez egy igen gyorsan növekedő függvény (az exponenciálisnál lényegesen gyorsabban), hiszen véges időn belül végtelenné tenné a létszámot, ha a betöltöttségi határ nem állítaná le a szimulációt. Ebben a modellben lehetséges, hogy a növekedés egyáltalán nem indul meg (ha kezdetben csak egy X betű van a táblázatban).
Az egyes modellek megvalósításában az okozott nehézséget, hogy a növekedés általában nem a létszámmal, hanem a sűrűséggel volt arányos, így esetleg célszerű az alapfeladatot is ilyenre átfogalmazni.
A modellek megvalósításában – az egyszerűség érdekében – csaltunk, ugyanis a B vagy a C esetben egy időegység alatt nem biztos, hogy azonos az X betűk találásának valószínűsége, hiszen ha egy elemi lépésben (diszkrét időegységekre bontás) helyezünk el X betűket, akkor a következő választás esetén már több helyen lesz X betű. Ez a probléma felveti az események egyidejűségének kérdését. Modellünkben az időegység felosztása elemi lépések egymásutánjának meghatározását is jelenti. (A probléma valós rendszerekben is fellép, de ott legtöbbször az időegység rendkívül kicsi volta miatt nem okoz nehézséget!)
A korlátozott növekedési modell abban különbözik az korlátlantól, hogy itt adunk felső határt a populációk méretére (itt már két populációt vizsgálunk), ezt a korlátozást a – véges – helyért való versengés határozza meg. Az előző elemi növekedési modell algoritmusait fogjuk módosítani. Elhagyjuk a teljes betöltöttségig vizsgáló ciklust, illetve nem csak üres helyre helyezünk el új betűt, hanem tetszőleges helyre (akár van ott valami, akár nincs). Ezen kívül tehát kétféle betű kezelésére készülünk fel. Kezdetben K db betűt helyezünk el, minden helyre P valószínűséggel X betűt, 1-P valószínűséggel Y betűt. Az X, illetve a Y növekedését a következő függvények írnák le az egyes növekedési típusok esetén, ha a másik fajtát nem használnánk:
növekedés esetén P1 és P2 a két növekedési ráta.
Ebben a modellben az új betűk elhelyezésekor véletlenszerűen választunk a kétféle betű között (P1 db X betűt, illetve P2 db Y betűt teszünk a táblázatba egy időegység alatt, P1+P2<N*M). A megoldás algoritmusa:
Szimulációs lépés:
Ciklus K=1-től N*M-ig
Növekedés(Poisson(P1/(N*M)),"X")
Növekedés(Poisson(P2/(N*M)),"Y")
Ciklus vége
Eljárás vége.
Növekedés(DB,BETŰ)
Ciklus L=1-től DB-ig
(i,j):=véletlen hely(N,M)
Tábla(i,j):=BETŰ
Ciklus vége
Eljárás vége.
A program használatakor megfigyelhetjük, hogy a kétféle betű aránya fix érték körül fog ingadozni (P1:P2):
Számoljuk ki, hogy mi az időegységenkénti növekedés várható értéke az egyes betűkre! Az X betűk száma változásának várható értéke egy időegység alatt:
P1 db X betűt teszünk ez idő alatt a táblázatba, a letettek közül (P1*X)/(N*M) kerül X betű helyére, s ugyanezen idő alatt (P2*X)/(N*M) Y betű kerül X helyére. Ha ez a kifejezés >0, akkor az X betűk száma növekszik, ha <0, akkor pedig csökken.
A kifejezést átalakítva kapjuk:
vagyis az X betűk száma növekszik, ha az X betűk aktuális relatív gyakorisága kisebb P1/(P1+P2)-nél, s csökken, ha nem.
Ebben a modellben olyan betűt fogunk elhelyezni a táblázatban, amilyet a véletlenszerűen kiválasztott helyen találunk. Ha X-et találunk, akkor átlagosan P1 db X betűt, ha pedig Y-t, akkor P2 db Y betűt helyezünk el (a megfelelő várható értékű Poisson-eloszlású véletlenszám generálása útján). A megoldás algoritmusa:
Szimulációs lépés:
Ciklus K=1-től N*M-ig
(i,j):=véletlen hely
Ha Tábla(i,j)="X"akkor Növekedés(Poisson(P1),"X")
különben ha Tábla(i,j)="Y" akkor Növekedés(Poisson(P2),"Y")
Ciklus vége
Eljárás vége.
Modellünk vizsgálatakor azt a felismerést tehetjük, hogy ez lényegében megegyezik a 4. elemi modellel, csupán a létszám 1-gyel növekedését cseréltük le Poisson(P1)-gyel növekedésre.
A modellünkben az egyes populációk szelekciós előnyét a P1, P2 változók értékeivel szemléltethetjük, amelyik rátermettebb, az gyorsabban tud szaporodni. Azt tapasztalhatjuk, hogy a rátermettebb populáció akkor is győzhet a helyért folyó versenyben, ha kezdetben kevesebb egyedből állt (ha nagyon kevés volt, akkor a véletlentől függ, hogy el tud-e szaporodni). Tehát a logisztikus növekedés kedvez az élettérért való versengésnek, a szelekciónak, ugyanis a rátermettebb populáció – kezdeti számarányoktól függetlenül – képes teljesen kiszorítani a kevésbé szapora populációt. Erre a többi növekedési modell esetén nincs mód.
Számoljuk ki a másik populáció kiszorításának feltételét! Az X betűk száma növekszik egy időegységben, ha
ahol X az X betűk, Y pedig az Y betűk aktuális számát jelöli. X-szel való osztás után kapjuk (hasonlóan számítva az Y-ok csökkenését):
valamint
A második egyenlőtlenséget -1-gyel szorozva, s a kettőt egymásból kivonva azt kapjuk, hogy az X-ek számának növekedése az A-k számának együttes csökkenésével akkor következik be, ha P1>P2.
A változást leíró függvény:
Ebben a modellben olyan betűt fogunk elhelyezni a táblázatban, amilyent két egymásutáni kiválasztott helyen találtunk. Ha mindkét helyen X-et találunk, akkor átlagosan P1*N*M db X betűt helyezünk el, ha Y-t, akkor pedig P2*N*M db Y betűt. A megoldás algoritmusa:
Szimulációs lépés:
Ciklus K=1-től N*M-ig
(i,j):=véletlen hely
(a,b):=véletlen hely
Ha Tábla(i,j)="X" és Tábla(a,b)="X"
akkor Növekedés(Poisson(P1*N*M),"X")
különben Ha Tábla(i,j)="Y" és Tábla(a,n)="Y"
akkor Növekedés(Poisson(P2*N*M),"Y")
Ciklus vége
Eljárás vége.
Sokkal gyorsabb változások történnek modellünkben, mint az előzőkben: az egyik betű nagyon gyorsan – mintegy katasztrofális hirtelenséggel – megszűnik. Azt, hogy melyik lesz ez a betű, a kezdőlétszámok, valamint P1 és P2 értéke határozza meg. Ebben a modellben már nem igaz az, hogy az előnyösebb mindig győz; ha az – instabil – egyensúlyi állapotból kilépünk bármelyik irányba (vagy eleve kint voltunk), akkor ez az irány végleges döntést jelent a két betű sorsa között. Ezzel azt a meglepő eredményt kaptuk, hogy a korlátozott hiperbolikus növekedés nem tesz lehetővé versengést, nem teljesül a győzzön a rátermettebb elv!
Számoljuk ki a másik populáció kiszorításának feltételét! Az X betűk száma növekszik egy időegységben, ha
ahol (X az X-, Y pedig az Y-betűk aktuális számát jelöli.) X-szel való osztás után kapjuk (hasonlóan számítva Y csökkenését):
valamint
A második egyenlőtlenséget -1-gyel szorozva, s a kettőt egymásból kivonva azt kapjuk, hogy az X-ek számának növekedése az Y-ok számának együttes csökkenésével akkor következik be, ha X*P1>Y*P2.
Ily módon kapcsolódik az evolúció legfontosabb előrevivő hatóereje, a szelekció egy demográfiai stratégiához:
Korlátozott hiperbolikus növekedés, növekvő létszám. | Korlátozott hiperbolikus növekedés, csökkenő létszám. |
Készült az "Országos koordinációval a pedagógusképzés megújításáért” című TÁMOP-4.1.2.B.2-13/1-2013-0007 pályázat keretében. (ISBN 978-963-284-631-6) |
A tananyag az ELTESCORM keretrendszerrel készült