Upload
others
View
33
Download
1
Embed Size (px)
Citation preview
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Simulacija FudbalaSeminarski rad iz predmeta Programske Paradigme
Nemanja Mićović1 Lazar Ranković2
[email protected]/~mi13283
Matematički Fakultet
[email protected]/~mi13268
Matematički Fakultet
Prezentacija projekta, 2. februar 2016
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
O programu
Struktura programaI Python engine za generisanje podatakaI Baza podatakaI Java program baziran na MVC-u
Motivacija za temu:I Primena verovatnoće i statistikeI Duboko poznavanje samog fudbalaI Kompleksnost same tematike
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Paradigme koje su javile
Korišćene paradigme:I Skript paradigma (Python)I Paradigma upitnih jezika (SQL)I Objektna paradigma (Java)I Komponentna paradigma (JavaFX)I Konkurentna paradigma (Java niti)I Funkcionalna paradigma (Java lambda izrazi)I Vizuelna paradigma (UML dijagrami i konstrukcija automata)
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Python engine za generisanje podataka
Koliko je podataka potrebno (na nivou sloga baze podataka) zasimulaciju fudbalske utakmice?1 tim → ime lige, ime tima, logo tima1 igrac → ime, prezime, datum rođenja, tim, slika, 20 ocenaUzmimo: 10 timova, 11 igraca Ukupno:10 ∗ 11 ∗ (20 + 6) + 10 ∗ 4 = 2900 slogova!
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Python engine za generisanje podatakaPitanje od milion dolara?
Šta radi programer kada treba da uradi više od 5 (ili 2900) putaistu stvar, iako mu pada teško i da samo jednom to radi?
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Python engine za generisanje podatakaPitanje od milion dolara?
Napravi program koji to uradi za njega.
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Python engine za generisanje podatakaStruktura
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Python engine za generisanje podatakaHTML podaci
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Python engine za generisanje podatakaPython kod
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Python engine za generisanje podatakaCSV podaci
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Python engine za generisanje podatakaBaza podataka
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Baza podatakaBaza podataka
Zašto baza podataka?I performanseI sigurnostI prenosivostI manipulacija podatakaI paralelna obrada
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Baza podatakaShema baze
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Baza podatakaSlika baze
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Baza podatakaKorišćena tehnologija
Korišćene tehnologije:I mySQLI PhpMyAdmin
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programZašto java?
Zašto java?I portabilnostI kvalitetan interfejs za rad sa bazomI kvalitetna dokumentacijaI velika zajednicaI kvalitetno razvojno okruženjeI velika količina dostupnih bibliotekaI Intellij Idea
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programMVC patern
MVC (Model, View, Controller) patern (engl. pattern) razdvajaproblem na 3 osnovne komponente.Osnovni delovi:
I model (engl. model)I pogled (engl. view)I kontroler (engl. controller)
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programMVC patern
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programUML dijagram klasa
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programParadigme u javi
Koje se to paradigme javljaju u Javi?I Objektna paradigmaI Komponentna paradigmaI Konkurentna paradigmaI Funkcionalna paradigmaI Paradigma upitnih jezika
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programObjektna paradigma
Korišćeni elementi objektne paradigme:I enkapsulacija objekataI nasleđivanjeI polimorfizamI biblioteke (yodatime, jdbc)
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programObjektna paradigma
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programKomponentna paradigma
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programKonkurentna paradigma
Program koristi java klasu Thread koju nasleđuju neke odimplementiranih klasa.Java niti omogućavaju kontrolu brzine simulacije, dodelu nitisamom automatu koji se izvršava odvojeno od niti za iscrtavanjeinterfejsa i slično.
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programFunkcionalna paradigma
Primena lambda izraza sa sortiranje.
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programFunkcionalna paradigma
Primena lambda izraza sa sortiranje.
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Java programParadigma upitnih jezika
Korišćenje jezika SQL za komunikaciju sa bazom podataka.
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Konačni deterministički automat
Konačni deterministički automatFormalna definicija
DefinicijaNedeterministički konačni automat je uređena petorka(Σ,Q, I,F , ∆).Gde su:
I Σ azbukaI Q skup stanjaI I početna stanjaI F završna stanjaI ∆ skup prelaza po stanjima
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Konačni deterministički automat
Konačni deterministički automatFormalna definicija
DefinicijaDeterministički konačni automat zadovljava prethodno datudefiniciju i važi:
I Ne postoje ε prelaziI |I| = 1I Prelaz iz svakog stanja u naredno je jedinstveno određen.
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Konačni deterministički automat
Algoritam za simulaciju
Automat se koristi za simulaciju utakmice.Stanja automata su događaji iz fudbala poput:
I Tim A ima posed lopteI Igrač A iz tima B šutiraI Korner za tim AI Igrač A dodaje loptu igraču BI Igrač A oduzima loptu igraču BI Gol za tim A
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Konačni deterministički automat
Algoritam za simulacijuPrelazak automata iz stanje u stanje
Automat menja stanja na osnovu ishoda događaja koji sesimuliraju.Kada tim A ima posed lopte, generišu se verovatnoće (zasnovanena podacima iz realnog života) na osnovu kojih se donosi odlukašta tim A pokušava da uradi sa loptom.Ishod bilo kakve akcije tima A se zasniva na pozivanju evaluacionefunkcije koja vraća ishod događaja koji se izračunava na osnovuocena igrača koji učestuju u duelu.
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Konačni deterministički automat
Algoritam za simulacijuKako poboljšati nivo realnosti simulacije?
I Bolje modelovanje evaluacionih verovatnoćaI Dodavanja novih stanja u automat (aut, penal, izmena...)
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Dalji razvojBudućnost samog projekta?
Aplikacija je:I skalabilnaI dokumentovanaI na GitHub-uI prati MVCI lako proširiva
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Dalji razvojBudućnost algoritma za simulaciju?
Šta je potrebno dodati:I uopštavanjeI primena na druge sportoveI optimizacijaI formalna verifikacija
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Pitanja
Pitanja?
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora
Struktura seminarskog rada Python engine Baza podataka Java program Algoritam simulacije Zaključak Zahvalnica
Zahvalnicaza seminarski rad
Ovom prilikom bi smo se zahvalili dr. Mileni Vujošević Janičić napruženoj prilici da kreiramo prikazani seminarski rad, kao i naznanju koje smo stekli tokom slušanja kursa Programskeparadigme.Zahvalili bismo i kolegi Čedomiru Dimiću koji nam je pomogao priunosu podataka u bazu podataka.
Nemanja Mićović, Lazar Ranković Matematički FakultetSimulacija Fudbala - Project Aurora