SMILE Engine

<< Click to Display Table of Contents >>

Navigation:  Introduction >

SMILE Engine

SMILE (Structural Modeling, Inference, and Learning Engine) is a fully platform independent library of functions implementing graphical probabilistic and decision-theoretic models, such as Bayesian networks, influence diagrams, and structural equation models. Its individual functions, defined in SMILE Applications Programmer Interface (API), allow to create, edit, save, and load graphical models, and use them for probabilistic reasoning and decision making under uncertainty.

SMILE is implemented in C++ in a platform independent fashion. We also provide Java (jSMILE), .NET (SMILE.NET), .COM (SMILE.COM), Python (PySMILE) and R (rSMILE) wrappers for users who want to use SMILE with languages other than C++. Through the Java wrapper, SMILE can be used in programming environments such as Matlab or Ruby. Through the .NET wrapper, it can be used, among others, from C# and VB.NET. SMILE is equipped with an outer shell, a developer's environment for building graphical decision models, known as GeNIe, or a qualitative graphical user interface, known as QGeNIe. GeNIe and QGeNIe are platform dependent and run only on Windows computers, although our users have successfully run them under MacOS and Linux operating systems. SMILE can be embedded in programs that use graphical probabilistic models as their reasoning engines. Such programs can be distributed to end users or placed on servers for cloud use. Models developed in SMILE can be equipped with a user interface that suits the user of the resulting application most.

QGeNIe, GeNIe and SMILE have been originally developed to be major teaching and research tools in academic environments and have been used at hundreds of universities world-wide. Most research conducted at the Decision Systems Laboratory, University of Pittsburgh, found its way into QGeNIe, GeNIe and SMILE. Because of their versatility and reliability, QGeNIe, GeNIe and SMILE have become incredibly popular and became de facto standards in academia, while being embraced by many government, military and commercial users.

The strongest element of SMILE, one that distinguishes it from a large number of other graphical modeling tools, is its ease of use from a programmer's perspective (it offers a modern object-oriented API), availability for multiple platforms, its reliability (it has been tested heavily in practical research and commercial applications since 1998), and speed (it has done very nicely in speed competitions organized by UAI, the annual Conference on Uncertainty in Artificial Intelligence). Speed especially is crucial, as most calculations in probabilistic graphical models are exponential in nature.