IvoVondrak
professorMathematical Modeling and Simulation
It is said that modeling and simulation are the art of science, and it is. I have found incredible enjoyment, and continue to do so, in constructing mathematical models of real-world problems and conducting simulation experiments using computers. My dissertation focused on this very topic, dealing with mathematical modeling of vertical transport in deep mines, where practical problems demonstrated the importance of this principle, as a traditional experiment is often hard to realize under real conditions. Over time, I've built models of more and more dynamic systems, including the use of the Monte Carlo method. However, it became apparent that mathematics couldn't describe everything, and Artificial Intelligence became part of my system as a tool for utilizing knowledge that can replace the missing mathematical description.
In any case, if you want to see what such code for system simulation looks like, I offer it here: Continuous, Event-driven, and Monte Carlo simulation.
Artificial Intelligence
I began delving into this topic in 1988, seeking ways to describe expert knowledge and make it accessible to the average user. The first systems I created were based on the principles of generating knowledge using rules that utilized the theory of fuzzy sets, with Prolog becoming the key language for developing such systems. However, one of the systems I developed later used Java and was called Merl1n.
In the early '90s, a new principle began to gain ground: Artificial Neural Networks, which could do something that changed the world of computing. They learned from examples and could come even closer to what happens in the minds of living beings. During my stay in Austria, I wrote my first expert system based on neural networks called Neurex, which I have now adapted to the Apple platform, so you can experience what artificial neural networks are capable of.
There is another option, if you want to see working code for Perceptron or Multilayered Uncertainties processing neural nets, just click on these links.
Process Modelling
Another phenomenon emerged in the '90s: Process Modeling. Business processes became the foundation of successful enterprise, and I had the opportunity to work on this topic in the research labs of Texas Instruments in Dallas. Initially sponsored by the defense ministry, these concepts gradually made their way into everyday life. Thus, upon my return from the USA, I started working on my system, which could not only specify processes using modified Petri Nets but also test designed processes through simulation, and subsequently launch and manage all the actors of the processes: BPStudio.
You can check out the code for the process modelling using Petri Nets here.
Software Engineering
Everything I've mentioned is closely related, all requiring mathematical models, all about describing real life in a computer environment, but importantly, you must be able to design and implement these complex systems. This led me to the topic of software engineering and development tools. It started with Fortran, Pascal, and the C language. Prolog was an amazing declarative language, but the revolution came with object-oriented programming: C++, Smalltalk, and then Java. We were the first university in Czech Republic to start teaching Java technologies, and we continue to do so today. This also necessitated the use of languages for software specification like UML. Today, in addition to Java mentioned earlier, I also use development environments like Python, JavaScript, and of course, Swift for Apple.
Writing software is an incredible adventure, but you must know what you want to write and how to write it. The result is then a great joy.