LOS LABERINTOS DE PYTHON

Slides:



Advertisements
Presentaciones similares
Programa de Análisis Numérico
Advertisements

¿Por que estudiar búsquedas?
CTE.C 1. ¿Qué es CAD2FIDE ? Es una herramienta que se instala dentro de AUTOCAD que permite convertir un proyecto o anteproyecto de un edificio de viviendas.
Ciclo de Programación y Aplicaciones
Formas fáciles de creación. Muchos textos económicos contienen gráficos y, sobre todo, ecuaciones. Probablemente, si debemos traducir alguno, nos será
Un lenguaje de programación orientado a objetos Profa. Graciela Prado Becerra Septiembre 2012 Avance automático ----Interpreta: Graciela Prado.
Nuestro reto es educar al pensamiento, para que razone de acuerdo a ciertas reglas; con ello podremos ser más eficientes al momento en que ordenamos.
CREACION DE ESPACIOS VIRTUALES PARA TRABAJO EN EQUIPO
LENGUAJES DE PROGRAMACIÓN
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Ing. Esp. Ricardo Cujar. El computador: es una máquina que permite hacer tareas aritmético y lógicas de una manera fácil, consta de software y hardware.
INSTITUTO TECNOLOGICO DE MINATITLAN
Introducción a la Programación
L.S.C. Sujey Anahí Díaz Herrera
Programación (Estructura de Datos)
Técnicas de Capacitación
Modelos de Programación Entera - Heurísticas
Problemes de Viatjants
Tecnologías para el desarrollo de aplicaciones Web
Proceso de información en la computadora
Visualizador de señales digitales SDLC++ José Domingo Álvarez Hervás.
Prueba de concepto Entrega de respuestas a sus preguntas de implementación de Windows® 7 y Microsoft® Office 2010 Prueba de concepto Entrega de respuestas.
DISEÑO DE SOFTWARE 1ª. Parte
Ingenieria de software
BASE DE DATOS BY: Julián Villar Vázquez.
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
Diseño y análisis de algoritmos
LENGUAJES DE PROGRAMACIÓN 8.3 PRINCIPALES LENGUAJES.
MICROSOFT EXCEL VERSION 2007 Presentado por : Yovany Arrocha 9:19 a.m.
ConceptoDefiniciónCaracterísticas (palabra clave) Ejemplo/Aplicación Sistema operativo Es el software que permite al usuario interactuar con la computadora.
UNIDAD 2. ALGORITMOS Y ESTRUCTURAS DE DATOS.
Un lenguaje de programación orientado a objetos Maestra Graciela Prado B. Octubre 2013.
SISTEMA DE EXPERTO SISTEMA DE EXPERTO.
Juego de Jarras con Agua!!!
LENGUAJES DE PROGRAMACIÓN
CONCEPTOS BÁSICOS FUNDACIÓN UNIVERSITARIA LOS LIBERTADORES Fredys Alberto Simanca Herrera Programación Estructurada Semana Bogotá, D.C
Metodología para solución de problemas
Programación 1 (01y 05) Prof. Flor Narciso
FUNDAMENTOS DE PROGRAMACION
Lenguajes de programación. Lenguaje máquina El ordenador sólo sabe hacer un número limitado de tareas (muy pocas) definidas electrónicamente en su procesador.
Parte I. Estructuras de Datos.
Capítulo 6. ANÁLISIS DE ALGORITMOS
MATLAB Adriana Ruiz Martínez. Mario Cesar Taracena Contreras.
COMPUTO III Ing. Jimmy Ojeda Arnica.
HISTORIA DE LOS SITEMAS OPERATIVOS
TEMA: DESARROLLO DE UN SISTEMA INFORMÁTICO PARA EL CONTROL DE USO Y EL MANTENIMIENTO DE VEHÍCULOS DE UNA INSTITUCIÓN PÚBLICA AUTOR: EDISON GUAMAN   DIRECTOR:
Objetivo Mostrar los fundamentos de la programación a través de ejemplos y prácticas utilizadas cotidianamente en el desarrollo de aplicaciones.
Sistema de Información Geográfica
COMPUTO III Ing. Jimmy Ojeda Arnica. METODOLOGIA DEL CURSO Objetivos del curso : Comprender el entorno de los lenguajes visuales. Comprender el entorno.
Metodología de la programación
COMPLETA LOS ESPACIOS CON LA PALABRA ADECUADA 1.LOS _______________________ SE DEFINEN COMO LA _________________LÓGICA DE _________PARA SOLUCIONAR UN.
Elaboración de algoritmos usando lógica de programación
Diagrama de Flujo Diagrama de flujo sencillo con los pasos a seguir si una lámpara no funciona. El diagrama de flujo o diagrama de actividades es la representación.
Desarrollo de lógica algorítmica.
Recursos disponibles para localizar, evaluar y recopilar información Sharon Otero Edwin Custodio María Pagan María PaganUMET 11 de diciembre de 2012.
Macromedia Dreamweaver es un editor profesional de páginas Web. Permite crear sitios tanto escribiendo directamente el código en HTML, como diseñando de.
La computadora. La computadora es una máquina electrónicamente programable capaz de capturar, procesar, almacenar y emitir información de manera rápida.
FUNDAMENTOS DE PROGRAMACIÓN
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
LA TECNOLOGÍA Y LA RESOLUCIÓN DE PROBLEMAS
(totalmente inventado)
Harware Software Yuneidy moreno 7-2 Tecnología i. E. devora Arango.
ANTIVIRUS CLOUD COMPUTING. Los antivirus cloud o antivirus en la nube, son antivirus que aplican a los antivirus el concepto cloud computing. Instalan.
La tecnología debe ser es una herramienta utilizada por las empresas para mejorar y solucionar problemas, obteniendo información precisa en el momento.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Tipos de Software ¿Qué es software? Se conoce como software al equipamiento lógico o soporte lógico de un sistema informático, comprende el conjunto.
Conalep 150 Tehuacán inmi 309 soma
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
TEMA 7 ANÁLISIS DE LOS RESULTADOS TEMA 7 ANÁLISIS DE LOS RESULTADOS.
ALGORITMOS Y PROGRAMAS. OBJETIVOS  Resolver problemas mediante la especificación algorítmica.  Proporcionar los procedimientos y técnicas para el desarrollo.
Transcripción de la presentación:

