You are on page 1of 6

Universidad Andrés Bello

Facultad de Ingeniería
Ingeniería en Computación e Informática

Taller 3

Integrante: Luis Ancavil Pino


Ayudante: Francisca Osores

Introducción
En este taller se propone reducir los tiempos y costos de un problema en específico
en este caso un incendio. Este incendio puede darse en cualquier lugar de chile, el
objetivo es asignar a este incendio los recursos necesarios ya sea carros
dependiendo de la gravedad de este, como también la compañía más cercana con
el fin de que se controle de manera eficaz el incendio.

Desarrollo

En primer lugar se crean los distintos input creados en sus respectivos .csv
los archivos son tres:
● incendios.csv : En este archivo .csv se guardan el id del incendio, las
coordenadas del incendio, el grado del incendio y la región.
● carros.csv : En este archivo .csv se guardan el id carro, id compañía.
● compañías.csv : En este archivo .csv se guardan id de la compañía,
coordenadas de la compañía y la región de la compañía.

Todas las coordenadas utilizadas en este taller son reales y fueron sacadas de la
pagina http://app105874.giscloud.com/

El taller se realizó en python orientado a objetos y a continuación se explicaran en detalle


para uno de los métodos utilizados.

Lectura de archivos

Se crean tres métodos los cuales leerán cada unos de los archivos .csv y los guardan es una
lista (este método lee fila por fila y cuando ve una “,” el elemento anterior se guarda).

Ha
ver
sin
e (Camino más corto)

Este método llamado haversine lo que hace es calcular la distancia más corta entre cuatro
coordenadas estas coordenadas se las pasamos más adelante de un método llamado
calcular_
corto.
Guarda compañía más cercana al incendio

Esta método calcular_corto calcula la coordenada del incendio con todas las coordenadas
de las compañías para esto utiliza el método anteriormente mencionado haversine.
Luego de calcular todas las coordenadas estas se guardan en un diccionario para buscar la
ruta más corta ocupamos la función sorted que nos ordena los datos de menor a mayor,
finalmente para sacar la compañía más cercana tengo que acceder al primer elemento del
diccionario.

Verificación de intensidad del incendio

Este método lo que hace es ingresar al tercer elemento del archivo incendio.csv para
verificar que categoría es el incendio:
En caso de ser Bajo se le asignará un carro de la compañía más cercana.
En caso de ser Medio se le asignará cuatro carros de la compañía más cercana.
En caso de ser Alto se le asignará ocho carros de la compañía más cercana.

Una vez verificado el incendio se le asigna la cantidad de carros correspondiente a la


variable global “lista_final” en la cual se guardan todos los datos anteriores.

En la variable global “lista_final” se guardará el id del incendio, luego los carros asignados a
un incendio dependiendo de su categoría, y finalmente el id de la compañía más cercana al
incendio.
Escritura de datos

Finalmente una vez guardados todos los datos en la “lista_final” se procede a la escritura de
la lista_final en un archivo.csv llamado “final_exit” donde se encontrarán los datos
mencionados anteriormente.

Input: 9,-73,-45,alto,Aysen

Output final

Conclusión

En este taller logramos la eficiencia a la hora de que se nos presente un problema, como es
el claro ejemplo de un incendio en el cual se busca la compañía más cercana para así
poder evitar pérdida de vidas (llegar a tiempo) como también evitar costos (bencina).