bots y sistemas expertos PDF

Title bots y sistemas expertos
Course Inteligencia Computacional
Institution Universidad Pedagógica y Tecnológica de Colombia
Pages 17
File Size 992.5 KB
File Type PDF
Total Downloads 10
Total Views 158

Summary

Download bots y sistemas expertos PDF


Description

TALLER No 4 BOTS Y SISTEMAS EXPERTOS

ANGIE VIVIANA GALINDO SUAREZ DUBAN ESTIVEN GARCIA RAMOS

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE INGENIERÍA INGENIERÍA EN SISTEMAS Y COMPUTACIÓN 2019 TUNJA

Taller No 4 BOTS Y SISTEMAS EXPERTOS

ANGIE VIVIANA GALINDO SUAREZ DUBAN ESTIVEN GARCIA RAMOS

Presentado a: Ing. Alex Puertas

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE INGENIERÍA INGENIERÍA EN SISTEMAS Y COMPUTACIÓN 2019 TUNJA 1

CONTENIDO DESARROLLO DE UN BOT PIL Time PyautoGUI Numpy

2 2 2 2 3

CONCEPTOS PREVIOS ROBOT BOT SISTEMAS EXPERTOS HITBOX O CAJA DE GOLPE

3 3 4 4 5

IMPLEMENTANDO UN BOT Dino 1 Dino 2.1 Dino 2.2 Dino 3

6 6 8 11 12

CONCLUSIONES

15

REFERENCIAS

16

2

1.DESARROLLO DE UN BOT PIL Python Imaging Library (PIL) es una librería gratuita que permite la edición de imágenes directamente desde Python. Soporta una variedad de formatos, incluídos los más utilizados como GIF, JPEG y PNG. Una gran parte del código está escrito en C, por cuestiones de rendimiento. Debido a que la librería soporta únicamente hasta la versión 2.7 de Python y, al parecer, no pretende avanzar con el desarrollo, Alex Clark y en colaboración con otros programadores ha desarrollado Pillow, una bifurcación más “amigable”, según el autor, de PIL que pretende mantener una librería estable y que se adapte a las nuevas tecnologías (Python 3.x). Por esta razón, recomiendo siempre preferir Pillow en lugar de PIL. De todas maneras, independientemente de la librería que se desee utilizar, su implementación para los usuarios se mantiene casi idéntica. Time TIME es un módulo de tiempo popular disponible en Python que proporciona funciones para trabajar con tiempos y para convertir entre representaciones. Durante la implementación de el bot se usó el método time.sleep (secs) Suspende el hilo de llamada por segundos. PyautoGUI El propósito de PyAutoGUI es proporcionar un módulo Python multiplataforma para la automatización de GUI para seres humanos. La API está diseñada para ser lo más simple posible con valores predeterminados razonables. Pyautogui es un módulo usado para controlar el mouse y el teclado. Este módulo se usa básicamente para automatizar el clic del mouse y las tareas de pulsación del teclado. Para el mouse, las coordenadas de la pantalla (0,0) comienzan desde la esquina superior izquierda. Si está fuera de control, mueva rápidamente el cursor del mouse hacia la parte superior izquierda, tomará el control del mouse y el teclado del Python y se lo devolverá.

3

Numpy Uno de los módulos más importantes de Python es Numpy. El origen de Numpy se debe principalmente al diseñador de software Jim Hugunin quien diseñó el módulo Numeric para dotar a Python de capacidades de cálculo similares a las de otros softwares como MATLAB. Posteriormente, mejoró Numeric incorporando nuevas funcionalidades naciendo lo que hoy conocemos como Numpy. Numpy es el encargado de añadir toda la capacidad matemática y vectorial a Python haciendo posible operar con cualquier dato numérico o array (posteriormente veremos qué es un array). Incorpora operaciones tan básicas como la suma o la multiplicación u otras mucho más complejas como la transformada de Fourier o el álgebra lineal. Además incorpora herramientas que nos permiten incorporar código fuente de otros lenguajes de programación como C/C++ o Fortran lo que incrementa notablemente su compatibilidad e implementación. Para poder utilizar este módulo sino hemos instalado python(x,y) lo primero que debemos de hacer es descargarnos la última versión desde el sitio oficial http://www.scipy.org/Download. En caso de que nuestro sistema operativo sea Linux probablemente venga instalado dentro de Python. De no ser así debemos instalarlo por el método habitual. Para más información y otros sistemas operativos consultar las notas oficiales de instalación. Para cargar el módulo en Python y poder llamarlo de forma más cómoda es de uso extendido la utilización del alias np. 2.CONCEPTOS PREVIOS ROBOT Un robot es una máquina programable que puede manipular objetos y realizar operaciones que antes sólo podían realizar los seres humanos. El robot puede ser tanto un mecanismo electromecánico físico como un sistema virtual de software. Ambos coinciden en brindar la sensación de contar con capacidad de pensamiento o resolución, aunque en realidad se limitan a ejecutar órdenes dictadas por las personas. Los robots, en la actualidad, se utilizan en el ámbito industrial (para montar piezas de diversos mecanismos, desplazar grandes pesos y otras tareas), en 4