LOS LABERINTOS DE PYTHON

LOS LABERINTOS DE PYTHON PROBLEMA: Partiendo de una planta de un edificio pintada en AutoCAD/nanoCAD, obtener la distancia mínima desde cada punto ocupable hasta unos puntos fijos definidos por el usuario. RAZONES: Es un problema que tenía que resolver de forma manual y es susceptible de cometer errores. Para plantas de edificios grandes se necesita mucho tiempo haciéndolo manual. Si hay modificaciones en la planta, tienes que volver a comenzar el proceso manual. No existe ningún otro programa ni gratuito ni comercial que solucione el problema.

LOS LABERINTOS DE PYTHON PyKALK PyPATH: Trazado de rutas óptimas en el interior de edificios Utiliza: Algoritmo A Star ó A* para resolver ruta en geometría de manhattan Algoritmo propio “Euclidean Shortest” para geometría euclidiana Cython para acelerar ejecución de algunas partes del código PyQt para crear un GUI para la aplicación PyWin32 para comunicar Python y AutoCAD/nanoCAD mediante COM IPython Notebook para análisis del código Cython

LOS LABERINTOS DE PYTHON ALGORITMO A STAR Elementos de Python utilizados: Set de tuplas para representar el laberinto y conjuntos de puntos visitados y sin visitar. Diccionarios para guardar el valor de la función heurística para cada punto. Módulo heapq para obtener resultados ordenados. Bread First Search A* Manhattan A* Euclidean A* 4 x Manhattan

LOS LABERINTOS DE PYTHON ALGORITMO A STAR Diversas fuentes en internet disponen de versiones de Python para este algoritmo. Uso una versión muy simple sin programación orientada a objetos. Código Python 2.7. Es lo que me sabía. El problema a resolver tiene un comportamiento “casi O(N²)”, por lo que rápidamente queda patente la falta de eficiencia del código CPython. Pruebo a optimizar el código utilizando numba y PyPy , pero sin conseguir resultados suficientemente buenos. La respuesta de optimización: Cython. Al final 800 veces más rápido.

LOS LABERINTOS DE PYTHON Cython + IPython Notebook Optimizar el código Cython requiere pocas diferencias con CPython. Si tienes conocimientos de C, resulta muy fácil. Se puede utilizar IPython Notebook para optimizar Cython (VER EJEMPLO). Para generar informe html: C:\prueba_cython>cython -a ESPc6.pyx Para compilar (en Windows genera un pyd): C:\prueba_cython>setup.py build_ext

LOS LABERINTOS DE PYTHON PyQt PyQt es un binding de la biblioteca gráfica Qt para el lenguaje de programación Python. Existen varias formas de hacer entornos gráficos con Python: Tkinter (el estándar de Python), wxPython, kivy, PySide (casi igual a PyQt pero LGPL), etc. Resulta fácil programar PyQt utilizando Qt Designer.

LOS LABERINTOS DE PYTHON PyWin32 Módulo externo a Python que nos permite interactuar con el sistema operativo Windows. Utilizando COM podemos comunicar Python con varios programas utilizados en ingeniería: AutoCAD, nanoCAD, Presto, Excel, Revit, Lotus Notes. Inconvenientes: falta de eficiencia, complicado intercambio de datos de algunos tipos. Ventaja: la utilización de Python para comunicar programas diversos, puede dar lugar a flujos de trabajo muy eficientes.

LOS LABERINTOS DE PYTHON La herramienta Extrae el laberinto de un dibujo en AutoCAD con una precisión definida. Funciona con AutoCAD y nanoCAD Permite utilizar dos algoritmos de cálculo de distancias: A* y Euclidean Shortest (cosecha propia). Dibujar una ruta concreta, dibujar resultados en CAD. Dispone de una ayuda suficiente para operar con esta simple herramienta.

LOS LABERINTOS DE PYTHON MUCHAS GRACIAS