Riassunto analitico
Complex, hierarchical, multiscale industrial and natural systems generate increasingly large mathematical models. Practitioners are usually able to formulate such models in their "natural" form; however, solving them often requires finding an appropriate reformulation to reveal structures in the model which make it possible to apply efficient, specialized approaches. The search for the "best" formulation of a given problem, the one which allows the application of the solution algorithm that best exploits the available computational resources, is currently a painstaking process which requires considerable work by highly skilled personnel. Experts in solution algorithms are required for figuring out which (formulation, algorithm) pair is better used, considering issues like the appropriate selection of the several obscure algorithmic parameters that each solution methods has. This process is only going to get more complex, as current trends in computer technology dictate the necessity to develop complex parallel approaches capable of harnessing the power of thousands of processing units, thereby adding another layer of complexity in the form of the choice of the appropriate (parallel) architecture. All this renders the use of mathematical models exceedingly costly and difficult for many potentially fruitful applications. The \name{} environment, proposed in this Thesis, aims at devising a software system for automatizing the search for the best combination of (re)formulation, solution algorithm and its parameters (comprised the computational architecture), until now a firm domain of human intervention, to help practitioners bridging the gap between mathematical models cast in their natural form and existing solver systems. IDARE deals with deep and challenging issues, both from the theoretical and from an implementative viewpoint: 1) the development of a language that can be effectively used to formulate largescale structured mathematical models and the reformulation rules that allow to transform a formulation into a different one; 2) a core subsystem capable of automatically reformulating the models and searching in the space of (formulations, algorithms, configurations) able to "the best" formulation of a given problem; 3) the design of a general interface for numerical solvers that is capable of accommodate and exploit structure information. To achieve these goals IDARE will propose a sound and articulated integration of different programming paradigms and techniques like, classic ObjectOriented programing and Artificial Intelligence (Declarative Programming, FrameLogic, HigherOrder Logic, Machine Learning). By tackling these challenges, IDARE may have profound, lasting and disruptive effects on many facets of the development and deployment of mathematical models and the corresponding solution algorithms.
