krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · naslov:...

58
Univerza v Ljubljani Fakulteta za ra ˇ cunalni ˇ stvo in informatiko Mitja Goriˇ sek Krdelo volkov: modeliranje in simulacija organiziranega plenjenja DIPLOMSKO DELO VISOKO ˇ SOLSKI STROKOVNI ˇ STUDIJSKI PROGRAM PRVE STOPNJE RA ˇ CUNALNI ˇ STVO IN INFORMATIKA Mentor: izr. prof. dr. Iztok Lebar Bajec Ljubljana, 2017

Upload: others

Post on 02-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Univerza v Ljubljani

Fakulteta za racunalnistvo in informatiko

Mitja Gorisek

Krdelo volkov: modeliranje in

simulacija organiziranega plenjenja

DIPLOMSKO DELO

VISOKOSOLSKI STROKOVNI STUDIJSKI PROGRAM PRVE

STOPNJE RACUNALNISTVO IN INFORMATIKA

Mentor: izr. prof. dr. Iztok Lebar Bajec

Ljubljana, 2017

Page 2: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Copyright. Rezultati diplomske naloge so intelektualna lastnina avtorja in

Fakultete za racunalnistvo in informatiko Univerze v Ljubljani. Za objavo in

koriscenje rezultatov diplomske naloge je potrebno pisno privoljenje avtorja,

Fakultete za racunalnistvo in informatiko ter mentorja.

Besedilo je oblikovano z urejevalnikom besedil LATEX.

Page 3: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Fakulteta za racunalnistvo in informatiko izdaja naslednjo nalogo:

Tematika naloge:

V diplomski nalogi preucite vir R. Escobedo et al (2014), Group size, indi-

vidual role differentiation and effectiveness of cooperation in a homogeneous

group of hunters, DOI: 10.1098/rsif.2014.0204 in poustvarite predstavljeni

algoritem krdela volkov in plena. V nadaljevanju najprej ponovite eksperi-

mente, nato pa poizkusite delovanje algoritma nadgraditi in izboljsati. Re-

zultate kriticno komentirajte.

Page 4: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek
Page 5: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Zahvaljujem se svoji druzini, Kaji za vso pomoc in podporo med studijem.

Zahvala gre tudi mentorju izr. prof. dr. Iztoku Lebarju Bajcu za vso pomoc

pri izdelavi diplomske naloge.

Page 6: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek
Page 7: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Kazalo

Povzetek

Abstract

1 Uvod 1

2 Uporabljena orodja in tehnologije 3

2.1 Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 MonoDeveloped in Visual Studio 2015 . . . . . . . . . . . . . 4

2.3 Photoshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.4 MatLab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.5 Autodask Maya 2013 . . . . . . . . . . . . . . . . . . . . . . . 5

2.6 Trigonometrija . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 Simulacija plenjenja 7

3.1 Opis modela v simulaciji . . . . . . . . . . . . . . . . . . . . . 7

3.2 Predstavitev modela simulacije . . . . . . . . . . . . . . . . . 8

4 Izdelava simulacije 15

4.1 Ustvarjanje projekta . . . . . . . . . . . . . . . . . . . . . . . 15

4.2 Ustvarjanje scene . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.3 Prvi del diplomske naloge . . . . . . . . . . . . . . . . . . . . 18

4.4 Drugi del diplomske naloge . . . . . . . . . . . . . . . . . . . . 21

4.5 Urejevalnik postavitev . . . . . . . . . . . . . . . . . . . . . . 25

4.6 Vizualizacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Page 8: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

5 Rezultati in testi 31

5.1 Resitev napacne formule . . . . . . . . . . . . . . . . . . . . . 31

5.2 Problem poravnave . . . . . . . . . . . . . . . . . . . . . . . . 34

5.3 Primerjava napada na plen z in brez alfa para . . . . . . . . . 35

5.4 Zanimivosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6 Sklepne ugotovitve 43

Literatura 45

Page 9: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Povzetek

Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja

Avtor: Mitja Gorisek

Lov in gibanje zivali v vecjem stevilu je zelo zanimiv fenomen, ki ga opa-

zujemo ze tisocletja. Preucevanje tehnik plenjenja in gibanja sega v dobo

pracloveka, kjer je sam clovek poustvarjal tehnike, ki jih je osvojil z opazo-

vanjem zivali pri lovu. Da bi povecal svojo uspesnost je imitiral videno in

poskusal izboljsati rezultate. V diplomski nalogi poskusamo na taksen nacin

ustvariti model plenjenja zivali, sestavljen iz preprostih pravil, kot ga upora-

bljajo volkovi. Za izdelavo simulacije se zgledujemo po viru R. Escobedo et

al (2014), Group size, individual role differentiation and effectiveness of coo-

peration in a homogeneous group of hunters, DOI: 10.1098/rsif.2014.0204, na

podlagi katerega izdelamo algoritem in se poskusamo priblizati rezultatom.

Za prilozen algoritem implementiramo nadgradnjo in izboljsave. Tehnike ple-

njenja se danes uporabljajo v razlicnih modelih, simulacijah, filmski in igralni

industriji.

Kljucne besede: simulacija plenjenja zivali, plenjenje, obkoljevanje.

Page 10: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek
Page 11: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Abstract

Title: Wolf pack: modelling and simulation of organized hunting

Author: Mitja Gorisek

Hunting and animal movement in bigger numbers is very interesting phe-

nomenon, which we are spectating for thousands of years. Studying of hunt-

ing and movement technique is reaching back in age of primitive man. Human

recreated observed hunting techniques. To increase his hunting success, he

imitated observed behaviors and tried to improve it. In the thesis we try to

use this approach to create hunting model, which is made with simple rules,

similar to wolfs. The simulation is recreated from article R. Escobedo et

al (2014), Group size, individual role differentiation and effectiveness of co-

operation in a homogeneous group of hunters, DOI: 10.1098/rsif.2014.0204.

In thesis we try to compare results, upgrade and improve the algorithm.

This techniques are used in various models, simulations, movie and gaming

industry.

Keywords: simulation of hunting animals, hunt, encircle.

Page 12: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek
Page 13: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Poglavje 1

Uvod

Preucevanje lova in gibanje zivali sega tisocletja nazaj vse do pracloveka, ki

je z opazovanjem zivali skusal razumeti tehnike plenjenja. Clovek je hitro

postal lovec, z opazovanjem plenilcev pa je kmalu spoznal, da lahko zivali

ujame in jih udomaci, ter s tem razvije nove panoge.

Volkovi zelo redko zivijo samotarsko zivljenje, saj so zelo teritorialni.

Obmocje plenjenja le redko zadostuje dovolj majhnih zivali za tako velikega

plenilca. Skupino volkov imenujemo krdel, kjer povprecna skupina steje od

5 do 11 clanov. Zivali so kot individualne izpostavljene nevarnosti, zato je

njihov naravni nagon, da se zbirajo v skupinah kadar se pocutijo ogrozene in

si s tem povecajo moznost prezivetja pred plenilci. Tekmovanje za cim boljsi

polozaj v credi, jati ali neki skupini je neprestano, saj vsak osebek skrbi zase.

Taksno obnasanje skupine kot celote zmede plenilce, ker je sledenje posame-

znemu osebku zelo tezko. Skupinsko plenjenje je pogosta oblika sodelovanja

zivali, ki se pojavijo v razlicnih stopnjah zahtevnosti. Sodelovanje vecjih ple-

nilcev skupaj, poveca moznost ulova plena, ki ga kot posameznik ne bi nikoli

uspesno ulovil.

V skupini zivali plenilci poskusajo odkriti sibki clen, ki ponavadi zaostaja,

je utrujen ali ranjen. Primerno tarco pricnejo preganjati, locijo jo od crede

in obkolijo. Postavijo se v krogu oddaljeni na minimalni varni razdalji, nato

jo utrudijo. V naslednjih poglavjih diplomskega dela je predstavljen poe-

1

Page 14: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

2 Mitja Gorisek

nostavljen algoritem plenjenja, ki je sestavljen z nekaj preprostimi pravili.

Obnasanje, ki ga poskusamo prikazati je zgolj priblizek, saj tematika ple-

njenja ni dovolj znanstveno raziskana, da bi lahko tocno definirali obnasanje

plenilcev, zato se lahko naravnemu fenomenu zgolj priblizamo. Algoritem v

simulaciji vsebuje en primerek plena, ki predstavlja sibek clen, ze odmaknjen

od ostalih, ter skupino plenilcev, ki ga poskusajo uloviti.

V prvem delu diplomske naloge predstavimo in poustvarimo algoritem

obkoljevanja plena po viru [1]. V drugem delu diplomske naloge algoritem

izboljsamo in nadgradimo z metodo napada na plen, ter na podlagi prvega

dela diplomske naloge ustvarimo hierarhijo v skupini plenilcev. S testi po-

skusamo primerjati uspesnost skupine plenilcev brez in z alfa parom, kjer

alfa par definiramo kot plenilca alfa1 in alfa2, ki imata izboljsane lastnosti.

