Para depositar en Docta Complutense, identifícate con tu correo @ucm.es en el SSO institucional. Haz clic en el desplegable de INICIO DE SESIÓN situado en la parte superior derecha de la pantalla. Introduce tu correo electrónico y tu contraseña de la UCM y haz clic en el botón MI CUENTA UCM, no autenticación con contraseña.

Verificación de algoritmos de vuelta atrás en Dafny

dc.contributor.advisorSegura Díaz, Clara María
dc.contributor.advisorBlázquez Saborido, Jorge
dc.contributor.authorEl Kasouari Qessouri, Salma
dc.date.accessioned2025-09-11T15:46:07Z
dc.date.available2025-09-11T15:46:07Z
dc.date.issued2025
dc.degree.titleGrado en Ingeniería Informática
dc.descriptionFormal verification is a technique that allows us to demonstrate, through mathematical methods, that a program meets its specification (the expected behavior of the program). Unlike traditional testing, it is not based on specific test cases, but on logical reasoning that guarantees the correctness of the code in all possible cases. In this work, we will develop a methodology to specify and verify backtracking algorithms in Dafny. This methodology is applied to two representative examples of problems solved by this algorithmic method. In this work we have used Dafny tool, a programming language designed for formal specification and assisted program verification. We will present the essential elements of the methodology using the knapsack problem as an example. In this problem, the search space is structured as a binary tree, which translates into recursively invoking the algorithm at most twice (a fixed amount). Then we will extend the methodology to specify and verify problems in which the search space is structured as an n-ary tree, which involves a loop of recursive invocations where the number of iterations depends on one of the problem’s dimensions. Specifically, we will verify the assigning tasks to employees problem. We will complete the methodology by introducing optimal bounds to reduce the search space and we will provide several bounds in both application examples. Finally, we will present conclusions and possible lines for future work.
dc.description.abstractLa verificación formal es una técnica que permite demostrar, mediante métodos matemáticos, que un programa cumple su especificación (el comportamiento esperado del programa). A diferencia de las pruebas tradicionales, no se basa en casos de prueba concretos, sino en razonamientos lógicos que garantizan la corrección del código en todos los casos posibles. En este trabajo desarrollaremos una metodología para especificar y verificar en Dafny algoritmos de vuelta atrás. Dicha metodología se aplica a dos ejemplos representativos de los problemas resueltos mediante este método algorítmico. En este trabajo hemos usado la herramienta Dafny, un lenguaje de programación diseñado para la especificación formal y la verificación asistida de programas. Se presentarán los elementos esenciales de la metodología utilizando como ejemplo el problema de la mochila. En dicho problema el espacio de búsqueda está estructurado como un árbol binario, lo que se traduce en invocar recursivamente al propio algoritmo dos veces a lo sumo (una cantidad fija). A continuación, extenderemos la metodología para especificar y verificar problemas en los que el espacio de búsqueda está estructurado como un árbol n-ario, lo cual implica un bucle de invocaciones recursivas donde el número de iteraciones depende de una de las dimensiones del problema. Concretamente, verificaremos el problema de asignar tareas a funcionarios. Completaremos la metodología introduciendo podas de optimalidad para reducir el espacio de búsqueda y proporcionaremos varias podas en ambos ejemplos de aplicación. Finalmente, se proporcionarán conclusiones y posibles líneas del trabajo futuro.
dc.description.departmentDepto. de Sistemas Informáticos y Computación
dc.description.facultyFac. de Informática
dc.description.refereedTRUE
dc.description.statusunpub
dc.identifier.urihttps://hdl.handle.net/20.500.14352/123856
dc.language.isospa
dc.page.total94
dc.rightsAttribution-NonCommercial-NoDerivatives 4.0 Internationalen
dc.rights.accessRightsopen access
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/4.0/
dc.subject.cdu004(043.3)
dc.subject.keywordDafny
dc.subject.keywordVerificación
dc.subject.keywordVuelta atrás
dc.subject.keywordEspecificación
dc.subject.keywordPoda
dc.subject.keywordVerification
dc.subject.keywordBacktracking
dc.subject.keywordSpecification
dc.subject.keywordBound
dc.subject.ucmInformática (Informática)
dc.subject.unesco33 Ciencias Tecnológicas
dc.titleVerificación de algoritmos de vuelta atrás en Dafny
dc.titleVerification of backtracking algorithms in Dafny
dc.typebachelor thesis
dc.type.hasVersionAM
dspace.entity.typePublication
relation.isAdvisorOfPublicationb7547876-744e-4e9b-b551-c0dfab2a2d83
relation.isAdvisorOfPublication40fdafde-dd9f-46cd-bc68-4f51a2cb658c
relation.isAdvisorOfPublication.latestForDiscoveryb7547876-744e-4e9b-b551-c0dfab2a2d83

Download

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Verificacion_de_algoritmos.pdf
Size:
1.87 MB
Format:
Adobe Portable Document Format