la medicina (para operar en lugares de difícil acceso) y en el campo militar (para reducir las bajas humanas), entre otros sectores. Entre los robots más importantes que han ido surgiendo en los últimos años tendríamos que destacar, por ejemplo, a Riba II, que viene a ejercer como enfermero ya que es de gran utilidad para ayudar a las personas que no pueden por sí mismas levantarse de la cama. Aquel tiene una estructura contundente y fuerte que permite que pueda sacar de la cama a dichos enfermos. De la misma forma, tampoco podemos obviar la existencia de ATLAS. Este es un robot humanoide creado por el Pentágono de Estados Unidos que tiene como función el ejercer un papel fundamental en las situaciones de emergencia. Y es que tiene la capacidad para poder realizar funciones que son muy peligrosas, además de excesivamente complicadas, para el ser humano. BOT Un bot es un software o programa informático preparado para realizar tareas repetitivas a través de Internet como si de un humano se tratase, es decir, con cierta inteligencia. Por ejemplo: alguna vez habrás usado un sistema de reconocimiento de voz. Este sistema es capaz de llevar a cabo la acción que deseas: buscar un restaurante, poner una canción, etc. El programa o programas encargados de realizar estas tareas son los llamados bots. En internet se pueden encontrar numerosos tipos de bots con diversos propósitos. Por ello, se debe tener cuidado: no todos los bot son para ayudar, algunos son maliciosos. SISTEMAS EXPERTOS Sistemas expertos (ES, siglas del término Expert System) es un sistema de información basado en el conocimiento que usa su conocimiento de un área de aplicación compleja y específica a fin de actuar como un consultor experto para los usuarios finales. Los sistemas expertos proporcionan respuestas sobre un área problemática muy específica al hacer inferencias semejantes a

5

las humanas sobre los conocimientos conocimientos especializados.

obtenidos en una base de

Los sistemas expertos utilizados en inteligencia artificial son software que emula el comportamiento de un experto humano en la solución de un problema. Los sistemas expertos funcionan de manera que almacenan conocimientos concretos para un campo determinado y solucionan los problemas, utilizando esos conocimientos, mediante deducción lógica de conclusiones. Con ellos se busca una mejora en calidad y rapidez de respuestas dando así lugar a una mejora de la productividad del experto. Los sistemas expertos pueden estar basados en reglas, es decir, disponen de unos conocimientos predefinidos que se utilizan para tomar todas las decisiones (aplicando heurística), o basados en casos (CBR, Case Based Reasoning), aplicando el razonamiento basado en casos, donde la solución a un problema similar planteado con anterioridad se adapta a un nuevo problema. HITBOX O CAJA DE GOLPE En inteligencia computacional, en entornos de desarrollo de videojuegos y en sistemas de desarrollo autónomo, se le conoce como hitbox al conjunto de rectángulos(2D) o figuras cubos(3D) que se implementan en un escenario en tiempo real. Usados generalmente para la colisión de estructuras o para el seguimiento de objetos visibles para un usuario. En la mayoría de casos, un grupo de hitbox define la forma aproximada de un modelo para propósitos de detección de colisión o detección de daño. Un modelo típico dentro de un juego es demasiado alto para realizar cálculos de aciertos en tiempo real, por lo que en su lugar se utilizan los hitboxes. Dentro de las diversas funciones que cumplen los hitboxes en entornos virtuales, se destaca la facilidad en la implementación de la detección de colisiones. Existen dos tipos de colisiones, las cuales son las colisiones por área, donde se hace implementación de cuerpos rectangulares o circulares que representan objetos, si dos áreas tienen “superposición”, existe una colisión. Y también existe la colisión por pixeles, en donde los objetos ocupan un área rectangular, pero tienen una máscara que define qué píxeles son visibles. Primero se realiza una detección de colisión de área, luego, si hubo colisión, se realiza una detección píxel a píxel entre los píxeles superpuestos de ambos 6

objetos. Si existen dos píxeles superpuestos, y ambos son visibles, entonces hay una colisión. 3.IMPLEMENTANDO UN BOT Dino 1 Lo primero que se tiene que hacer es identificar las coordenadas donde se encuentra el botón de reinicio del programa , esto se hizo con ayuda de la herramienta Paint.

En la implementación de Dino 1 se inicia el juego y se salta una vez.

7

Al compilar el programa se presentó un error en la sintaxis

El error se da en el método restartGame

8

Debido a que Coordinates.replayBtn lo reconoce como un String y debe ser una coordenada con enteros. Para solucionar este problema se paso por parámetro las coordenadas directamente en el método.