V zadnjem delu pa zapisemo ugotovitve rezultatov analiziranih testov.

Page 15: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Poglavje 2

Uporabljena orodja in

tehnologije

2.1 Unity

Je programska oprema, namenjena za razvijanje iger, spletnih aplikacij in

lazjemu razvoju simulacij. Gre za igralni pogon (angl. game engine), ki

ga je razvilo podjetje Unity Technologies. Prednost te programske opreme

je prenosljivost projekta med vec kot 20 razlicnimi platformami (glej sliko

2.1). Unity v letu 2017 ponuja stiri razlicne artikle in sicer Personal, Plus,

Pro in Enterprise [2]. Razlicica personal je namenjena posameznikom in

manjsim podjetjem, ki zasluzijo letno manj kot 100.000$. V diplomsko nalogi

uporabljamo verzijo 5.5.0. Na voljo imamo 3 programske jezike JavaScript,

Boo in C#.

Slika 2.1: Nekaj razlicnih platform, ki jih podpira Unity.

3

Page 16: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

4 Mitja Gorisek

2.2 MonoDeveloped in Visual Studio 2015

Oba programa sta enostavna urejevalnika za pisanje programske kode, ki

nam omogocata potrebne funkcije za pisanje C# kode v Unity. Ponujata

poganjanje projekta znotraj programa, razhroscevanje (angl. debug), samo

dokoncanje kode (angl. autocomplete), itd. Ob namestitvi Unity je zraven

prilozen MonoDeveloped, ki je zelo preprost urejevalnik za pisanje skriptnih

jezikov. Urejevalnik je zelo pregleden, ima funkcijo za samo dokoncanje kode,

kar poveca produktivnost. Programska oprema ima majhno pomanjkljivost,

saj je razhroscevanje zelo nepregledno zato je za nadalnje kodiranje upora-

bljen Visual Studio 2015. Z njihove uradne spletne strani snamemo zastonj-

sko razlicico Visual Studio 2015. Za lazje delo namestimo tudi Visual Studio

2015 Tools for Unity, ki ga snamemo iz Visual Studio spletne trgovine [3].

To je zastonjski dodatek, ki nam omogoci poganjanje Unity projekta znotraj

programa Visual Studio, omogoci nam enostavno razhroscevanje, medtem ko

poganjamo projekt.

2.3 Photoshop

Photoshop je program namenjen manipulaciji nad slikami, izdelavi animacij

in risanju [4]. Program je zelo mocno orodje, zato je zelo priljubljen med

graficnimi oblikovalci, umetniki, filmski in igralni industriji, saj omogoca

enostavno izdelavo tekstur za 2D ali 3D graficne modele. Uporabili smo

ga za prototipiranje, vizualizacijo ideje, obdelavo slik in izdelavo grafov iz

simulacije (glej sliko 2.2).

Page 17: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 5

Slika 2.2: Prototip ideje.

2.4 MatLab

Je program za resevanje matematicnih in znanstvenih problemov [5]. Pro-

gram smo uporabili za izdelavo grafov na podlagi pridobljenih rezultatov iz

simulacije. Uporabili smo demo verzijo R2016b (9.1.0.441655).

2.5 Autodask Maya 2013

Je izvrsten program za izdelavo 3D modelov, animiranje in izdelavo vizualnih

efektov za razlicne simulacije, igre, filme in mnoge druge namene. Najpogo-

steje se uporablja v filmski in igralni industriji za izdelavo 3D modelov, na

katere kasneje prilepimo teksture, ki so izdelane v graficnem programu, kot

je na primer Photoshop. Maya nam omogoca pisanje skript v C# in mnogih

drugih jezikih, s katerimi lahko ustvarimo vizualne efekte [6]. S programom

so bili preurejeni modeli za plen in plenilca, ki jih uvozimo v Unity oblike

.obj in jih kasneje uporabimo v simulaciji (glej sliko 2.3).

Page 18: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

6 Mitja Gorisek

Slika 2.3: 3D model plenilca v podobi volka.

2.6 Trigonometrija

Simulacija je izvedena v 3D svetu, zato je vektor predstavljen kot zaporedje

treh stevil X, Y in Z, v zapisu enojne natancnosti (angl. float). Plen, ple-

nilce in vizualne efekte v simulaciji predstavimo kot vektor na koordinatnem

sistemu v obliki tock. Simulacija deluje na podlagi sil, zato bomo za premika-

nje objektov uporabljali osnovne vektorske operacije: sestevanja, odstevanja,

mnozenje vektorja s skalarjem, normaliziranje, itd. Unity ponuja dobro do-

kumentacijo zato osnovnih operacij za racunanje z vektorji ne poustvarjamo.

Sestevanje ali odstevanje dveh vektorjev nam vrne vektor, s katerim lahko

simuliramo premik objekta v simulaciji bodisi plena, plenilca ali pomoznih

objektov za vizualni prikaz. Pove nam v katero smer se premaknemo in

kako dalec. Prav tako nam nudi osnovo za delo s silami. Z evklidsko razda-

ljo lahko izracunamo razdaljo med dvema vektorjema. V simulaciji jo zelo

pogosto uporabimo za preverjanje razdalje med objekti v sceni. Normalizi-

ranje vektorja nam nudi lazje racunanje z vektorji. Hitrost premikanja lahko

omejimo z normalizacijo in mnozenjem vektorja s skalarjem.

Page 19: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Poglavje 3

Simulacija plenjenja

Plenilstvo je poseben odnos zivali, kjer en organizem (plenilec) ubije drugega

(plen) z razlicnih nagonskih razlogov. Plenjenje zivali ne koristi samo ple-

nilcem, ampak tudi ekosistemu, saj s tem uravnavajo ravnovesje populacije

ostalih zivali. V simulaciji volkovi predstavljajo plenilce, plen pa razlicne

zivali. V tem poglavju bomo predstavili podrobnosti delovanja modela sku-

pinskega vedenja plenilcev, ki smo ga implementirali na podlagi vira [1] .

3.1 Opis modela v simulaciji

Simulacija je sestavljena iz vec razlicnih funkcij, ki skupaj sestavljajo al-

goritem. Razdeljen je na dva dela, prvi del je obkoljevanje, ki ga zelimo

poustvariti po prilozenem viru [1], drugi del pa predstavlja plenjenje, ki ga

nacrtujemo sami.

Pri simulaciji obkoljevanja poskusamo poustvariti nacin gibanja plenilcev

in plena. Ugotoviti zelimo kaj vse vpliva na plenilce in kako se odlocajo, ter

na kaksen nacin obkolijo plen. Hkrati nas zanima kaksni dejavniki vplivajo

na plen in odlocanje le tega glede na okoliscine. Vir [1] opisuje lov plenilcev

na posamezen plen, ki predpostavlja, da so plenilci plen ze locili od skupine,

nato se zelijo plenu priblizati in ga obkoliti.

Kadar govorimo o taksnih modelih, se velikokrat osredotocimo na simu-

7

Page 20: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

8 Mitja Gorisek

lacije s silami, kjer na osebke vpliva sila kohezije (angl. cohesion), razmika

(angl. separation) in poravnave (angl. alignment), ki jih je prvi predstavil

Reynolds [7]. Taksen sistem lahko zadosti velikim simulacijam, kot je simu-

liranje jate ptic in rib, poenostavljeno credenje z ovcarjem in ovcami, itd. V

nasem primeru pa to ne pride v postev, saj se model kot taksen ne bo do-

volj dobro priblizal poustvarjanju simulacije obkoljevanja glede na prilozena

pravila iz vira [1].

V drugem delu simulacije izvedemo napad na plen. Uprizoriti zelimo fazo,

kjer so plenilci ze obkolili plen in v tej tocki pricnejo z napadanjem nanj.

Ugotoviti zelimo kaksni dejavniki vplivajo na dogodek in ali ima skupina z

alfa parom kaksno prednost pri lovu pred skupino, ki je enakovredna. V tem

delu poskusamo simulirati napad plenilca na plen in branjenje plena pred

plenilci.

Iz prejsnjega poglavja lahko razberemo, da algoritem simulacije temelji

na podlagi sil. Sile zapisemo v obliki usmerjenega vektorja in jih pristejemo

k trenutni lokaciji objektov, ter s tem ustvarimo gibanje. Plenjenje je zelo

kompleksen fenomen, zato so pravila algoritma poenostavljena. Algoritem

plenjenja bomo poskusali upodobiti z nekaj preprostimi pravili, rezultat pa

prikazemo kot simulacijo v igralnem pogonu Unity. Simulacija vsebuje vec

razlicnih testnih primerov pregona zivali, zato se plenilci in plen v posameznih

primerih razlicno obnasajo. Glavni cilj prvega dela simulacije je, da plenilci

ujamejo plen, v drugem delu pa ga zelimo v cim krajsem casu onesposobiti.

3.2 Predstavitev modela simulacije

Model smo razvili v 3 dimenzionalnem svetu, kjer je vsak posameznik opisan

z lokacijo ui in smernim vektorjem gibanja vi, ki je zapisan s koordinatami

X, Y in Z. Simulacija tece s casovnim korakom 0.02s, ki v vsakem koraku

