1. Heurística AI-Pacman : en el Proyecto Pacman 1, el agente Pacman buscará caminos en el laberinto para llegar a un destino determinado y recolectar alimentos de manera eficiente. Se implementan algoritmos de búsqueda general para cumplir con diferentes tipos de escenarios de Pacman. Usamos este juego como modelo para comprender cómo funcionan los diferentes algoritmos de búsqueda. En esta tarea, el agente Pacman encontrará caminos a través de su mundo laberíntico, tanto para llegar a un lugar particular como para recolectar comida de manera eficiente... Implementé esta tarea en python3.
2. Mecanismo BitTorrent : el programa descarga todos los diferentes fragmentos del archivo de diferentes pares, los combina y guarda el archivo en nuestro directorio portátil/local. El propósito de esta tarea es comprender el mecanismo de BitTorrent. BitTorrent obtiene un archivo torrent que contiene una lista de pares que alojan el archivo y descarga diferentes fragmentos del archivo de diferentes pares. Los softwares utilizados aquí son python3 y entorno Linux.
3. Redes cliente-servidor : el servidor escucha en un puerto, el programa del servidor se ejecuta con un número de puerto como entrada y el cliente realiza una conexión TCP y el servidor envía un archivo al cliente. Además de actuar como servidor, el servidor También puede actuar como un proxy. Tanto el programa cliente como el servidor están implementados en python3 y utilizan programación de sockets, subprocesos múltiples para admitir conexiones simultáneas en el servidor.
4. Prototipo del sistema ficticio de gestión de aerolíneas : en este proyecto hemos desarrollado un sistema ficticio de gestión de aerolíneas que almacena y recupera los datos relacionados con los aeropuertos, aerolíneas y vuelos. Básicamente, la motivación detrás de elegir esta idea fue desarrollar un sistema que fuera visualmente atractivo y fácil de usar. Hay dos tipos de usuarios en este sistema: 1) Clientes y 2) La página de administración y el administrador ha otorgado acceso para modificar nuevos vuelos, etc. La fuente principal de datos que utilizamos en este proyecto es solo el conjunto de datos de vuelos de 2015, que se puede encontrar en Los softwares de Kaggle utilizados en este proyecto son el banco de trabajo MY SQL para consultas, el marco web Python que proporciona herramientas y funciones útiles que facilitan la creación de aplicaciones web y HTML para páginas web frontend.
5. Estimación de la densidad del tráfico-opencv : Principalmente hay dos partes en este código: lo básico que necesitamos para monitorear el tráfico es la transmisión de una cámara que se coloca en una carretera real, pero no podemos garantizar que esté colocada en una buena posición de manera que la carretera lo que se va a observar está en un rectángulo perfecto y la cámara recibe una vista superior. Puede haber muchas otras cosas en la imagen que deban eliminarse para que el algoritmo funcione eficientemente. Opencv funciona mejor para marcos rectangulares, por lo que para trabajos como la estimación de la densidad del tráfico, es vital fijar primero el ángulo de la cámara en el software y recortar la imagen para eliminar elementos adicionales. Uno de los repositorios contiene corrección del ángulo de la cámara y código de recorte de fotogramas.
subtarea2: La imagen extraída del video que se utiliza como fondo. En la parte posterior, se realizó el análisis de compensación del tiempo de ejecución de la utilidad.
6. Proyecto de Cloud Computing : Explicando de forma sencilla: El proyecto consistía en crear una herramienta que ayudara a las personas que utilizan máquinas virtuales. Las máquinas virtuales son como computadoras que se ejecutan dentro de otra computadora. Son útiles porque permiten a las personas ejecutar diferentes sistemas operativos o software sin necesidad de una computadora separada para cada uno.
La herramienta que creamos se llamó API de instantáneas. Es como una cámara que toma una fotografía de una máquina virtual en un momento determinado. Esta imagen se llama instantánea. Las instantáneas son útiles porque permiten a las personas guardar el estado de una máquina virtual y volver a ella más tarde. Por ejemplo, si alguien está trabajando en un proyecto en una máquina virtual y quiere tomar un descanso, puede tomar una instantánea y volver a ella más tarde sin perder ningún progreso.
Usamos un lenguaje de programación llamado Rust para crear la API de instantáneas. Rust es un buen lenguaje para este tipo de proyectos porque es seguro y rápido. Esto significa que es menos probable que la API tenga errores o problemas de seguridad y funciona rápidamente.
Dividimos el proyecto en cinco etapas principales. La primera etapa consistió en crear una máquina virtual básica que pudiéramos usar para realizar pruebas. La segunda etapa consistió en agregar una función que permitiera a las personas pausar y reanudar una máquina virtual. La tercera etapa consistió en convertir la API de instantáneas en un programa más pequeño y eficiente. La cuarta etapa consistía en crear un servidor web que pudiera ejecutar varias máquinas virtuales a la vez. La etapa final consistió en hacer que la API de instantáneas fuera más eficiente mediante el uso de una técnica llamada deduplicación. Esto significa que si dos instantáneas son muy similares, sólo necesitaremos guardar las partes que sean diferentes.
La API de instantáneas que creamos fue utilizada por diferentes partes del proyecto. Por ejemplo, un equilibrador de carga lo usó para mover máquinas virtuales, una interfaz lo usó para crear nuevas máquinas virtuales a partir de una imagen base y un sistema anti-trampas lo usó para monitorear quién estaba usando las máquinas virtuales.
En general, el proyecto fue un éxito. Terminamos todos nuestros objetivos antes de la fecha límite y creamos una API de instantáneas que era segura, rápida y eficiente. Para obtener más información, consulte los repositorios.