Foundations and Applications of Fuzzy Logic Programming with Weights and Similarity Relations (Slide Show)
Carlos Vázquez Pérez-Íñigo
Ginés Moreno Valverde


Logic is the science of reasoning, an integral part of all branches of knowledge that allows modelling a great deal of complex systems and addresses difficult problems in both science and industry. Since the revolutionary work of L. A. Zadeh in the sixties, a new kind of logic, called fuzzy logic, has emerged. Although in the field of computer engineering the use of fuzzy logic is relatively new, it became a very promising area with agile solutions and bridging the distance between the world of crisp boundaries of the world of machinery and the vague and imprecise reasoning of humans. With respect to fuzzy logic programming languages, there is no standard, but a constellation of languages that can be grouped into those focused on similarity relations --which exploit the fuzzy similarity between different elements-- and those with weighted rules --which modulate the truth of rules through a fuzzy degree.

Our goal in this Thesis is to widen the semantics of fuzzy logic programming to increment the class of problems it can cope with. To do so, we focus on MALP, a very flexible framework of fuzzy logic programming in the second group. It is characterised by the use of a large quantity of fuzzy connectives to link statements, the use of adjoint pairs to model modus ponens and its ability to cope with truth degrees beyond the usual [0,1] interval, more exactly, truth degrees belonging to any multi-adjoint lattice. We provide interesting results for this language, like the proof of the multi-adjointness of the Cartesian product of multi-adjoint lattices, the use of special lattices to carry information about the execution of goals regarding the computational cost or even a declarative trace of the goal. Furthermore, as one of the main aims of this Thesis, we have radically enhanced the expressiveness of MALP, first by dropping the necessity of the adjoint property --obtaining language X-MALP--, and finally by implementing the capabilities of BOUSI~PROLOG (a similarity-based language developed in our group). The result, FASILL, integrates the two main families of fuzzy logic programming languages mentioned above. Indeed, FASILL is able to cope with weighted rules as well as with similarity relations.

In order to test our results in MALP --and, afterwards, in FASILL--, since 2005 the FLOPER tool [MV14JSEA] has been under development in our group. Its last capabilities, implemented by the author of this Thesis, include the possibility of loading different lattices, the implementation of the interpretative phase, and a significant expansion of the language it is based on. Indeed, while FLOPER was designed to operate MALP programs, it is now able to cope with X-MALP and FASILL programs performing similarity unification. Finally, an online version of FLOPER has been provided in the link http://dectau.uclm.es/floper/?q=sim/test, where the user can test the tool with no need to installing any software.

During the development of this Thesis we had the opportunity to apply the above mentioned tools to some real-life problems in both fundamental and applied research. The first one was related to fuzzyXPath, a fuzzy version of the well known language XPath documents that was developed in MALP. The goal consisted in analysing large execution trees --directly provided as XML documents by FLOPER-- to explore derivation trees and obtain information such as infinite branches, solutions of the goals, unreachable code, etc. We have also addressed the field of SMT (Satisfiability Modulo Theory) by defining a method to use MALP and FLOPER to emulate an SMT tool. And last, but not least, we have provided a fuzzy solution to a Cloud admission control problem. In particular, our system performed overbooking of tasks in a safe way by pondering the risks of any decision. As a result, it highly increases resource utilization with very little overpass of capacity.

To conclude, the work developed in this Thesis has been shared with the research community through twenty publications --ten of which are indexed in DBLP--, including international journals and conferences.