pridobi informacije iz okolja, na podlagi katerih izracunamo vpliv na vektor

gibanja za posamezni osebek.

Simuliranje temelji na obmocju zaznavanja osebkov [7]. Vsak osebek ima

Page 21: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 9

dolocena obmocja, na podlagi katerih se odloca kaj bo storil (obmocje zazna-

vanja plenilca, obmocje kohezije, poravnave, razmika, itd). V nasem primeru

pa obmocja delimo le na obmocje zaznavanja vd, kjer zaznamo plenilca in

obmocje odbijanja cd, kjer se zgodijo akcije napada, obrambe ter odbijanja

(glej sliko 3.1).

Slika 3.1: Obmocji zaznavanja.

3.2.1 Opis plenilca

V prvem delu simulacije je osnovna naloga plenilca, ujeti plen. Iz prilozenega

vira [1] razberemo pravila obnasanja plenilca:

Prvo pravilo:

• Priblizuj se plenu, dokler ne dosezemo minimalne varnostne raz-

dalje.

• Vsak plenilec se priblizuje plenu v ravni liniji, neodvisno od

ostalih plenilcev.

• Vsak plenilec preneha s priblizevanjem na razdalji dc.

Drugo pravilo:

Page 22: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

10 Mitja Gorisek

• Ko dosezemo minimalno varnostno razdaljo dc, se plenilci po-

maknejo stran od ostalih plenilcev, ki so prav tako na varnostni

razdalji in tako simuliramo obkoljevanje.

Interakcija med plenilcem in plenom je asimetricna, saj plenilci vedno

odbijajo plen, plen pa plenilce vedno privlaci. Ko plenilci prispejo na varno

razdaljo dc, prenehajo s premikanjem proti plenu. Blizje kot je plenilec plenu,

vecja je odbojna sila in dlje kot je od plena manjsa je privlacnost.

V nasem modelu je interakcija med plenilci zgolj odbojne narave. Plenilci

se na razdalji da, pricnejo odmikati drug od drugega. Odbojnost na kratki

razdalji, si lahko predstavljamo kot potrebo za vzpostavitev osebnega pro-

stora, na katerem imajo plenilci boljsi pogled in nadzor nad plenom. Socasno

pa je prostor namenjen tudi za umik pred udarci plena, saj se ob preveliki

natrpanosti ni mogoce umakniti.

Na plenilca vplivajo sila privlacnosti plena, sila odbojnosti ostalih plenil-

cev na razdalji da in sila trenja s tlemi.

Drugi del simulacije je nadgradnja prvega, kjer poskusamo simulirati na-

pad na plen. Poleg sil iz prvega dela vpliva na plenilce se sila vidnega kota

v obliki odbojnosti. Najprej po pravilih iz prvega dela ujamemo plen, sledi

obkoljevanje z razporejanjem plenilcev in glavni cilj napad na plen, dokler

ga ne onesposobimo. Plenilec se poskusa priblizati znotraj obmocja branje-

nja cd, ce se nahaja izven vidnega kota plena in ce je od zadnjega udarca

minilo vec kot predviden cas hit frequency, ga lahko ponovno udari. V pri-

meru, da se plenilec nahaja znotraj obmocja branjenja cd in je v vidnem

kotu α, obstaja moznost, da bo prejel udarec. Ob prejetem udarcu simuli-

ramo poskodbo in s tem poskodovanega plenilca odmaknemo izven obmocja

branjenja cd za dolocen casovni interval. Po pretecenem casu, se plenilec

lahko vrne v borbo s plenom. Plenilci vnaprej poznajo vidni kot plena, tako

se lahko, glede na njegovo usmerjenost, pravocasno vrnejo na varno razda-

ljo. Primarni cilj naloge je onesposobiti plen, katerega obkoljujemo dokler ne

pade. S sekundarnim ciljem pa zelimo ugotoviti ali s spreminjanjem parame-

trov lahko simuliramo alfa par (samca in samice), ki sta dominantna clana

Page 23: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 11

skupine. Ugotoviti zelimo ali je skupina plenilcev tako bolj uspesna.

Slika 3.2: Sile, ki vplivajo na plenilca.

Slika 3.2 prikazuje sile, ki vplivajo na plenilca: sila privlacnosti plena sp,

sila odbojnosti plenilcev sw, sila odbojnosti vidnega kota plena sc in sila

odbojnosti v obliki trenja tal sf .

3.2.2 Opis plena

V prvem delu simulacije je cilj plena glede na prilozen vir [1] definiran zelo

preprosto. Plen se ne odziva na spremembe v okolju, ne zaznava plenilcev in

preprosto stoji na zeljeni poziciji ui.

V drugem delu simulacije je osnovni cilj prezivetje plena. Glavni cilj je

dolocen glede na trenuten test. Plen ima v vsakem izmed testov definirana

obmocja: obmocje zaznavanja in obmocje branjenja, prav tako mu definiramo

stevilo zivljenj HP (angl. health point). Plen se zaveda prisotnosti plenilca,

ki se nahaja v obmocju zaznavanja. Kot smo ze omenili imajo vsi osebki de-

finirano trenutno lokacijo in smerni vektor gibanja. Na plen vplivajo razlicne

sile: sila pregona v obliki odbojnosti, ki jo ustvarjajo plenilci nad plenom

in sila trenja s tlemi. Cilj plena je prezivetje, zato skozi ves cas poskusa

pobegniti, ko plenilci vstopijo v obmocje zaznavanja vd, se plen pricne bra-

niti. Branjenje plena simuliramo tako, da plen konstantno preverja, kateri

Page 24: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

12 Mitja Gorisek

plenilec se nahaja najblizje in se obrne proti njemu. Plen ne spreminja smeri

dokler se njegov pogled ne poravna s prejsnjo lokacijo plenilca, ki si jo je

zapomnil pred rotacijo. Plen ima v naprej dolocen vidni kot α in odmik kota

β, ki predstavlja obmocje kjer se plenilec pricne odmikati. Vidni kot α je

obmocje, ki ga vidi plen in je prav tako obmocje kamor udari, ko se brani.

Cilj plena je odgnati plenilce in preziveti dlje od predpisanega casa.

Slika 3.3: Sile, ki vplivajo na plen.

Na sliki 3.3 lahko vidimo vpliv sile na plen, ki jo ustvarjajo plenilci nad

plenom swp v obliki odbojnosti in silo trenja s tlemi sf .

3.2.3 Opis branjenja plena

Ko plenilci obkolijo plen, je naravni instinkt, da zival poskusa poiskati izhod,

ce plan pobega ne uspe, se pricne braniti. Zival je ponavadi zmedena, zato

poskusa storiti vse, da prezene napadalce. V simulaciji simuliramo branjenje

po principu odzeni najblizjega. Plen se zaveda okoliscin, zato v vsakem tre-

nutku pozna lokacije napadalcev znotraj obmocja zaznavanja, tako se vedno

Page 25: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 13

poskusa obrniti proti tarci, ki ji je najblizja. Frekvenca rotiranja in hitrost

sta casovno in hitrostno omejena, da se izognemo sunkovitemu spreminjanju

rotacije, v primeru ko sta dva ali vec osebka na isti oddaljenosti od plena. Ce

se plenilec nahaja znotraj obmocja branjenja cd in ce je od zadnje obrambe

minilo vec kot predviden cas hit frequency, plen simulira napad, ter tako

poskoduje plenilca. Plen ima doloceno stevilo zivljenj HP, ob izgubi vseh

zivljenje je zival onesposobljena.

Page 26: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

14 Mitja Gorisek

Page 27: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Poglavje 4

Izdelava simulacije

Simulacijo za lazjo nadgradnjo locimo na vec delov, s tem izboljsamo nadzor

in pregled nad kodo za kasnejse spreminjanje. Simulacijo razdrobimo na dve

glavni skripti Wolf behaviour in Prey behaviour, kjer znotraj prve pisemo

kodo za nadzor vseh plenilcev, medtem ko je druga skripta namenjena plenu.

Znotraj razredov definiramo spremenljivke, ki jim v funkciji Start() nasta-

vimo zacetne vrednosti. V FixedUpdate() poskrbimo za zbiranje informacij

iz okolja, znotraj katere na podlagi pridobljenih informacij izracunamo vektor

gibanja in posodobimo premike vseh prisotnih objektov v simulaciji.

4.1 Ustvarjanje projekta

Ob zagonu programa Unity nam uvodno okno ponudi izbiro med 2D in 3D

projektom, ter shranjevanje na disk ali v oblak (angl. cloud). Pred krei-

ranjem projekta lahko nalozimo dodatke (angl. assets) ali pa jih dodamo

kasneje po potrebi.

15

Page 28: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

16 Mitja Gorisek

Slika 4.1: Unity, ustvarjanje projekta.

Ustvarimo projekt z osnovno sceno, ki vsebuje luc in glavno kamero, kot

je prikazano na sliki 4.1. V okvir projekt (angl. project) na zacetku ustva-

rimo mape v katere kasneje dodajamo skripte, materiale, teksture, 2D ali 3D

