Publication:
Inference of Upper-Bounds on the Expected Cost of Probabilistic Programs

Loading...
Thumbnail Image
Official URL
Full text at PDC
Publication Date
2019
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citations
Google Scholar
Research Projects
Organizational Units
Journal Issue
Abstract
Resource usage analysis (a.k.a. cost analysis) aims at statically determining the number of resources required to safely execute a given program. A resource can be any quantitative aspect of the program or its environment, such as memory consumption, execution steps, energy, etc. Over the past decade several cost analysis frameworks, for different programming languages, have been developed and they can infer precise closed-form upper-bound (resp. lower-bound) functions on the worst-case (resp. bestcase) cost. However, some algorithms and problems involve probabilistic choices for which these notions of cost are not adequate. A well-known example is that of randomized algorithms, where randomized decisions are used to make the solving of computationally hard problems efficient. Besides, some problems can be precisely described only using probabilities. For example, estimating the number of attempts needed to transmit n packets of data over the network, knowing that transmission might fail with probability p. The adequate notion of cost for such scenarios is the expected cost which is, roughly, the sum of multiplying the cost of each possible trace by the probability that such a trace is produced. The goal of this work is to develop techniques for automatically inferring the expected cost of imperative probabilistic programs, using cost relations which are a formalism that generalizes classical recurrence equations and allows modeling the cost of complex programs. For this, we extend the definition of cost relations to model the expected cost, describe how to translate probabilistic programs into cost relations; and develop techniques for solving these cost relations into closed-form bounds on the expected cost. We also report on a corresponding implementation.
El análisis de consumo de recursos (en adelante, análisis de coste) busca determinar estáticamente los recursos necesarios para ejecutar un programa de forma segura. Un recurso es cualquier aspecto cuantitativo del programa, como el consumo de memoria o el número de pasos en una ejecución. Durante la última década se han desarrollado análisis de coste en diversos lenguajes de programación capaces de inferir funciones precisas que acotan superiormente (resp. inferiormente) el consumo en el caso peor (resp. mejor). Sin embargo, hay veces en que tenemos elecciones probabilistas que invalidan el uso de estos conceptos. Por ejemplo, en los algoritmos probabilistas las elecciones aleatorias permiten resolver más eficientemente problemas computacionales complejos. Además, hay problemas que sólo se pueden describir de manera precisa mediante probabilidades. Por ejemplo, la estimación del número de intentos necesarios para transmitir n paquetes de datos en una red con probabilidad de fallo p. La noción adecuada de coste para estos casos es el coste esperado, que se define como la suma ponderada del coste de cada posible traza con respecto a su probabilidad. El objetivo de este trabajo es desarrollar técnicas de inferencia automática del coste esperado de programas probabilistas mediante el uso de relaciones de coste, una generalización de las relaciones de recurrencia clásicas, para modelar los programas. En particular, extenderemos las relaciones de coste para modelar el coste esperado, describiremos cómo traducir los problemas probabilistas a estas relaciones de coste y describiremos cómo resolver estas relaciones de coste para obtener funciones que acoten superiormente el coste esperado. Por último, remarcaremos la correspondiente implementación del trabajo desarrollado.
Description
Trabajo de Fin de Máster, Universidad Complutense, Facultad de Informática, Departamento de Sistemas Informáticos y Computación, Curso 2018/2019
Unesco subjects
Keywords
Citation