Systeemsimulatie 2003 Titularis: Ghislain Vansteenkiste Medewerkers: Hans Vangheluwe Op de UGent pagina is te vinden dat er voor 10.0 euro een nederlandstalige syllabus te verkrijgen is. Dit is niet correct. Objectieven: Het aanleren van de generieke (tool en toepassing onafhankelijke) concepten modelbouw en simulatie van dynamische systemen. In het bijzonder worden verschillende formalismen voorgesteld alsook de gelijkenissen en verschillen tussen deze formalismes. Het belang van het modelbouwproces wordt benadrukt. Einddoel van de cursus is dat studenten in staat zijn modelbouw- en simulatiesoftware (tools) te bouwen (en vanzelfsprekend ook te gebruiken). Deze aanpak verschaft een dieper inzicht dan het gebruik van bestaande tools. Inzicht wordt verkregen door het verband te tonen tussen algemene modelbouw en simulatie principes en concepten (zoals hiërarchische decompositie, parallellisme, causaliteit, gelijktijdigheid, ...) en concrete formalisme-specifieke vormen hiervan. Ieder formalisme wordt geïntroduceerd aan de hand van concrete voorbeelden en naderhand formeel beschreven. Gedurende de oefeningen/projecten (het bouwen van modelbouw- en simulatie software prototypes met behulp van de scripting taal Python alsook bestaande simulatieomgevingen) wordt ervaring met gestructureerd, object-georiënteerd ontwerp opgedaan. Deze cursus is specifiek gericht op de noden van computerwetenschappers. Het gebruik van modelbouw en simulatie voor de analyse en het ontwerp van complexe hardware- en software-systemen wordt benadrukt. Inhoud 1. Modelbouw en simulatie methodologie: systemen en modellen; levenscyclus van een "virtueel produkt". De nood aan verschillende formalismen voor verschillende types problemen wordt duidelijk gemaakt. 2. Structuurcharacterisatie. Het automatisch bepalen van de structuur (in tegenstelling tot parameters) van modellen op basis van experimentele data. 3. Causale Blok Diagrammen (CBD). De concepten syntax en semantiek van modellen wordt voorgesteld aan de hand van CBDs (zoals gebruikt in Matlab/Simulink). Aan dezelfde (visuele blok diagram) syntax worden opeenvolgend data flow, discrete tijd en continue tijd betekenis gehecht. Time slicing wordt geintroduceerd. 4. Populatiedynamica en Forrester System Dynamics (met nadruk op software processen). Vermoedelijk niet in 2003. 5. Toestandsautomaten en Petri Netten. Petri Netten laten toe expliciet de interactie tussen concurrente processen te beschrijven. Niet enkel simulatie, maar ook analyse is mogelijk. De "reachability graph" wordt geintroduceerd. Petri Netten maken nu officieel deel uit van UML 2.0 (in Activity Diagrams) en worden gebruikt bij de specificatie en analyse van software. 6. Higraphs en Statecharts. Statecharts voegen hierarchie, communicatie en parallellisme toe aan toestandsautomaten. Ze vormen een uitvoerbare specificatie voor complex reactief gedrag van software. 7. Discrete Event World Views. Event Scheduling, Activity Scanning, Process Interaction. De simulatiealgoritmes worden in detail bestudeerd. 8. Process Interactie discrete event modelleren: GPSS, piDEMOS Process Interactie is het meest gebruikte hoge-niveau formalisme voor simulatie van productieprocessen. 9. Het modulaire en hierarchische formalisme DEVS als theoretische onderbouw voor discrete event modelleren en simuleren. 10. Object-georiënteerd modelleren van fysische systemen. Niet-causale modellen. De toepassing van object-orientatie (encapsulatie, overerving, klassen, ...) op fysische systemen en hun koppeling met software systemen. Onderwijsvorm Hoorcolleges en oefeningen (o.a. projectwerk). Evaluatievorm * Theorie: periodegebonden evaluatie (30%) * Oefeningen: permanente evaluatie van de oefeningen/projecten (70%) Ondervragingsvorm * Theorie: schriftelijk examen Een kort schriftelijk examen over de (theoretische) onderwerpen die niet in de oefeningen aan bod kwamen. * Oefeningen: schriftelijk Vijf oefeningen (mini-projecten) diepen de kennis van de verschillende formalismes grondig uit. 1. Het bouwen van een Causal Block Diagram simulator. 2. Het bouwen/gebruiken van een eenvoudige Petri Net simulator met "reachability" analyse. 3. Een Statechart model van een MP3 speler applicatie. Gegeven zijn een GUI API, een MP3/audio API en de Statechart Virtual Machine. 4. Modelbouw en simulatie van een verkeerssysteem met als doelstelling optimalisatie. Dit gebeurt in het modelaire, hierarchische DEVS formalisme. Simulatie gebeurt met behulp van de PythonDEVS tool. 5. Process Interaction modelbouw en simulatie. Er wordt gebruik gemaakt van de tool GPSS World (Minuteman Software). Referenties De onderbouw van modelbouw en simulatie Bernard P. Zeigler, Herbert Praehofer, and Tag Gon Kim. Theory of Modelling and Simulation: Integrating Discrete Event and Continuous Complex Dynamic Systems. Academic Press, second edition, 2000. Chapters 1 -- 9, 17, 18. Pseudo-random generatoren Averill M. Law and David W. Kelton. Simulation Modeling and Analysis. McGraw-Hill, 1991. Chapters 8, 9. Discrete event world views Osman Balci. The implementation of four conceptual frameworks for simulation modeling in high-level languages. In M. Abrams, P. Haigh, and J. Comfort, editors, Proceedings of the 1988 Winter Simulation Conference, pages 287--295. Society for Computer Simulation International (SCS), 1988. De process interactie taal GPSS: Geoffrey Gordon. System Simulation. Prentice Hall of India, second edition, 1996. Chapters 8 -- 10. Continue modelbouw, Forrester System Dynamics Francois E. Cellier. Continuous System Modeling. Springer-Verlag, New York, 1991. Chapters 1, 2, 5, 7, 10, 11, 15. Petri Netten Christos G. Cassandras. Discrete Event Systems. Irwin, 1993. Chapters 4, 5. Tadao Murata. Petri nets: Properties, analysis and applications. Proceedings of the IEEE, 77(4):541--580, April 1989. Statecharts en toepassingen in object-georienteerd ontwerp David Harel. On visual formalisms. Communications of the ACM, 31(5):514--530, May 1988. David Harel and Eran Gery. Executable object modeling with statecharts. IEEE Computer, pages 31--42, 1997. Object-georiented modelleren van fysische systemen Hilding Elmqvist et. al. Modelica -- a unified object-oriented language for physical systems modeling: Tutorial and rationale. The Modelica Design Group, December 1999. http://www.modelica.org/.