Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

Modellezés és szimuláció / Szimulációs modellek a biológiában /Függelékek

Szimulációs modellek a biológiában

Függelékek

I. Technikai eszközök, algoritmikus receptek a megvalósításhoz

I.1. Táblázatfeltöltés allélgyakoriság alapján

Feladat

1. feladat:

Adott egy N×2 -es táblázat ( S(N,2) ), N darab diploid egyed, egy lokusz, két allél (F és S betű), valamint adott ezek gyakorisága (F: P és S: Q=1-P )! Töltsük fel a táblázatot az allélgyakoriságok alapján!

Megoldás:

A feladatban egy N soros, egy soron belül két oszlopos táblázatot kell feltöltenünk. A táblázat egy elemének töltése a következő:

Válasszunk egy véletlenszámot! Ha ez a véletlenszám kisebb, mint az F allél gyakorisága, akkor tegyünk egy F betűt a táblázat elemébe. Ha nem, akkor S betűt kell tennünk oda.

A megoldás algoritmusa a következő:

Feltöltés:

Ciklus i=1-től N-ig

Ciklus j=1-től 2-ig

Ha véletlenszám<P akkor S(i,j):="F" különben S(i,j):="S"

Ciklus vége

Ciklus vége

Eljárás vége.

Feladat

2. feladat:

Adott egy N×4 -es táblázat ( S(N,4) ), N darab tetraploid egyed, egy lokusz, két allél (F és S), valamint ezek gyakorisága (F: P és S: Q=1-P )! Töltsük fel a táblázatot az allélgyakoriságok alapján!

Megoldás:

Egy N soros, és soronként 4 oszlopos táblázatot kell feltölteni a gyakoriságok alapján. A táblázat egy elemének a töltése az 1. feladat megoldásától annyiban tér el, hogy a táblázat 4 oszlopos, ezért a belső ciklus 4-ig tart.

Feladat

3. feladat:

Adott egy N×4 -es táblázat ( S(N,4) ), N darab diploid egyed, két lokusz, két-két allél (F,S, illetve M,N), valamint ezek gyakorisága (F: P és S: Q=1-P , M: R és N: 1-R )! Töltsük fel a táblázatot az allél-gyakoriságok alapján!

Megoldás:

A feladat ismét egy N soros, és soronként 4 oszlopos táblázat feltöltése. Az első és a második oszlopot az egyik lokusz allélgyakoriságai alapján töltjük fel, a harmadik és negyedik oszlopot pedig a másik lokusz allélgyakoriságai alapján. Ezzel a feladat megoldását az 1. feladathoz hasonlóan készíthetjük el.

Feladat

4. feladat:

Adott egy N×2 -es táblázat ( S(N,2) ), N darab diploid egyed, egy lokusz, K darab allél ( A(K) ), s ezek gyakoriságai ( AGy(K) )! Töltsük fel a táblázatot az allélgyakoriságok alapján!

Megoldás:

Egy N soros, soronként 2 oszlopos táblázatot töltünk fel. Ezen belül egy elem töltése a következő lesz:

Válasszunk egy véletlenszámot! Van K darab allél (az A(K) vektorban) és allélgyakoriság (a K elemű AGy() vektor). Az allélgyakoriságok összege 1. Felosztjuk a [0,1) intervallumot K darab részintervallumra (ezt tartalmazza az AGy vektor), és amelyik részintervallumba esik a véletlenszám, annyiadik allélt tesszük be a táblázat elemébe.

Feltöltés:

Ciklus i=1-től N-ig

Ciklus j=1-től 2-ig

X:=véletlenszám; l:=1; P:=AGy(l)

Ciklus amíg X≥P

l:=l+1; P:=P+AGy(l)

Ciklus vége

S(i,j):=A(l)

Ciklus vége

Ciklus vége

Eljárás vége.

I.2. Táblázatfeltöltés genotípus-gyakoriság alapján

Feladat

1. feladat:

Adott egy N×2 -es táblázat ( S(N,2) ), diploid egyedek, egy lokusz és ebben két allél (F és S betű legyen), valamint a három lehetséges genotípus relatív gyakorisága FF: P1 , az SF: P2 és az SS: P3=1-P1-P2 )! Töltsük fel a táblázatot a genotípus-gyakoriságok alapján!

Megoldás:

A feladatban egy N soros táblázatot kell feltöltenünk. A táblázat egy sorának feltöltése a következő:

Válasszunk egy véletlenszámot! Ha ez a véletlenszám kisebb, mint az FF genotípus gyakorisága, akkor tegyünk F betűket a táblázat adott sorába. Ha nem volt kisebb, akkor, ha kisebb P1+P2 -nél, akkor tegyünk S és F betűt az adott sorba (heterozigóta), egyébként tegyünk S betűket oda!

Feltöltés:

Ciklus i=1-től N-ig

X:=véletlenszám

