Publication:
Complejidad y resolución práctica de razonamientos espacio-temporales para criminología

Research Projects
Organizational Units
Journal Issue
Abstract
La criminología es una ciencia social que se centra en el estudio del fenómeno del crimen, con el objetivo de prevenir estas conductas y de detectar al culpable en caso de que ya hayan sucedido. Es un campo necesariamente ligado al avance de la tecnología, ya que por una parte los avances tecnológicos proporcionan más armas a los criminales, y por otro lado pueden ayudar a determinar quién es el autor de un delito, así como a evitar que sucedan crímenes futuros a partir del análisis de las conductas más frecuentes en ciertos tipos de actos delictivos. Estudios previos, como [1] o [2] han acercado este problema al mundo de la algoritmia y la computación, dando lugar a la emergente rama de investigación llamada criminología computacional, donde utilizando técnicas de topología computacional y machine learning se buscan patrones en distintos crímenes de la misma índole, prestando atención entre otras cosas a los movimientos de una serie de personas (criminales y no criminales) sobre un espacio a lo largo del tiempo, con el objetivo de prevenir esta clase de acontecimientos en el futuro. En este trabajo abordamos el tema de la criminología computacional desde un punto de vista más centrado en la resolución e identificación del autor de un crimen en concreto, aportando un modelo formal que permita realizar deducciones espacio-temporales, y reconstruir los hechos de una escena del crimen a partir de los testimonios de las distintas personas involucradas, donde intentaremos detectar algorítmicamente si alguno de los testigos está necesariamente mintiendo o si los testimonios de todos ellos son compatibles entre sí. Realizaremos un primer análisis del problema desde la perspectiva de la teoría de la complejidad computacional, comprobando que decidir si algún testigo miente o todos dicen la verdad se trata de un problema NP-completo, aunque veremos cómo imponiendo una serie de restricciones sobre la formulación del problema podemos obtener algoritmos polinómicos que lo resuelven. Además, estudiaremos detalladamente el problema de obtener una solución que verifique el máximo número de testimonios posible, que se trata de un problema NPO. Debido a la intratabilidad de algunos de estos problemas, es común estudiar algoritmos que proporcionen soluciones aproximadas en tiempo polinómico, dando lugar a la definición varias clases de problemas en función de la calidad de la aproximación obtenible. En concreto probamos que una variante de nuestro problema es AP X-dura. Finalmente, proponemos diversos algoritmos voraces para obtener soluciones aproximadas del problema, e implementamos también un algoritmo genético con el mismo objetivo, para terminar realizando un análisis comparativo sobre la calidad de las aproximaciones obtenidas por los distintos métodos.
Criminology is a social science that focuses on the study of the nature of crime, with the aim of preventing these conducts, and finding the offender in case they have already happened. It is a field inevitably linked to the technological evolution, since, on the one hand, technological advances provide criminals with more tools to commit a crime, and on the other hand, they can help to determine who the perpetrator of a crime is, as well as to prevent crimes from occurring in the first place. Previous studies, such as [1] or [2] have brought this problem closer to the world of algorithms and computation, giving rise to an emerging research area called computational criminology, where different techniques such as computational topology and machine learning are used to search for patterns in different crimes of the same nature, paying attention, among other things, to the locations of a series of people (both offenders and nonoffenders) over a given space and time, with the aim of preventing this kind of events in the future. In this work we approach the subject of computational criminology from a different point of view, more focused on the resolution and identification of the perpetrator of a particular crime, bringing a formal model that allows us to make spatiotemporal reasonings, and to reconstruct the events surrounding the crime scene, provided the testimonies of the different parties involved. We will study how to algorithmically detect if any of the witnesses is lying, or if all evidence is compatible among itself. We will perform a first analysis of the problema from the perspective of computational complexity theory, proving that deciding whether any witness is lying or all of them are telling the truth is an NP-complete problem, but we Will see however how imposing certain constraints on the problem allows us to obtain algorithms that solve it in polinomial time. Furthermore, we will study in detail the problem of obtaining a solution that verifies the maximum possible number of such testimonies, in order to obtain suboptimal solutions, which is an NPO problem. Due to the intractability of some of these problems, it is common to study algorithms that provide approximate solutions in polynomial time, giving rise to the definition of several classes of problems depending on the quality of the approximation achievable. In particular, we prove that a variant of our problem is APX -hard. Finally, we propose several greedy algorithms to obtain approximate solutions to the problem, and we also implement a genetic algorithm with the same objective, to later draw conclusions based on the comparison of the quality of the approximations obtained by the different methods.
Description
Trabajo de Fin de Doble Grado en Ingeniería Informática y Matemáticas, Facultad de Informática UCM, Departamento de Sistemas Informáticos y Computación, Curso 2021/2022. El trabajo está constituido por esta memoria junto con el código implementado, que puede encontrarse en https://github.com/victorchuu/TFG_informatica
Unesco subjects
Keywords
Citation