Para hacer que este programa funcione se debe tener abierta la ventana del navegador donde se encuentra el juego(h  ttp://www.trex-game.skipser.com) y la ventana del Spyder. Dino 2.1 La primera parte de la implementacion del codigo de Dino 2 es muy similar a la de Dino uno, la diferencia está en que se agregan algunas librerías que se utilizan después

9

Antes de ver la segunda parte de esta implementación hay que tener en cuenta que hay que crear una caja de golpeo a partir de las coordenadas del dinosaurio, esta permitirá saber si el dinosaurio se encuentra con un obstáculo en frente esta caja la creamos teniendo en cuenta los cactus y los pterodáctilos que se muestran a medida que avanza el juego.

Para la implementación de Dino 2 se creó la caja de golpeo anterior con las coordenadas anteriores para encontrar el obstáculo en frente.

Como se muestra en la implementacion del codigo las coordenadas de la caja de golpeo se calculan a partir de las coordenadas del dinosaurio teniendo en 10

cuenta que si se salta con anterioridad el dinosaurio avanzará con más facilidad.

De la misma manera que para dino 1 es necesario mantener la ventana del navegador con el juego y la ventana del Spyder abiertas una al lado de la otra para la correcta ejecución del programa. Dino 2.2 Para esta mejora solo se calcularon los pixeles a una distancia de 100 para que tratara de saltar lo más anticipado posible, para que al aumentar la velocidad no se chocara tan rápido con los obstáculos

11

Puntaje alcanzado con dino 2 mejorado solo cambiando los valores de la caja de golpeo y se quitaron todos los sleep. El mayor puntaje obtenido fue 1609.

Dino 3 Para la implementación de Dino 3 se tiene en cuenta la nueva referencia de la posición del dinosaurio ya que ahora andará agachado.

Como se muestra en el código la diferencia de Dino 2 a Dino 3 es que ahora caminará siempre agachado para esto luego de reiniciar presionamos el botón down y lo mantenemos hasta que se encuentre con un obstáculo. Cuando se encuentre con un obstáculo soltara el botón down y se presiona el botón espacio para hacer que el dinosaurio salte. En esta implementación 12

ya no se tendrá en cuenta cuando aparece un pterodáctilo en medio ya que el dinosaurio no se golpeara con este.

13

Como vemos la caja de golpeo para Dino 3 es mucho más angosta debido a que el dinosaurio está agachado, para esta caja se decidió que fuera más larga dado que al tener que levantarse para saltar se demora un poco más el dinosaurio.

Después de varias pruebas la mayor puntuación lograda fue 901 debido a que en algunas ocasiones el dinosaurio se paraba sin motivo y se estrellaba con los pterodáctilos.

14

4.CONCLUSIONES La implementación de una aplicación sin interfaz como son los bots, están tomando auge en los sistemas de comunicación, de la manera correcta, presentan grandes aportes y aplicaciones, sin embargo, debe tenerse una regulación en el uso de los bots en los sistemas de información. La implementación de bots genera una gran ayuda para expertos que necesitan agilizar procesos que tiene claros los pasos y que son concretos, como el envío de correos masivo , Chatbot, bots de monitorización web , entre otras aplicaciones. Con lo que respecta a la implementacion del codigo hay que tener mucho cuidado con los sleep dentro del codigo por que si no son manejados de manera correcta pueden hacer que sea menos eficiente el programa. En Dino 3 se presentaron algunos problemas con el mantener el botón down presionado y esto hacía que el dinosaurio se estrellara mucho más rápido. En el caso particular que fue aplicado en el taller, hay que tener en cuenta la importancia del correcto uso de los hilos en relación con las colisiones de las cajas de golpe, porque un hilo dedicado para agacharse, con el incorrecto intervalo de tiempo, puede ocasionar que el dinosaurio no logre esquivar los obstáculos en un salto.

15

5.REFERENCIAS ● http://juegosfun.net/que-es-hitbox/ ● http://rompebotones.blogspot.com/2016/06/que-es-un-frame-un-hitbox-y -como-se.html ● https://definicion.de/robot/ ● https://raiolanetworks.es/blog/que-es-un-bot/ ● https://sites.google.com/site/proyectointeligenciaartificial/indice/los-siste mas-expertos ● https://www.ecured.cu/Sistemas_expertos ● https://recursospython.com/guias-y-manuales/instalar-pil-pillow-efectos/ ● https://www.tutorialspoint.com/python/python_date_time.htm ● https://riptutorial.com/es/python/topic/9432/modulo-pyautogui ● https://pyautogui.readthedocs.io/en/latest/introduction.html ● http://webs.ucm.es/info/aocg/python/modulos_cientificos/numpy/index.h tml ● https://www.youtube.com/watch?v=bf_UOFFaHiY ● http://www.trex-game.skipser.com ● https://developer.valvesoftware.com/wiki/Hitbox

16...


Similar Free PDFs