170 likes | 288 Views
Pécsi Tudományegyetem Pollack Mihály Műszaki Kar Műszaki Informatika Szak Data Mining. 29. Gyakorlat Dr. Pauler Gá bor , Egyetemi Docens PTE-PMMK Számítástechnika Tanszék Iroda: Boszorkány u., B épület 101 Tel: 72/503-650/3725 E-mail: gjpauler@acsu.buffalo.edu
E N D
Pécsi TudományegyetemPollack Mihály Műszaki KarMűszaki Informatika SzakData Mining 29. Gyakorlat Dr. Pauler Gábor, Egyetemi Docens PTE-PMMK Számítástechnika Tanszék Iroda: Boszorkány u., B épület 101 Tel: 72/503-650/3725 E-mail: gjpauler@acsu.buffalo.edu Készült a PTE Alapítvány támogatásával
A gyakorlat tartalma 28. Házi Feladat: összetett határidős ügyletek XFuzzy 3.0 fuzzy rendszer tervező shell • Telepítése • Rendszertervezés • Fuzzy rendszer szerkesztő • Operátorszerkesztő • Nyelvi változó típus szerkesztő • A fuzzy értékek lehetséges típusai • I/O nyelvi változók hozzáadása • Szabálybázis szerkesztő • Mátrixos definíció • Táblázatos definíció • Nyelvi definíció • A szabálybázis meghívása • Rendszerstruktúra szerkesztés • A megvalósítási csomag szerkesztése • A fuzzy rendszer verifikációja • 2D diagramm, 3D diagramm • Monitoring és szimuláció • A fuzzy rendszer szintézise • Felügyelt tanulás • Kódgeneráció Java, C, C++ nyelveken 29. Házi Feladat: Vezérlési függvény tervezés Szakirodalom
Az XFuzzy3.0 Telepítése katt • A Instituto de Mictroelectronica de Sevilla (IMSE), Spanyolország által fejlesztett XFuzzy3.0 Java-alapú, GNU Public licenszes (nem üzleti célra szabadon felhasználható) fuzzy rendszer tervező shell (http://www.imse.cnm.es/Xfuzzy/), amely költségtakarékosan biztosítja a FuzzyTech funkcionalitásának 90%-át Telepítéséhez töltsük le az INSTALL.CLASS telepítőfájlt (1.4Mb) a http://www.imse.cnm.es/Xfuzzy/Xfuzzy_3.0/download.html#DISTRIBUTION lapról • A telepítő és a rendszer futtatásához szükség lesz minimálisan a Java Runtime Environment (JRE) 5.0 telepítésére, ami a http://java.sun.com/javase/downloads/index.jsp címen érhető el • Telepítő futtatása: Start menü| Futtatás…|JAVA INSTALL • Rákérdez, hova telepítse, pl: C:\XFuzzy • Létrehoz egy \BIN alkönyvtárat, itt lesznek a futtatható részek • \BIN\XFUZZY.BAT – tal indítható a rendszer grafikus szerkesztője • A vele párhuzamosan futó DOS-ablakot nem szabad bezárni, amíg ez fut katt katt
katt katt katt Rendszertervezés 1 katt katt Az XFuzzy filozófiája 2 lényeges pontban tér el a FuzzyTech-étől: • A Fuzzy rendszer finomhangolása nem a szabálysúlyok, hanem a fuzzy operátorok és nyelvi módosítók beállításain alapul • Élesen szét van válaszva a fuzzy rendszer elméleti terve (Fuzzy System), és az adott hardver-szoftver környezetbeli matematikai megvalósítási csomagja (Package). Ezek külön fájlokban tárolódnak és külön ablakokban nyithatók meg: Fuzzy rendszerek (Available Systems) ablak: • File| New/ Load system-mel létrehoz/ betölt egy *.xfl fáljban tárolt fuzzy rendszert, rákattintva kijelöli használatra Csomagok (Available Packages) ablak: • File| New/ Load package-vel létrehoz/ betölt egy *.pkg fáljban tárolt fuzzy rendszert, rákattintva kijelöli használatra • Az alapértelmezett csomag: \pkg\xfl.pkg Fuzzy rendszer szerkesztő (XFedit): • Design| Edit System menüvel indul • Name gomb: a fuzzy rendszer neve katt katt
katt katt Rendszertervezés 2 katt • Operátorhalmaz (Operatorset) definíció: a rendszer által használt összes fuzzy operátor tipus szótára: • Edit| New operator set-el újat kérünk • Name gomb: az operátorhalmaz neve • Az aktuális package tartalmából kiválasztjuk a fuzzy operátor-függvényeket, alapértelmezésben ezek a következők: • És (And): min • Vagy (Or): max • Output kiadása (Implication): min • Tagadás (Not): 1-m • Szintén (Also): max • Nagyon (Very): m2 • Többé-kevésbé (Moreorless): m0.5 • Kevéssé (Slightly): 4m(1-m) • Defuzzifikáció: CoA • A beállítások mindenkoron File| Save System As… menüvel menthetők egy *.XFL fájlba, pl.: MyFirstSystem.xfl katt katt katt katt katt katt
katt katt Rendszertervezés 3 katt katt Nyelvi változó típus (Type) definíció: Edit| New type-al újat kérünk, belép a Type Creation ablakba: • Name: Alapváltozó neve • Parent: a szülőtípus, ahonnan örökölhet már definiált értékeket (opcionális) • Min, Max, Cardinality: alapváltozó min, max, felbontása (diszkrét változóknál) • No.MFs: fuzzy értékek száma • Extends: Fuzzy értékekrendszer: • Háromszöges: outputnak, szakaszonként lineáris vezérlési függvényhez • Trapézos: outputnak, lépcsős-lejtős vezérlési függvényhez • Haranggörbés: outputnak, folytonos görbe vezérlési függvényhez • Vállas háromszöges: inputnak • Vállas haranggörbés: inputnak • Szingletonos: nem fuzzifikálható rendszer részekhez, pl. nominális kategóriaváltozók • Create gomb: átlép a Type Editor ablakba • Ins/Del: fuzzy értékek beszúrása/ törlése • Duplakatt az értéklistán: az érték Parameter Selection ablakába lép • Label:értéknév, Function:függvény-típus, a, b, c, d: paraméterek katt kat- kat katt katt katt katt
katt katt Rendszertervezés 4 katt A fuzzy értékek lehetséges függvénytípusai és paraméterezésük: • Triangle (a,b,c): általános háromszög • Trapezoid (a,b,c,d): trapéz • Isosceles (a,b): szimmetrikus háromszög a középponttal b szélességgel • Slope (a,b): szakaszonként lineáris S görbe a középponttal, b meredekséggel • Bell (a,b): haranggörbe a csúcsponttal, b szélességgel • Sigma (a,b): logisztikus görbe a inflexiós ponttal, b meredekséggel • Rectangle (a,b): éles intervallum • Singleton (a): éles érték I/O változó (I/O Variables) definíció: • Edit| New Input/Output Variable menükben újat kér, Variable properties ablak megjelenik: • Name: az I/O változó neve • Type: típusa, az előzetesen defináltak közül katt katt katt katt
A gyakorlat tartalma 28. Házi Feladat: összetett határidős ügyletek XFuzzy 3.0 fuzzy rendszer tervező shell • Telepítése • Rendszertervezés • Fuzzy rendszer szerkesztő • Operátorszerkesztő • Nyelvi változó típus szerkesztő • A fuzzy értékek lehetséges típusai • I/O nyelvi változók hozzáadása • Szabálybázis szerkesztő • Mátrixos definíció • Táblázatos definíció • Nyelvi definíció • A szabálybázis meghívása • Rendszerstruktúra szerkesztés • A megvalósítási csomag szerkesztése • A fuzzy rendszer verifikációja • 2D diagramm, 3D diagramm • Monitoring és szimuláció • A fuzzy rendszer szintézise • Felügyelt tanulás • Kódgeneráció Jav, C, C++ nyelveken 29. Házi Feladat: Vezérlési függvény tervezés Szakirodalom
katt katt Rendszertervezés 5 Szabálybázis szerkesztő (Rulebase Edition): Edit| New rulebase menüvel indul • Name: szabálybázis neve • Operatorset: operátorhalmaz kiválasztása • I/O variables + Ins billentyű: I/O változók • Name: változó neve • Type: típusa Mátrixos definíció (Matrix Form): • Csak 2 input, 1 output változó esetén működik • Cellákba értékcímkéket lehet csak beírni • Szabály súlyok nem szerkeszthetők vele Táblázatos definíció (Table Form): • Szabálysúly + változónkénti oszlopok • Csak == relációk változók és értékek közt • Lehetnek Don’t Care szabályok • Nem tud több szabályt 1 cellában kezelni katt katt katt katt Ins Ins katt katt katt katt
katt katt Rendszertervezés 6 Nyelvi definíció (Free Form): • [Factor]: szabálysúly, opcionális • IF: feltételi rész, építőelemei: • Klauzulák: • Variable: fuzzy nyelvi változó • Relációk: ==,<=,>=,<, >,!= -nem egyenlő • Fuzzy relációk: %=-slightly equal,~=-moreorless equal,+=-very equal • M.F.: (fuzzy)relációval kapcsolt fuzzy érték • Az érték nyelvi módosítói: +()-very, ~()-moreorless, %()-slightly • Klauzulákat kapcsoló fuzzy operátorok:()&()-És, ()|() -Vagy, !() -Nem • →: következmény rész, output érték (Conclusion): Variable=Label katt katt katt katt katt katt
katt Rendszertervezés 7 katt katt katt Szabálybázis meghívása (Available Rulebases): Edit| New rulebase call menüvel: • Szabálybázis kiválasztása: MyFirstRuleBase • Create gombra a szabálybázis megjelenik a rendszerstruktúra diagrammon Rendszerstruktúra (System Structure) szerkesztése: egérhúzással összekötögetni: • Az inputokat a szabálybázisok bemenő változóival • Szabálybázisközi intermedier változókat • Szabálybázist az output változóval A rendszermegvalósítási csomag szerkesztése (XFpkg): a package szerkesztő eszköz • Aktuális csomag kijelölése az Available Packages ablakban: XFL • Design| Edit Package menüvel megnyílik az XFpkg package szerkesztő.A package részei: • Name: package név • Unary/Binary functions: egy/kétváltozós operátotok • Membership functions: tagságfüggvények • Defuzzification: defuzzifikáció • A package elemeinek definíciója: • Name: elem neve, Alias: álneve(i) • Parameters: elem paraméterei • Java, C, C++: elem programkódjai • Derivative: elsőrendű parciális deriváltjának kódja Java-ban, szimulációhoz húz
A gyakorlat tartalma 28. Házi Feladat: összetett határidős ügyletek XFuzzy 3.0 fuzzy rendszer tervező shell • Telepítése • Rendszertervezés • Fuzzy rendszer szerkesztő • Operátorszerkesztő • Nyelvi változó típus szerkesztő • A fuzzy értékek lehetséges típusai • I/O nyelvi változók hozzáadása • Szabálybázis szerkesztő • Mátrixos definíció • Táblázatos definíció • Nyelvi definíció • A szabálybázis meghívása • Rendszerstruktúra szerkesztés • A megvalósítási csomag szerkesztése • A fuzzy rendszer verifikációja • 2D diagramm, 3D diagramm • Monitoring és szimuláció • A fuzzy rendszer szintézise • Felügyelt tanulás • Kódgeneráció Jav, C, C++ nyelveken 29. Házi Feladat: Vezérlési függvény tervezés Szakirodalom
katt katt A fuzzy rendszer verifikációja 1 katt katt 2D vezérlési függvény diagramm (XF2dplot): • Verification| 2D Plot menüvel indul • X, Y tengelyre változót lehet választani • Fixed value:más változók értékét rögzíti • X Axis: a tengely felbontásának állítása • Plot gomb: diagramm kirajzolása 3D vezérlési függvény diagramm (XF3dplot): • Verification| Surface 3D Plot indítja • X, Y, Z tengelyre változót lehet választani • Number of Samples: a diagramm felbontását lehet állítani • Két gördítősávval forgatni lehet Monitoring (XFmt): • Verification| Monitoring menüvel indul • Input values: változók kézi állítása • Szabálybázison kattint: szabályaktivá-ciós szintek, fuzzy eredményhalmaz • Output value: éles output érték katt katt katt katt katt katt katt katt katt katt katt katt katt
katt A fuzzy rendszer verifikációja 2 katt Szimulációval rendelkező rendszer megnyitása: • File| Load system| truck.xfl - egy kamion kormányvezérlése tolatás közben Szimulátor(XFsim):Verification|Simulationmenü • Plant model: a hozzátartozó szimulátor algoritmus (pl. TruckModel.java,) *.CLASS lefordítását (pl. TruckModel.class) nyitja meg • Load gomb: a szimuláció határértékeit (Simulation Limit), kezdőértékeit (Initial values), diagrammjait (Simulation output) tartalmazó *.CFG fájlt nyit meg (pl. truck.cfg), de ezek kézi szerkesztéssel felülbírálhatók • Run gomb: a szimuláció futtatása, diagram-mok, rendszerállapot (Plant State), éles output (Fuzzy System Out- Put) kijelzése • Save: eredmé- nyek fájlba mentése katt katt katt katt katt katt katt katt katt katt katt katt katt
katt A fuzzy rendszer szintézise 1 katt katt katt katt katt A fuzzy rendszer tanítása (XFsl): • Tuning| Supervised learning menü • Erről a funkcióról a Lesson33-ban lesz szó A fuzzy rendszer szintézise (XFj, XFc, XFcpp): Háromféle nyelvre tudja a rendszert lefordítani: • ANSI C • Synthesys| To C menü • MyFirstSystem.c kód-, és MyFirstSystem.hstruktúraleíró fájlpárt generál • void MyFirstSysemInferenceEngine(I1, I2, ... O1, O2,...) a következtetési függvény • C++ • Synthesys| To C++ menü • MyFirstSystem.cpp kód-, és MyFirstSystem.hppstruktúraleíró fájlpárt generál • xfuzzy.cpp kód-, és xfuzzy.hpp struktúraleíró fájlpárt generál • void MyFirstSysemInferenceEngine(I1, I2, ... *O1, *O2,...) a következtetési függvény • Java • Synthesys| To Java menü • MyFirstSystem.java, FuzzyInferenceEngine.java, MembershipFunction.java, FuzzySingleton.java fájlok generációja katt
29-1 Házi Feladat: Vezérlési függvény tervezés Hmm… és mondja még valaki, hogy a matek unalmas dolog! • Modellezze az alábbi 2 input (X és Y) és egy output (Z) változós vezérlési függvényt FuzzyTech-ben! A megoldáshoz mellékelje a 3D diagrammot, a nyelvi változó szerkesztőket képként és a matrix editor tartalmát szöveges fájlban!(5p) A megoldás: 29-1Megoldas.doc
Szakirodalom • Támogatás és műszaki tanácsadás e-mailben: xfuzzy-team@imse.cnm.es • XFuzzy3 Manual angolul: XFuzzy3Manual.pdf • XFuzzy3 Manual jegyzetei CANAL formátumban magyarul: XFuzzyManualNotes.doc