modele in ostale potrebne elemente za pripravo scene.

Slika 4.2: Unity, ustvarjanje skripte.

Page 29: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 17

Na sliki 4.2 lahko vidimo ustvarjanje prazne C# skripte, katera vsebuje

razred in dve osnovni funkciji: Start() s katero nastavimo oziroma ini-

cializiramo zacetne vrednosti spremenljivk in se izvede samo v prvi slicici

(angl. frame), medtem ko se funkcija Update() izvede vsako slicico. Fiziko

in delo s silami racunamo v funkciji FixedUpdate() zaradi fiksne dolzine

casa, ki pretece med slicicami. Funkcija Update() ni primerna za izracune,

saj pretecen cas med slicicami niha, kar lahko vpliva na izracune, saj vsak

racunalnik deluje z razlicno hitrostjo.

Slika 4.3: Konsistentnosti med funkcijami.

Na sliki 4.3 lahko vidimo klic kode, ter izpis konzole iz katere je razvi-

dno, da se funkcija Start() pozene samo prvic, in je vedno konsistentna.

Update() se pozene za klicem funkcije Start(), iz katerega pa lahko takoj

vidimo, da cas klica med slicicami niha. FixedUpdate() pa je zmeraj kon-

sistentna, zato je primerna za natancne izracune. Znotraj teh treh funkcij

pisemo in klicemo vso programsko kodo.

Page 30: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

18 Mitja Gorisek

4.2 Ustvarjanje scene

Najprej je potrebno v sceno dodati objekte, ki predstavljajo plen in plenilce.

To storimo tako, da za vse prisotne objekte izberemo kar primitivni 3D model

v obliki kocke. Ustvarimo dve oznaki (angl. tag): wolf in prey, ter jih pri-

pnemo ustreznemu objektu. Kameri nastavimo pogled iz pticje perspektivne

na os X in Z, ter zaklenemo rotacijo za boljsi nadzor nad sceno. Kot smo

ze omenili na zacetku poglavja, v mapi skripte ustvarimo 2 skripti v katere

pisemo kodo za manipulacijo plenilcev in plena.

4.3 Prvi del diplomske naloge

V tem podpoglavju razlozimo in implementiramo algoritem za obkoljevanje

plena. Implementiramo premikanje plena, plenilcev in razlozimo vpliv sil na

posameznika.

4.3.1 Premikanje plenilcev

Uporabimo preprosti model na osnovi delcev, kjer plenilce (1, ..., N) in plen

(p) definiramo kot delec, na katerega vplivajo sile privlacnosti in odbojnosti.

Model temelji na osnovi Newtonovega zakona o gibanju, ki ga zapisemo v

obliki vektorjev:

mivi = Fi, i = p, 1, ..., N (4.1)

Iz enacbe (4.1) razberemo parametre: mi predstavlja tezo osebka, vi

pospesek oziroma vektor gibanja, Fi pa nam pove kaksen je sestevek sil,

ki vplivajo na posameznika. Premik posameznika simuliramo tako, da k

trenutni poziciji ui pristevamo vrednost hitrosti vi:

ui = vi, i = p, 1, ..., N (4.2)

Page 31: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 19

Hitrost vi predstavlja sestevek sil, ki vplivajo na plenilca i:

vi =1

mi

(CPW

up − ui

‖ui − up‖2

(1− dc2

‖ui − up‖2

)−

N∑j=1,j 6=i

CWW

uj − ui

‖ui − uj‖2φi,j−

Cf vi), i = 1, ..., N

(4.3)

Za boljse razumevanje enacbo (4.3) razdelimo na vec delov in jih predsta-

vimo v naslednjih podpoglavjih. Unity tece s casovnim korakom 0.02s zato

moramo silo pomnoziti s prirejenim casovnim korakom custom timestamp,

da se priblizamo casovnemu koraku iz vira [1]. Vrednost spremenljivke cu-

stom timestamp lahko spreminjamo za pohitritev ali upocasnitev elementov

v sceni.

4.3.2 Sila trenja

Najprej na podlagi trenutne vrednosti hitrost vi izracunamo silo trenja z

enacbo:

Ffriction = −Cf vi (4.4)

Sila trenja deluje v obliki odbojnosti, saj ima vedno nasprotno smer od

smeri gibanja.

4.3.3 Sila plena

Da se zacnemo premikati, moramo najprej ustvariti zacetno silo, ki nas zeli

pripeljati iz ene tocke v drugo. Izracunamo silo privlacnosti med plenilcem

in plenom, ter tako ustvarimo silo gibanja v smeri plena:

Fi,p = CPW

up − ui

‖ui − up‖2

(1− dc2

‖ui − up‖2

)(4.5)

Parametri CPW ,mi, dc so konstantne vrednosti skozi cas, ki jih nastavimo

na zacetku simulacije. Vektor up in ui pa predstavljata trenutno lokacijo

Page 32: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

20 Mitja Gorisek

plena in trenutno lokacijo i-tega plenilca. Parameter CPW je koeficient pri-

vlacnosti, s katerim lahko nastavljamo kako mocno nas plen privlaci. Enacba

(4.5), nam vrne vektor, ki ga pristejemo k trenutnemu sestevku sil.

4.3.4 Sestevek sil plenilcev

Fi,j =N∑

j=1,j 6=i

CWW

uj − ui

‖ui − uj‖2φi,j (4.6)

Fi,j je sestevek vseh sil, ki jih plenilci ustvarjajo nad plenilcem i. Para-

meter CWW je koeficient, ki nam pove kaksna je odbojnost med plenilci. φi,j

predstavlja Gaussovo funkcijo, ki je odvisna od relativne lokacije plenilca i in

plenilca j, ter kriticne razdalje da. Funkcija nam pove na kaksni razdalji bo

odbojnost med plenilcema najvecja. Vrednost Gaussove funkcije je najvecja

kadar sta oba plenilca oddaljena od plena za vrednost da in drasticno upade,

ko se eden izmed njiju oddalji od vrednosti da:

φi,j = exp(−cw ((Ri− da)2 + (Rj − da)2)) (4.7)

Enacbo (4.6) smo implementirali tako, da na zacetku simulacije v funkciji

Start() poiscemo vse plenilce brez samega sebe in jih shranimo v seznam

wolfs, ki vsebuje GameObjects. Vsak casovni korak se sprehodimo skozi

tabelo in pimerjamo trenutnega plenilca i z vsemi plenilci iz tabele, kjer ple-

nilca iz tabele oznacimo z j. Za vsakega izmed njih izracunamo oddaljenost

med j in p (plen), ter jo zapisemo v spremenljivko Rj. Sledi izracun raz-

dalje med trenutnim plenilcem j in p, ter jo zapisemo v spremenljivko Ri.

Gaussovi funkciji podamo Ri, Rj, kriticno razdaljo da in cw. Parameter cw

predstavlja sirino Gaussove funkcije, ki vpliva na odbojnost med plenilci.

Funkcija za izracun sestevka vseh sil plenilcev po enacbi (4.6) v programu

Unity:

public Vector3 Ca l c wo l f s f o r c e ( Vector3 up){Vector3 sum = Vector3 . zero ;

Ri = Vector3 . Distance (up , u i i ) ;

for ( int i = 0 ; i < wol f s . Count ; i++) {f loat w i gaus s = Calc gauss ian (

Page 33: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 21

c w ,

Ri ,

Vector3 . Distance (up ,

wo l f s [ i ] . GetComponent<Wolf behaviour >() . u i i ) ,

da

) ;

sum += (c ww/mi ) ∗Calc g ( wo l f s [ i ] . GetComponent<Wolf behaviour >() . u i i , u i i ) ∗ w i gaus s ;

}return sum ;

}

Funkcija za izracun vrednosti Gaussa po enacbi (4.7):

public f loat Calc gauss ian ( f loat c w , f loat Ri , f loat Rj , f loat da ){return Mathf . Exp((−1 ∗ c w ) ∗ (Mathf .Pow( ( Ri − da ) , 2) + Mathf .Pow( ( Rj − da ) , 2 ) ) ) ;

}

4.3.5 Premikanje plena

Premikanje plena implementiramo na podoben nacin. Najprej v funkciji

Start() poiscemo vse plenilce z oznako wolf in jih dodamo v seznam vseh

plenilcev. V vsakem koraku se izvede funkcija FixedUpdate() v kateri naj-

prej izracunamo silo trenja tako, kot smo to storili pri plenilcih, nato pa za

vsakega izmed plenilcev v tabeli izracunamo silo pregona v obliki odbojnosti,

ter jo pristejemo v skupni sestevek sil, od nje odstejemo silo trenja. Tako

dobimo pospesek plena vp po naslednji enacbi:

vp =N∑i=1

CWP

up − ui

‖ui − up‖2− Cfvp (4.8)

Hitrost vp v vsakem koraku pristevamo trenutni poziciji ui in tako po-

ustvarimo premikanje plena. Sestevek sil plenilcev pomnozimo z −1, saj

zelimo, da se odmikamo v nasprotno smer, kot ga lovijo plenilci.