Ha X<P1 akkor S(i,1):="F"; S(i,2):="F"

különben Ha X<P1+P2 akkor S(i,1):="S"; S(i,2):="F"

különben S(i,1):="S"; S(i,2):="S"

Ciklus vége

Eljárás vége.

Feladat

2. feladat:

Adott egy N×4 -es táblázat ( S(N,4) ), diploid egyedek, 2 lokusz, 2-2 allél (F és S, illetve A és B betű legyen), valamint a 9 lehetséges genotípus relatív gyakorisága ( P(i) az i . genotípus relatív gyakorisága)! Töltsük fel a táblázatot a genotípus-gyakoriságok alapján!

Megoldás:

A feladatban egy N soros táblázatot kell feltöltenünk. A táblázat egy sorának feltöltése a következő:

Osszuk fel a [0,1) intervallumot a genotípusok relatív gyakoriságainak megfelelő hosszúságú részintervallumokra! Válasszunk egy véletlenszámot! Ha ez a véletlenszám az i . részintervallumba esik, akkor helyezzük el az i . genotípus betűit az adott sorba! A 9 genotípust tároljuk a G(9,4) mátrixban!

Feltöltés:

Ciklus i=1-től N-ig

X:=véletlenszám; k:=1; PP:=P(k)

Ciklus amíg PP<X

k:=k+1; PP:=PP+P(k)

Ciklus vége

S(i,):=G(k,)

Ciklus vége

Eljárás vége.

I.3. Táblázatfeltöltés fajgyakoriság alapján

Feladat

1. feladat:

Adott egy N×M táblázat ( T(N,M) ), ahova ragadozó (R) és zsákmányállatokat (Z) kell elhelyezni. A ragadozókat RV , a zsákmányokat ZV valószínűséggel minden egyes helyre! A többi hely legyen üres!

Megoldás:

Feltöltés:

Ciklus i=1-től N-ig

Ciklus j=1-től M-ig

X:=véletlenszám

Ha X<RV akkor T(i,j):="R"

különben Ha X<RV+ZV akkor T(i,j):="Z"

különben T(i,j):=" "

Ciklus vége

Ciklus vége

Eljárás vége.

I.4. Számlálási feladatok

Feladat

1. feladat:

Adott egy N×2 -es táblázat ( S(N,2) ), N db diploid egyed, egy lokusz, 2 allél. Határozzuk meg táblázatunkban az allélok (F és S) gyakoriságát!

Megoldás:

Használjuk az FGY és az SGY változókat, amelyekben számoljuk az egyes allélokat! A megoldás során végignézzük a táblázat sorait, ezen belül oszlopait, s megnézzük, hogy a konkrét helyen milyen allél található, majd annak a számlálóját növeljük eggyel.

Számlálás:

FGY:=0; SGY:=0

Ciklus i=1-től N-ig

Ciklus j=1-től 2-ig

Ha S(i,j)="F" akkor FGY:=FGY+1

különben SGY:=SGY+1

Ciklus vége

Ciklus vége

Eljárás vége.

Feladat

2. feladat:

Adott egy N×2 -es táblázat ( S(N,2) ), N db diploid egyed, egy lokusz, 2 allél. Határozzuk meg táblázatunkban a genotípusok (FF, SF és SS) gyakoriságát!

Megoldás:

Használjuk az SZ(3) vektort, amelyben számoljuk az egyes genotípusok gyakoriságát! A megoldás során végignézzük a táblázat sorait, s megszámoljuk, hogy az adott sorban mennyi S allél van, majd a kapott értéknél eggyel nagyobb indexű számlálót növeljük eggyel.

Számlálás:

SZ():=0

Ciklus i=1-től N-ig

j:=1

Ciklus k=1-től 2-ig

Ha S(i,k)="S" akkor j:=j+1

Ciklus vége

SZ(j):=SZ(j)+1

Ciklus vége

Eljárás vége.

Feladat

3. feladat:

Adott egy N×4 -es táblázat ( S(N,4) ), N db tetraploid egyed, egy lokusz, 2 allél. Határozzuk meg táblázatunkban a genotípusok (FFFF, SFFF,SSFF,SSSF,SSSS) gyakoriságát!

Megoldás:

Abban különbözik az előző feladatétól, hogy itt az S vektort 5 eleműnek definiáljuk, és a belső ciklusban mind a 4 oszlopot végignézve adjuk meg az S allélok számát, majd ebből a fenti módon számolhatunk.

Feladat

4. feladat:

Adott egy N×2 -es táblázat ( S(N,2) ), N db diploid egyed, egy lokusz, maximum K db allél. Számoljuk meg, hogy a táblázatunkban melyik allél milyen gyakorisággal fordul elő!

Megoldás:

Használni fogunk kettő K elemű táblázatot, A(K) tartalmazza a K db lehetséges allélt, SZ(K) pedig az egyes allélok számát. A számlálást az első feladathoz hasonlóan végezzük el, az aktuális allél sorszámának meghatározása lesz bonyolultabb.

