martes, 27 de agosto de 2013

Tarea #2 Divide y vencerás


Divide y vencerás

La técnica consiste en dividir un problema en almenos 2 partes (instancias) del problema, resolver (vencer) estas instancias y obtener una solución general del problema, combinando las soluciones de los sub problemas.

Pseudocódigo:

funcion divide&venceras(problema)
{
Si problema es suficientemente pequeño o sencillo:
return (solucion tradicional del problema)

descomponer el problema en n subproblemas más pequeños;
para i=1 hasta n hacer
resolver el subproblema k
combinar las n soluciones
}

martes, 20 de agosto de 2013

Tarea #1 Array & String

Array en Java
Un Array es un medio para guardar un conjunto de objetos de la misma clase. Se accede a cada elemento individual del Array mediante un número entero denominado índice. 0 es el índice del primer elemento y n-1 del último, siendo n el tamaño del Array.
Declaración de un Array
tipo_de_dato [tamaño del Array] nombre_del_Array;
Int [ ] arregloNumeros; (Array de números tipo entero)
arregloNumeros = new int [ 10 ]; (Array de tamaño 10 de números tipo entero)
arregloNumeros = 0; (Inicializamos el arrglo en 0)
Llenado de arreglo

for(int i=0; i<cuadrado.length; i++){
        System.out.println(cuadrado[i].calcularArea());
    }

lunes, 19 de agosto de 2013

Tarea #1 Arboles y Hash Table

Árbol
El arbol como estructura de datos es una de las las estructuras de datos más avanzadas, consiste en nodos organizados de manera jerárquica.

Cuando uno usa una base de datos hay un 99 % de probabilidad que un index esté involucrado. El simple tipo de index es una lista ordenada de un campo de llave. Esto provee una búsqueda rápida porque uno puede usar una búsqueda binaria para localizar cualquier artículo sin tener que que ver a cada uno.

Ejemplo de un árbol binario completo:


El problema viene cuando uno quiere añadir uno nuevo elemento y mantener la lista ordenada.

Tarea #1 MapReduce

MapReduce

Es el paradigma de programación que permite  una escalabilidad masiva a traves de  cientos y miles de servidores a traves de un clúster de un software que te permite procesar grandes cantidades de datos a traves de los clústers de servidores de comodidad, los cuales pueden escalar desde un simple servidor hasta miles de máquinas, con un alto grado de tolerancia a errores. En lugar de depender en hardware, la fortaleza de estos clúster viene de la habilidad del software para detectar y encargase de errores en la capa de aplicación.

Tarea #1 Big Data

Big data es una vasta cantidad de datos sin estructura, los cuales ahora sabemos que tenemos la habilidad de procesar en tiempo real.

  • ·         Está adquiriendo importancia por el aumento de los teléfonos inteligentes con GPS y conectividad a internet

Hay 4.6 billones de subscriptores de teléfonos celulares alrededor del mundo y entre uno y dos billones de personas con acceso actual a internet.

  • ·         Los sensores aéreos y las redes  sensoriales

El centro de la NASA para simulación del clima que almacena 32 petabytes acerca de las observaciones del clima y simulaciones en el clúster de descubrimientos de la supercomputadora.

domingo, 18 de agosto de 2013

Tarea#1 - Filas y Pilas

Filas (Queue) y Colas(Stacks)

En esta ocasión, nos toco hablar acerca de algunas estructuras de datos, en este caso particularmente de las estructuras de datos lineales, que son las Filas que también son conocidas como Colas y las Pilas, particularmente estas dos estructuras se comportan como una Lista que también es una estructura de datos lineal pero con característica especial cada una.
Estas tres estructuras son dinámicas, aunque, dependiendo del lenguaje en el que se este implementanto se puede implementar usando un array con longitud fija pero resulta ser ineficiente tanto en memoria como en forma de implementación.

Otra cuestión acerca de la implementación es la gran ayuda en lenguajes de muy alto nivel como lo que es Python ya que por defecto contiene una estructura de datos que son las listas. Esta estructura de datos, que también es un objeto, contiene una serie de métodos que además lo vuelven dinámico que ya nos sirven para agregar elementos y eliminar elementos en cualquier posición, entre otros. Las listas en Python se puede acceder a cualquier elemento de ella por medio de indices como en los Arrays, de echo, en este lenguaje no existen los arrays sino que de forma generica se utilizan las listas como arrays gracias a su gran potencial.

sábado, 17 de agosto de 2013

Introducción al Blog y Tarea #1

Bienvenidos.

Este es el Blog del Laboratorio de Sistemas Adaptativos del Semestre Agosto-Diciembre del 2013. Nuestro equipo se encuentra formado por:


  1. Constantino Mora
  2. Marco Urrea
  3. Marin Salinas
Se espera que con este blog del laboratorio, reforzar lo aprendido en clase, así como también aportar sobre los conocimiento que hasta ahora como estudiantes hemos logrado obtener, para que de esta manera nos resulte más sencillo exponer las diferentes tareas y actividades.