4.4 Drugi del diplomske naloge

V tem poglavju razlozimo in implementiramo nadgradnjo prvega dela di-

plomske naloge, ki ji dodamo algoritem napada na plen. Implementiramo

logiko vida in branjenje plena, ter logiko napada plenilcev na plen.

Page 34: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

22 Mitja Gorisek

4.4.1 Sila vidnega kota plena

Za drugi del diplomske naloge se enacba hitrosti vi za posameznega plenilca

nekoliko spremeni. Nadgradnja enacbe vi:

vi = CPW

up − ui

‖ui − up‖2

(1− dc2

‖ui − up‖2

)−

N∑j=1,j 6=i

CWW

uj − ui

‖ui − uj‖2φi,j+(

CPC pdir

(1.5− pca

α2

+ β

))− Cfvi, i = 1, ..., N

(4.9)

Vidni kot je sestavljen iz kota α, odmika kota β in vd, ki predstavlja

dolzino kamor sega pogled plena. Sila vidnega kota ima vpliv na plenilca,

kadar se nahaja znotraj vidnega obmocja.

Slika 4.4: Vidni kot plena in prikaz sile pogleda, ki vpliva na plenilca.

Za izracun sile vidnega kota moramo najprej izracunati tocko v smeri

pogleda plenilca popf . To storimo s klicem funkcije transform.forward,

ki nam vrne smerni vektor pfow. Tocko popf dobimo tako, da sestejemo

Page 35: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 23

vektor trenutne lokacije in smerni vektor pfow, ki je pomnozen z razdaljo

Ri. Kot smo ze omenili Ri predstavlja trenutno razdaljo med plenom in

plenilcem i.

Nato izracunamo smerni vektor sile pdir, tako da od trenutne lokacije

plenilca i odstejemo popf , ter dobljeno vrednost normaliziramo za lazje na-

daljnje racunanje.

Sledi izracun trenutnega kota pca med pogledom plena in trenutne lokacije

plenilca. Zato poskrbi funkcija Calc angle, ki sprejme 3 parametre v obliki

pozicij: lokacija plena, tocka v smeri pogleda plena popf in lokacija plenilca.

Na podlagi teh treh tock izracunamo trenutni kot pca po kosinusnem izreku.

S spodnjo enacbo izracunamo faktor vpliva na silo vidnega kota, ki nam

pove kako mocno nas sila potiska vstran od centra vidnega kota glede na

naso trenutno pozicijo:

conefac = 1.5− pcaα2

+ β(4.10)

Silo vidnega kota izracunamo po enacbi (4.11), kjer vektor smeri pdir

pomnozimo s faktorjem vpliva conefac in zeljenim koeficientom vidnega kota

CPC , ki ga nastavimo sami.

Fcone =

(CPC pdir

(1.5− pca

α2

+ β

))(4.11)

4.4.2 Napad na plen

Plenilec se priblizuje plenu in neprestano preverja ali je znotraj obmocja za-

znavanja plena vd. Ob vstopu v obmocje vd pricne s preverjanjem ali ga

plen vidi ali ne. To storimo tako, da ob vsakem koraku poklicemo funk-

cijo Calc angle, ce je vrnjen kot manjsi od polovice vidnega kota plena,

pomeni, da nas plen vidi. Plenu se lahko priblizujemo kljub temu, da nas

vidi, ce smo zunaj obmocja branjenja cd. V primeru, da se nahajamo zno-

Page 36: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

24 Mitja Gorisek

traj obmocja branjenja in nas plen vidi, se odmikamo, dokler nismo zunaj

kriticnega obmocja, hkrati pa se poskusamo izmakniti vidnemu kotu, tako da

se odmikamo vstran od sredisca pogleda plena. Kadar se nahajamo znotraj

vidnega polja plena, spremenimo vrednost varnostne razdalje dc na dc safe,

ki ga izracunamo po enacbi:

dc safe = cd+ (0.8 mp); (4.12)

Vrednost dc safe izracunamo na podlagi dolzine polmera obmocja bra-

njenja plena cd, kateremu pristejemo tezo plena pomnozeno z vrednostjo 0,8.

Predpostavljamo, da tezje zivali zadajo mocnejse udarce, zato na podlagi

teze in obmocja zaznavanja vd dolocimo varnostno razdaljo dc.

Kadar se nahajamo znotraj obmocja branjenja cd in vidnega kota plena,

obstaja moznost, da nas je plen udaril, in ce nas je, simuliramo poskodbo.

Stanje spremenljivke set hit spremenimo na resnicno. Ko je stanje set hit

resnicno, nastavimo cas kazni time penalty, ki jo izracunamo tako, da po-

mnozimo koeficient kazni udarca time penalty coeficient in stevilo prejetih

udarcev doslej n hit. Dokler ima plenilec kazen, je vrednost spremenljivke

dc nastavljena na dc penalty, ki predstavlja prepoved priblizevanja plenu.

Izracunamo jo po enacbi:

dc penalty = cd+ 0.3 n hit mp

(time penalty left

time penalty

)(4.13)

Plenilec lahko plen udari, ko se nahaja znotraj kriticne razdalje da pod

pogojem, da ga plen ne vidi. Ce plenilcu uspe udariti plen, se plenilcu nastavi

zakasnitev udarca. Plenilec lahko ponovno udari plen, ko se zakasnitev iznici.

4.4.3 Branjenje plena

V spremenljivko dt shranjujemo pretecen cas od zacetka simulacije. Spre-

menljivko dt v vsakem koraku posodobimo za vrednost casovnega koraka

Page 37: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 25

0.02s in preverimo ali smo v zadnjem casu izvedli rotacijo. To storimo tako,

da od dt odstejemo cas zadnje pojavitve rotacije. Vrnjen cas nam pove, ko-

liko casa je preteklo od zadnje rotacije. V primeru, da je pretecen cas vecji

od frekvence rotacije fr, pricnemo z iskanjem plenilcev. Najprej preverimo

koliko plenilcev se nahaja znotraj obmocja zaznavanja vd in jih vpisemo v

seznam. Za vsakega izmed kandidatov v seznamu izracunamo razdaljo med

njima. Najblizjega plenilca nastavimo za tarco in simuliramo rotiranje. To

storimo tako, da funkciji Quaternion.RotateTowards posredujemo 3 para-

metre: trenutno rotacijo plena, trenutno lokacijo tarce in hitrost rotacije s

katero zelimo rotirati plen. Plen se obrne proti zadnji lokaciji, kjer se je

nahajal plenilec. Ob vsakem koraku preverjamo ali je plenilec se v vidnem

kotu α s klicem funkcije Calc angle. V primeru, da je vrnjen kot manjsi

od polovice vidnega kota plenilca, pomeni da je plenilec znotraj kriticnega

obmocje in vidnega kota plena. Ce v zadnjih nekaj sekundah nismo udarili,

potem izvrsimo udarec. Plenilcu nastavimo stanje spremenljivke set hit na

resnicno in ga zacasno izkljucimo iz napada. Postopek ponovimo, ko lahko

izvedemo naslednjo rotacijo.

4.5 Urejevalnik postavitev

Med izdelavo simulacije je potrebno veliko sprotnega testiranja, zato je bilo

potrebno plenilce in plen neprestano dodajati, odvzemati, spreminjati atri-

bute, prestavljati na razlicne polozaje itd., kar je zelo zamudno in neprakticno.

Za boljso produktivnost sprogramiramo gradnik, ki bo ponujal razlicne moznosti

postavitev, dodajanje ali odvzemanje, aktiviranje ali deaktiviranje posame-

znih skript in nastavljanje razlicnih postavitev plenilcev.

Najprej naredimo nov razred formation script, ki vsebuje javne spremen-

ljivke (glej sliko 4.5). Ustvarimo razsirjen razred formation editor iz nadre-

jenega razreda Editor. Skripte izpeljane iz tega razreda lahko izvajajo kodo

brez zagona projekta, ki se izvajajo znotraj scene. Za ta namen uporablja

funkcijo OnSceneGUI( ), ki nam omogoci manipulacijo nad sceno.

Page 38: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

26 Mitja Gorisek

Za izdelavo razlicnih formacij, uporabimo oznacbo wolf, ki smo jo ustva-

rili na zacetku projekta in pripeli vsem primernim objektom. V razredu

formation editor smo dodali selektor, ki nam v seznam zapise vse objekte,

ki vsebujejo podano oznacbo. Nad elementi iz seznama izvajamo razlicne

matematicne operacije glede na izbrani nacin postavitve iz menija, ki smo

ga pred tem definirali v razredu formation script. Na formacijo vplivajo

razlicni parametri, ki jih lahko spreminjamo v realnem casu. Tako smo defi-

nirali horizontalno, vertikalno, krozno, vijugasto, ter vsestransko postavitev

paper equations, ki pokriva vse teste iz vira [1] (glej sliko 4.6). Vsaka izmed

moznosti vsebuje formation location, s katerim nastavimo izhodiscno tocko,

spread by nam pove kaksen naj bo razmik med elementi, angle predstavlja

kot, offset pa zamik kota.