Számlálás:

SZ():=0

Ciklus i=1-től N-ig

Ciklus j=1-től 2-ig

l:=1

Ciklus amíg S(i,j)≠A(l)

l:=l+1

Ciklus vége

SZ(l):=SZ(l)+1

Ciklus vége

Ciklus vége

Eljárás vége.

Feladat

5. feladat:

Adott egy N×2 -es táblázat ( S(N,2) ), N db diploid egyed, egy lokusz, maximum K db allél. Számoljuk meg, hogy a táblázatunkban az adott pillanatban mennyi allél található meg!

Megoldás:

Felhasználjuk az előző feladat megoldását. Ott már megszámoltuk, hogy melyik allélból mennyi van a táblázatban, így amennyi számláló értéke nem 0, annyi allél van a táblázatunkban ( sa az allélok száma).

Számlálás:

SZ():=0

Ciklus i=1-től N-ig

Ciklus j=1-től 2-ig

l:=1

Ciklus amíg S(i,j)≠A(l)

l:=l+1

Ciklus vége

SZ(l):=SZ(l)+1

Ciklus vége

Ciklus vége

sa:=0

Ciklus i=1-től K-ig

Ha SZ(i)>0 akkor sa:=sa+1

Ciklus vége

Eljárás vége.

I.5. Tömörítési feladatok

Feladat

1. feladat:

Adott egy N elemű táblázat ( T(N) ), a táblázatból hagyjuk ki a 0 elemeket, és N mutasson az utolsó nem nulla elemre!

Megoldás:

Táblázat tömörítés(N,T(N)):

j:=0

Ciklus i=1-től N-ig

Ha T(i)≠0 akkor j:=j+1; T(j):=T(i)

Ciklus vége

Eljárás vége.

I.6. Szomszédsággal kapcsolatos feladatok

Feladat

1. feladat:

Adott egy N×M -es táblázat ( T(N,M) ) és a táblázat egy ( i , j ) helye. Válasszuk ki egyik szomszédját véletlenszerűen! A szomszédok maximum S hely távolságra lehetnek mind a nyolc irányban.

Megoldás:

Szomszédválasztás(i,j,S):

k:=i-S-1+véletlen(2*S+1)

l:=j-S-1+véletlen(2*S+1)

Eljárás vége.

Feladat

2. feladat:

Adott egy N×M -es táblázat ( T(N,M) ) és a táblázat egy ( i , j ) helye. Válasszuk ki egyik szomszédját véletlenszerűen úgy, hogy a szomszéd a táblázaton belül legyen! A szomszédok nyolc irányban lehetnek.

Megoldás:

Szomszédválasztás(i,j):

Ciklus

k:=i-1+véletlen(3)

l:=j-1+véletlen(3)

amíg k<1 vagy k>N vagy l<1 vagy l>M

Ciklus vége

Eljárás vége.

Feladat

3. feladat:

Adott egy N×M -es táblázat ( T(N,M) ) és a táblázat egy ( i , j ) helye. Számoljuk meg, hogy az ( i , j ) hely szomszédságában hány S betű található!

Megoldás:

Szomszédszámlálás(i,j,S,DB):

DB:=0

Ciklus k=i-1-től i+1-ig

Ciklus l=j-1-től j+1-ig

Ha k≥1 és k≤N és l≥1 és l≤M akkor Ha T(k,l)=S akkor DB:=DB+1

Ciklus vége

Ciklus vége

Eljárás vége.

Feladat

4. feladat:

Adott egy N×M -es táblázat ( T(N,M) ) és a táblázat egy ( i , j ) helye. Keressünk az ( i , j ) hely szomszédságában S betűt!

Megoldás:

Szomszédkeresés(i,j,S,VAN,si,sj):

VAN:=hamis

Ciklus k=i-1-től i+1-ig

Ciklus l=j-1-től j+1-ig

Ha k≥1 és k≤N és l≥1 és l≤M akkor

Ha T(k,l)=S akkor VAN:=igaz; si:=k; sj:=l

Ciklus vége

Ciklus vége

Eljárás vége.

Feladat

5. feladat:

Adott egy N×M -es táblázat ( T(N,M) ) és a táblázat egy ( i , j ) helye. Válasszunk az ( i , j ) hely szomszédságában egy véletlenszerű S betűt!

Megoldás:

Szomszédválasztás(i,j,S,DB,si,sj):

DB:=0

Ciklus k=i-1-től i+1-ig

Ciklus l=j-1-től j+1-ig

Ha k≥1 és k≤N és l≥1 és l≤M akkor

Ha T(k,l)=S akkor DB:=DB+1; S(DB):=k; O(DB):=l

Ciklus vége

Ciklus vége

Ha DB>0 akkor R:=véletlen(DB); si:=S(R); sj:=O(R)

Eljárás vége.

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.
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