Slika 4.5: Urejevalni vmesnik, za manipulacijo nad plenilci.

Prisotnim plenilcem v sceni nadredimo starsa, ki je prazni objekt (angl.

empty object), na katerega pripnemo urejevalno skripto, kar nam omogoci

dostop do urejevalnega vmesnika.

Page 39: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 27

Slika 4.6: Rezultati razlicnih postavitev s pomocjo urejevalnika.

4.6 Vizualizacija

Vizualizacija je zelo pomemben del simulacije, ki nam nudi hiter in enostaven

pogled nad izvajanjem trenutnega testa. Za potrebe primerjave rezultatov

smo najprej uporabili zelo preprost pristop, kjer oranzne kocke predstavljajo

plenilce, plen pa je bel.

Slika 4.7: Razlicni prikazi vizualizacije za boljso preglednost nad rezultati.

Slika 4.7 prikazuje razlicne vizualizacije, ki nam pomagajo pri pregledno-

sti simulacije. Skrajno levo lahko vidimo golo simulacijo, medtem ko srednji

Page 40: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

28 Mitja Gorisek

prikaz prikazuje kriticno obmocje dc, skrajno desni pa nadgradnjo srednje,

kjer dodamo razdalje Ri v obliki orbit.

Slika 4.8: Vizualizaciji simulacije lova.

Na levi strani slike 4.8 vidimo simulacijo lova, kjer notranji krog predsta-

vlja obmocje branjenja cd, zunanji krog pa predstavlja obmocje zaznavanja

vd. Trikotnik rdece barve predstavlja vidno polje plena. Povezava oranzne

barve pa simulira udarec plenilca. Kroglica rdece barve predstavlja sredisce

SRP, ki je skupno sredisce vseh plenilcev. Zgoraj desno ob plenu prikazemo

stiatistiko lova, kjer prey HP predstavlja stevilo zivljenj plena, prey survived

pa predstavlja cas obleganja plenilcev. Na desni strani slike 4.8 pa lahko vi-

dimo nadgradnjo, kjer dodamo sled bele barve, ki oznacuje pot posameznega

plenilca, tako lahko enostavno spremljamo kje se gibajo plenilci. Za boljso

razlocnost sledem nastavimo material, ki nam omogoci nastavitev barve za

posamezno sled.

4.6.1 Nadgradnja simulacije v 3D

Za zbiranje podatkov in opravljanje testov, je najbolj preprosti pristop naj-

boljsi, saj je cilj simulacije v tej fazi predvsem natancnost rezultatov posa-

meznega testa, zato smo za poustvarjanje rezultatov iz vira [1] uporabili cim

bolj poenostavljene primitivne oblike objektov.

Koncen izgled simulacije pa nadgradimo s 3D objekti, ki vsebujejo skelet

Page 41: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 29

na podlagi katerega je ustvarjena animacija s programom Maya. 3D objekte

uvozimo v Unity in ga zamenjamo z obstojecim izgledom kocke. Za delovanje

animacije je potrebno dodati komponento animator, ki nam omogoci animi-

ranje objekta. V mrezo komponente za animiranje dodamo zeljene animacije,

ki jih zelimo uporabiti v simulaciji. Za nase potrebe potrebujemo 4 stanja:

stanje mirovanja, hoje, teka in napada. Diagram odlocanja si lahko ogle-

damo na sliki 4.9. Vsaka animacija ima zacetno vstopno stanje (angl. Entry

state), ki skrbi za prehod na prevzeto stanje animacije. V nasem primeru

nastavimo mirovanje (angl. idle) za privzeto stanje. To je stanje v katerega

se vracamo vedno, kadar ne izpolnjujemo pogojev za prehod na ostale anima-

cije. Diagram odlocanja poteka na podlagi dveh parametrov: hitrost plenilca

in stanja napada, ki jih nastavimo v skripti Wolf behaviour. Ce je hitrost

plenilca vecja od 0.05 potem preidemo v stanje hoje (angl. walk), medtem

ko za stanje teka potrebujemo hitrost vecjo od 0.4. Iz vsakega stanja, lahko

preidemo v stanje napada, ce je vrednost spremenljivke za napad resnicna,

vracanje iz stanja napada pa je odvisno od trenutne hitrosti premikanja po

napadu.

Slika 4.9: Urejevalnik animacij, animator.

Page 42: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

30 Mitja Gorisek

Slika 4.10: Koncna simulacija plenjenja z animacijo in 3D modelom volka.

Page 43: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Poglavje 5

Rezultati in testi

Najprej smo uporabili predlagane enacbe iz vira [1], s katerimi smo uspesno

poustvarili gibanje plenilcev v smeri plena. Na minimalni varnostni razdalji

dc, bi se morali plenilci odmikati drug od drugega in se tako razvrstiti okrog

plena. Na razdalji dc, se je zgodilo ravno obratno, plenilci so se povlekli

v gruco in se priceli premikati kaoticno. S spremembo parametra cw na

negativno vrednost in Gaussove funkcije, smo uspeli poustvariti obkoljevanje.

Ob prednastavitvi parametrov iz vira [1, tabela 1] in vrednosti dc = 1, bi

morali poustvariti rezultate, ki nam vrnejo strukturo obkoljevanja, kjer se

plenilci postavijo v vec krogov. S spremembo Gaussove formule nam je uspelo

poustvariti postavitev, kjer se plenilci postavijo v en krog. Ne glede na

vnesene parametre nam ne uspe poustvariti rezultatov brez, da bi spremenili

staro enacbo:

Fi = Fi,p +N∑

j=1,j 6=i

Fi,j − Cf vi (5.1)

5.1 Resitev napacne formule

Najprej smo priceli razvijati simulacijo na podlagi prilozenih enacb iz vira [1].

Ob zagonu simulacije opazimo, da so se plenilci priceli premikati proti plenu.

Glede na vir [1], bi se plenilci morali na razdalji da odmikati od ostalih in

31

Page 44: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

32 Mitja Gorisek

sproziti akcijo obkoljevanja okrog plena. Na podlagi prilozenih enacb, smo

uspeli plenilce pripeljati do razdalje da, ob kontaktu z minimalno varnostno

razdaljo dc, so se plenilci priceli obnasati ravno obratno, kar je sprozilo tesno

formiranje v gruco, sledilo pa je kaoticno obnasanje. Ob pregledu enacb in

prilozenih parametrov iz vira [1, tabele 1], lahko hitro opazimo, da je enacba

napacna, saj je avtor predpostavil, da so vsi koeficienti pozitivne vrednosti.

Napaka je v viru [1], natancneje v enacbi (3.3), kjer za posameznega plenilca

izracunamo Gaussovo funkcijo, ki nam vraca negativno vrednost. Ugotovimo,

da se ob spremembi predznaka koeficienta cw, plenilci pricnejo na razdalji da

odmikati drug od drugega in obkolijo plen. Vendar to ne odpravi tezave za

N > 5 , kjer N predstavlja stevilo plenilcev. Za vrednost dc = 1 in N = 6,

bi se morali plenilci razporediti v dva obroca okrog tarce, kar z enacbo iz

vira [1] ni bilo mogoce doseci. Ob kontaktu avtorja, smo prisli do skupnega

spoznanja, da so v viru [1] napacne enacbe, in sicer (3.4) in (3.5). Posledicno

(3.3) za plenilce in (3.8), ter (3.7) za plen, saj funkcije ne vracajo pravilnih

vrednosti glede na prilozene rezultate, zato jih z originalnimi enacbami ni

mogoce poustvariti.

V pricakovanju na avtorjev odgovor, smo ze sami prisli do zelo podobne

resitve. Avtor se je zelo hitro odzval z naslednjo explicitno enacbo, ki

zdruzuje enacbi (3.2) in (3.3), ter zamenja enacbi (3.4) in (3.5) iz vira [1]

z novimi. Nova enacba nas pripelje do boljsih rezultatov:

vi =1

mi

(CPW

up − ui

‖ui − up‖2

(1− dc2

‖ui − up‖2

)−

N∑j=1,j 6=i

CWW

uj − ui

‖ui − uj‖2φi,j−

Cf vi), i = 1, ..., N

(5.2)

Glede na predlagano enacbo za pospesek plenilca, smo izpeljali enacbo

za pospesek plena. S pomocjo dveh novih formul smo prisli do drugacnih

vendar se zmeraj zelo podobnih rezultatov.

Page 45: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 33

Slika 5.1: Poustvarjanje simulacije obkoljevanja z novo enacbo.

Za nase potrebe drugega dela diplomske naloge, je bilo potrebno ustvariti

vec nivojsko obkoljevanje, kar smo s pomocjo novo izpeljanih enacb uspesno

in brez problemov poustvarili. Zgolj iz radovednosti smo zeleli ugotoviti,

zakaj prihaja do razhajanja pri rezultatih iz prilozenega vira [1, slika 5],

kjer poskusamo poustvariti periodicno rotacijo plenilcev. Pod vplivom spe-

cificnih nastavitev parametrov skozi cas naraste nestabilnost med plenilci,

katera sprozi proces, ki izgleda kot napetost med plenilci in povzroci ro-

tacijo. Ker z enakimi vrednostmi rezultatov nismo uspeli poustvariti, smo

najprej poskusali s spreminjanjem parametrov, nato smo predvidevali, da

napetost ne naraste dovolj zaradi premajhne velikosti decimalnih mest za-

pisa lokacij. Unity za svoje namene ne potrebuje dvojne natancnosti (angl.

double), saj za racunanje kolizij med objekti in racunanje z vektorji zado-

stuje enojna natancnost. Najprej je bilo potrebno napisati vse funkcije za

racunanje vektorjev z dvojno natancnostjo, nato smo ponovno poskusali s

testiranjem. Z izvajanjem testov ugotovimo, da je dolzina zapisa enojne na-

tancnosti dovolj natancna. Posvetujemo se z avtorjem, ki nam predlaga, da

je velika moznost problem uporabe razlicnega okolja, saj je avtor svoje delo

ustvaril v programskem jeziku Fortran [8] operacijskega sistema Linux [9]

in simulacijo izrisoval s knjiznjico pgplot [10]. Zaradi sintakse jezika Fortran

[8], ki nam je popolnoma neznana se nase raziskovanje prvega dela diplomske

naloge tukaj zakljuci.

Page 46: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

34 Mitja Gorisek

5.2 Problem poravnave

Slika 5.2: Prikaz problema in resitve vodoravne postavitve.

Avtor vira [1] izpostavi problem mrtve tocke, kadar poravnamo plenilce

in plen v vodoravno ali navpicno linijo, kot prikazuje slika 5.2 na skrajno

levi strani. Srednji del prikazuje problem mrtve tocke, kjer se plenilci na

minimalni varnosti razdalji dc ne locijo drug od drugega, ter posledicno ne

sprozijo akcije obkoljevanja pravilno. Problem nastane, kadar je sestevek od-

bojne sile, ki jo izvajajo plenilci nad plenilcem i enak nic za koordinato Z ob

vodoravni postavitvi, ter za koordinato X ob navpicni postavitvi. Oddaljeva-

nje med plenilci se zgodi, vendar samo v smeri postavitve, za nicte vrednosti

sestevka odbojne sile pa faktor Gaussa nima vpliva, saj se pomnozi z nic.

Problem enostavno odpravimo z pregledovanjem sestevka sil nad plenilcem

i, ce je sila enaka 0 v dolocenem primeru, potem vrednost te spremenljivke

nastavimo na minimalno pozitivno stevilo enojne natancnosti, ki preverjeno

deluje za vrednosti do 10−43 pri casovnem koraku custom timestamp vredno-

sti 0,01. Rezultat resitve je samostojno odlocanje najblizjega plenilca, ko

pride do taksne situacije. Plenilce se premakne v smeri obkoljevanja za zelo

majhno vrednost, kar sprozi akcijo obkoljevanja. Prikaz delujoce simulacije

s pomocjo implementirane resitve lahko vidimo na skrajno desni strani slike

5.2.

Page 47: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 35

5.3 Primerjava napada na plen z in brez alfa

para

Slika 5.3: Primerjava enakovredne skupine levo, ter skupina z alfa parom na

desni.

Med preucevanjem nove formule za obkoljevanje plena smo ugotovili, da

lahko s prametrom cw ustvarimo hierarhijo skupine plenilcev. To storimo

tako, da posameznemu plenilcu nastavimo specificno vrednost parametra cw.

Ce se parameter cw dovolj razlikuje med plenilci lahko s tem ustvarimo hie-

rarhijo znotraj skupine plenilcev, ter tako ustvarimo alfa par.

Zanima nas ali je skupina z ali brez alfa para bolj uspesna?

Test izvedemo tako, da plenilcem nastavimo zacetne vrednosti iz tabele

5.1, plenu pa glede na vrednosti iz tabele 5.2. Prva skupina plenilcev vsebuje

enakovredne clane, zato vsem nastavimo vrednost cw = 0, 3. Druga skupina

vsebuje dva plenilca, ki ju poimenujemo alfa1 in alfa2, ki imata vrednost cw =

1, ostalim plenilcem pa nastavimo cw na 0.3. V obeh primerih imajo plenilci

zacetno pozicijo definirano z (0.5 * i - 4, 0, -3.5), kjer i predstavlja zaporedno

stevilko plenilca, vrednosti pa predstavljajo X,Y in Z koordinate, medtem

ko plen postavimo na izhodisce koordinatnega sistema (0, 0, 0). Plenilci

so definirani kot nepremagljivi, plen pa ima 100 enot energije. Posamezen

Page 48: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

36 Mitja Gorisek

custom timestamp casovni korak 0.01

mi teza plenilca 0.1

Cf koeficient trenja za plenilce 1

CPW koeficient sile, ki jo ustvarja plen nad ple-

nilcem

1

CWW koeficient sile, odbojnost med plenilci 0.5

dc zacetna varnostna razdalja plenilca 1

da razdalja do plena, na kateri se pricnejo

plenilci odmikati drug od drugega

1.5

cone tolerance deg odmik vidnega kota plena β v stopinhaj 20

cw sirina koeficienta Gaussove funkcije øij

(1/sqrt(2 * cw))

0.5

N stevilo plenilcev v testu simulacije 3-12

time penalty

coefficient

cas kazni plenilca ob udarcu plena 5

Tabela 5.1: Zacetni podatki plenilca.

udarec plenilca odstrani 5 enot energije. Test izvedemo tako, da plenilci

napadajo plen toliko casa, dokler ne izgubi vseh energije. Test izvedemo za

N = 3, 5, 7 in 11, kjer N predstavlja stevilo plenilcev.

Najprej smo izvedli test po zgornjih pravilih za skupino brez alfa para,

kot lahko vidimo na sliki 5.5 primer a), nato smo izvedli test skupine z alfa

parom, kot prikazuje primer b), ter dobili zanimive rezultate.

Iz rezultatov na sliki 5.4 je razvidno, da imajo plenilci zelo veliko prednost,

kadar skupina vsebuje alfa par, saj se na prvi pogled cas lova zelo zmanjsa.

Alfa par prevzame vlogo glavnih napadalcev, kot je razvidno iz odebeljenih

vrednosti stolpca ugrizi, prav tako pa prejemata najvec udarcev. Iz tega

lahko sklepamo, da sta zelo agresivna in se kljub velikemu stevilu udarcev

zelo hitro vrneta nazaj v boj. Stolpec ugrizi prikazuje stevilo ugrizov posa-

meznega plenilca, poskodbe pa predstavljajo stevilo prejetih udarcev, ki jih

Page 49: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 37

mp teza plena 1

Cf koeficient trenja za plen 2

CWP koeficient sile, ki jo ustvarja plenilec nad

plenom

0.2

CPCW koeficient sile, ki jo ustvarja plen z vidnim

poljem nad plenilcem

0.8

Cac mnozitelj koeficienta CPCW 5

Pva vidni kot plena α 45

Rf pogostost rotacije plena 1

Rs hitrost rotacije plena 200

vd obmocje zaznavanja 4

cd obmocje branjenja 2

HP stevilo zivljenj plena 100

cone td toleranca vidnega polja v stopinjah 20

Tabela 5.2: Zacetni podatki za plen.

je plenilec prejel od plena, odebeljene vrednost pa predstavljajo vrednosti

alfa1 in alfa2. Vrednosti stolpca postavitve sta: equal, ki predstavlja enako-

vredne plenilce, medtem ko alfa-L prestavlja alfa par lociran na levi zacetni

poziciji, ter ostale plenilce.

Slika 5.4: Rezultati primerjave skupine brez in z alfa parom.

Ker so rezultati zelo specificni, smo zeleli preveriti konsistentnost alfa

para, ce jima spreminjamo zacetni polozaj, kot lahko vidimo na sliki 5.5, kjer

Page 50: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

38 Mitja Gorisek

primer a) predstavlja enakovredne plenilce. V tabeli to prikazemo z oznacbo

equal saj ne vsebujejo alfa para, b) oznacimo z alfa-L, kjer alfa par lociramo

na levo stran skupine, c) postavitev z oznacbo alfa-R, par lociramo desno, d)

z alfa-LR, kjer postavimo plenilca alfa1 skrajno levo, alfa2 pa skrajno desno.

Postavitev e) oznacimo z alfa-C, ki predstavlja postavitev para v sredino, ce

je stevilo plenilcev liho zavzema alfa2 sredisce, medtem ko je alfa1 lociran

kot levi sosed (glej sliko 5.5).

Slika 5.5: Postavitve zacetnih pozicij testiranja.

Teste smo ponovili za pozicije (c-e) in jih primerjali s prejsnjimi rezultati.

Ugotovili smo, da alfa par brez dvoma izboljsa uspesnost lova. V povprecju se

cas lova zmanjsa za kar 16 do 31% v odvisnosti od velikosti skupine plenilcev,

posledicno pa sta zaradi tega veckrat poskodovana. Ce primerjamo poskodbe

obeh skupin opazimo, da so poskodbe skupine brez alfa para zelo nakljucne,

medtem ko v skupini z alfa parom prevladujejo poskodbe predvsem pri njiju.

Ob spremljanju simulacije opazimo, da koeficient cw vpliva tudi na mini-

malno razdaljo, saj se alfa par pribliza blizje za udarec, kot ostali plenilci. V

diplomski nalogi predpostavljamo, da imajo vsi plenilci enako mocan ugriz,

neglede na moc ali razdaljo udarca. Zelo zanimivo bi bilo preizkusiti kaksne

rezultate bi dobili, ce bi plenilec za blizji pristop udarca zadal vecje poskodbe

plenu.

Page 51: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 39

Slika 5.6: Rezultati z alfa parom na razlicnih pozicijah.

5.3.1 Primerjava grafov obeh skupin

Naslednja stvar, ki jo zelimo preveriti je kako agresivna postane skupina kot

celota in kako vpliva alfa par na posameznega soseda v skupini.

Simulacijo je potrebno nadgraditi tako, da si v vsakem casovnem koraku

v datoteke zapisujemo trenutno oddaljenost plenilca od plena v odvisnosti od

casa. Zapisujemo si trenutno oddaljenost plenilca alfa1, alfa2, enega izmed

sosedov alfa para, plenilca, ki je najdlje od alfa para, ter povprecje oddalje-

nosti skupine, ki jo izracunamo tako, da sestejemo vse trenutne oddaljenosti

od plena, ter jih delimo s stevilom plenilcev. Pridobljene rezultate vstavimo

v program matlab in izrisemo grafe.

Iz grafa slike 5.7 je zelo lepo razvidno, da se skupina z alfa parom pribliza

plenu blizje za kar 6.4%, kar se odraza s predcasno zakljucenim bojem. Graf

slike 5.8 pa nam zgolj potrdi prejsnje rezultate testiranj, saj se ob spremembi

vrednosti cw poveca agresivnost plenilca alfa1 za 15.62% in alfa2 za 21.88%.

Zaradi njune agresivnosti stojita veliko blizje kot ostali plenilci in sta zato

najveckrat izpostavljena kriticnemu obmocju, hkrati pa s tem preusmerjata

Page 52: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

40 Mitja Gorisek

pozornost plena v njuno smer, tako imajo ostali plenilci vec moznosti za

priloznost ugriza, ceprav so manj izkuseni. Ob izvajanju testov spremljamo

simulacijo in opazamo, da so sosednji plenilci alfa para nekoliko zadrzani,

iz slike 5.9 razberemo upad agresivnosti sosednjih plenilcev za 15.82%, med

tem ko plenilcu 7 upade agresivnost za 13.42%, ki se nahaja na drugi strani

skupine. Iz tega lahko sklepamo, da so plenilci ob alfa paru manj izkuseni

in lahko predpostavimo, da iscejo zascito ob bolj atleltskem plenilcu, saj

se pocutijo bolj varno, kar se odraza na njihovi agresivnosti in varnostni

razdalji, medtem ko bolj samozavestni plenilci pomagajo obkoljevati plen z

druge strani.

Slika 5.7: Graf agresivnosti skupine brez in z dominantnim parom.

Page 53: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Diplomska naloga 41

Slika 5.8: Primerjava alfa plenilca 1 in 2.

Slika 5.9: Primerjava plenilcev pod vplivom alfa para.

5.4 Zanimivosti

Zgolj iz radovednosti nas je zanimalo ali lahko algoritem popravimo tako, da

se plen brani s kroznim gibanjem in s tem odganja plenilce. Simulirati zelimo

plen, ki brani mladica v centru koordinatnega sistema. Parametre smo na-

stavili tako, da se plen giba v krogu oddaljen od centra koordinatnega sistem

na razdalji Ri = 3, algoritem smo obrnili tako, da plenilci plen privlacijo. Pot

Page 54: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

42 Mitja Gorisek

plena je oznacena z belo crto, rezultat kroznega branjenja pa lahko vidimo

na sliki 5.10.

Slika 5.10: Obrnjen algoritem.

Page 55: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Poglavje 6

Sklepne ugotovitve

Po prilozenih enacbah iz vira [1] smo najprej implementirali algoritem, ki

se je izkazal za nedelujocega. Rezultatov najprej zaradi napacnih enacb in

napak pri zapisu testov ni bilo mogoce poustvariti. Za nadaljnje delo je naj-

prej bilo potrebno raziskati vzrok, zakaj se plenilci ne razvrscajo pravilno.

V pricakovanju na odgovor avtorja vira [1], smo sami izpeljali enacbo, ki je

bila zelo podobna tej, ki nam jo je kasneje posredoval avtor sam. Na pod-

lagi avtorjeve enacbe smo implementirali algoritem s katerim smo uspesno

poustvarili obkoljevanje plena in prisli do zelo podobnih rezultatov. Zaradi

spremembe formul je prislo do odstopanj pri rezultatih, kar je razumljivo in

tudi razvidno pri obkoljevanju. V nadaljevanju smo pregledali algoritem in

ugotovili, da ne deluje za popolnoma poravnane razvrstitve (vodoravne ali

navpicne) plenilcev in plena. Za taksne primere smo nadgradili algoritem

tako, da se zna pravilno odlocati tudi v taksnih primerih. Drugi del simula-

cije smo nadgradili z algoritmom za napadanje plena in primerjali skupino

plenilcev z in brez deominantnega para. S spremembo parametrov smo prisli

do spoznanja, da lahko zelo preprosto dosezemo hierarhijo skupine plenilcev

in s tem simuliramo dominantni par. Rezultati testiranja so pokazali, da

imajo skupine z dominantnima parom vecjo uspesnost pri lovu, kot pri tistih

skupinah, kjer so plenilci enakovredni. Iz rezultatov smo tudi razbrali, da

se manj izkuseni plenilci zadrzujejo ob dominantnem paru, kar se odraza na

43

Page 56: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

44 Mitja Gorisek

njihovi povecani varnostni razdalji in imajo znizano agresivnost. Za konec

simulacijo animiramo s 3D elementi in opazimo, da je dovolj prepricljiva, da

bi jo lako eventuelno uporabili v racunalniskih igrah.

V nasi simulaciji smo predpostavili, da imajo vsi plenilci enako moc

ugriza. Zelo zanimivo bi bilo preuciti, kaksne rezultate bi dobili, ce bi se

plenilec ucil iz napak, hkrati pa bi bila moc ugriza dolocena glede na rela-

tivno razdaljo od plena.

Page 57: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

Literatura

[1] R. Escobedo, C. Muro, L. Spector, and R. P. Coppinger, “Group size,

individual role differentiation and effectiveness of cooperation in a ho-

mogeneous group of hunters,” Journal of The Royal Society Interface,

vol. 11, no. 95, 2014.

[2] “Unity store.” Dosegljivo: https://store.unity.com. [Dostopano: 1. 2.

2017].

[3] S. Lebreton, “Odprtokodno orodje za razhroscevanje Visual Studio

Unity tools.” Dosegljivo: https://marketplace.visualstudio.com. [Do-

stopano: 1. 2. 2017].

[4] “Photoshop.” Dosegljivo: https://creative.adobe.com. [Dostopano: 1.

2. 2017].

[5] “Matlab.” Dosegljivo: https://www.mathworks.com/products/. [Dosto-

pano: 1. 2. 2017].

[6] “Autodesk maya.” Dosegljivo: https://creative.adobe.com/products.

[Dostopano: 1. 2. 2017].

[7] C. W. Reynolds, “Flocks, herds and schools: A distributed behavioral

model,” ACM SIGGRAPH computer graphics, vol. 21, no. 4, pp. 25–34,

1987.

[8] “Fortran.” Dosegljivo: https://gcc.gnu.org/fortran/. [Dostopano: 1. 2.

2017].

45

Page 58: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja · 2018. 3. 13. · Naslov: Krdelo volkov: modeliranje in simulacija organiziranega plenjenja Avtor: Mitja Gori sek

46 Mitja Gorisek

[9] “Linux.” Dosegljivo: https://en.wikipedia.org/wiki/Linux. [Dostopano:

1. 2. 2017].

[10] “Pgplot graphics subroutine library.” Dosegljivo:

http://www.astro.caltech.edu. [Dostopano: 1. 2. 2017].

[11] C. Muro, R. Escobedo, L. Spector, and R. Coppinger, “Wolf-pack (canis

lupus) hunting strategies emerge from simple rules in computational

simulations,” Science Direct, vol. 88, no. 3, pp. 192–197, 2011.

[12] D. Shiffman, The nature of code. The Nature of Code, 2012.

[13] L. D. Mech, D. W. Smith, and D. MacNulty, Wolves on the Hunt: The

Behavior of Wolves Hunting Wild Prey. University Of Chicago Press,

2015.

[14] D. Haupt, “Tf3dm 3d model.” Dosegljivo: http://tf3dm.com. [Dosto-

pano: 1. 2. 2017].

[15] “Law of cosine.” Dosegljivo: https://en.wikipedia.org/wiki/Law of cosine.

[Dostopano: 1. 2. 2017].