domingo, 25 de abril de 2010

PROYECTO #4

Listas simplemente enlazadas (jueves).

Hola soy Carlos Triana (clase de los jueves) a mi y a mi equipo nos tocó el tema de Listas simplemente enlazadas.

¿Qué hice yo?


Yo me encargue de organizar el equipo, primero preguntamos ¿cuáles eran los temas que más dominábamos?
Según la respuesta nos repartimos las diferentes secciones de la clase.
Después de repartirnos, nos pusimos a trabajar con lo que nos había tocado,
en mi caso me tocó hacer el pseudocódigo y diagrama de flujo, además de las animaciones del algoritmo.

¿Cómo me salió?

La mayoría de los proyectos no me dejan satisfecho por que pienso que puedo hacerlo mejor
pero creo que he hecho bien al estar superando o mejorando cada proyecto, en cada proyecto voy corrigiendo mis errores y lo hago cada vez mejor.
En particular este proyecto #4 creo que lo hice bien y cubrí los aspectos que me tocaban como integrante del equipo.

¿En qué aspectos estoy bien en qué me hace falta mejorar?

Yo creo que estoy bien en los aspectos como la realización de pseudocódigos y diagramas de flujo, además de las explicaciones de aplicaciones reales, pero me hace mucha falta mejorar en el tema de análisis asintótico, hablando de los aspectos como equipo, estoy bien en la organización del mismo y en la discusión con mis compañeros, y me hace falta mejorar en aceptar las críticas de mis compañeros.

¿Ayudo a los demás o me apoyo en ellos?

En esta ocasión me toco ayudar a mis compañeros en los detalles de la presentación, y en la elaboración de algunos de sus temas.
Pero en proyectos pasados eh requerido de la ayuda de mis compañeros.

¿Quién se encarga de coordinar el trabajo?

En este proyecto me tocó a mi, porque era el que más tenía conocimiento de los temas y podía ayudar a mis compañeros si se les presentara algún problema.

¿Qué papel tomo yo?

Tomo el mismo papel que cualquiera de los integrantes de mi equipo, la única diferencia es que yo me encargué de coordinar el trabajo y recopilar la información de todos los miembros de mi equipo para después ponerla en las diapositivas de la clase.

Reflexión personal.

Es agradable trabajar en equipo siempre y cuando sus integrantes trabajen al parejo como en el caso de mi equipo, cuando desarrollas un trabajo en equipo, el resultado tienen los puntos de vista de todos los integrantes y así se enriquece.

Espero les haya gustado mi trabajo.

Bibliografía:

http://www.calcifer.org/documentos/librognome/glib-lists-queues.html
http://www.monografias.com/trabajos28/listas-enlazadas/listas-enlazadas.shtml
http://es.wikipedia.org/wiki/Lista_%28inform%C3%A1tica%29
http://html.rincondelvago.com/estructura-de-datos_7.html
http://www.youtube.com/watch?v=LsER7DVBY5I&feature=related

Enlaces a los blogs de mis compañeros de equipo.

http://raulelchupete.blogspot.com/
http://hiram-algoritmos.blogspot.com/
http://www.gussalas.blogspot.com/

Liga a la presentación.




domingo, 21 de marzo de 2010

PROYECTO #3

-MÁXIMO COMÚN DIVISOR
-

Hola soy Carlos Triana (clase de los jueves):

-Qué en tus propias palabras es recursión, para que sirve, cuándo no usarlo(ejemplos)
Recursión es la manera de hacer un algoritmo en base a precisión o pensando en la optimización de un algoritmo iterativo.
Por ejemplo en nuestro problema de encontrar el máximo común divisor después de hacer el algoritmo iterativo, comprendimos que habia una manera más directa y práctica de resolverlo.

La recursión se usa por distintos motivos, como por ejemplo reducir el tamaño de código de un programa, o hacer el codigo más entendible o sencillo.

Los algoritmos recursivos no se suelen usar en condiciones en las que hay limitantes de memoria y de procesador, ya que como lo mencioné en las diapositivas de la clase, estos ocupan mayores recursos que los algoritmos iterativos.

Un ejemplo de recursión es el algoritmo que incluí en las diapositivas, lo usé para determinar el máximo común divisor de dos números de una manera más práctica.
El algoritmo consistía en obtener el módulo del mayor numero de los 2 que se le iba a sacar el mcd, y si el modulo era igual a 0 pues el menor número era el mcd.
Comparado con el algoritmo iterativo, el recursivo me resolvió el problema de una manera más simple.


-Cómo trabajaron como grupo(fortalezas,áreas de oportunidad)

Trabajamos de manera rápida solo nos repartimos cada punto del tema, investigamos cada quien lo que nos tocaba y al final reunimos toda la información y la ordenamos en las diapositivas.
Las fortalezas de mi equipo fue que cada quien tuvimos que investigar los temas porque algunas cosas no sabíamos y que compartimos información que encontrábamos en la red aunque no haya sido lo que nos tocó.



-Qué fue tu contribución al trabajo
A mi me tocaron los subtemas de introducción y definición del problema, complejidad computacional del problema y un ejemplo de ejecución paso a paso del algoritmos de iteración.


-Cómo compara lo que hiciste tu con el trabajo de los demás
Pues nos repartimos el trabajo en base a los temas que sabíamos, y como cada quien teniamos dudas en diversos temas, yo pienso que el trabajo que realizamos todos fue por igual.



-Qué podrías mejorar en el futuro
La planificación de equipo,porque nos repartimos los temas muy rápido y unos que si sabían de ciertos temas les habían tocado otros distintos, y eso causó que nos costara más tiempo y esfuerzo hacer el trabajo.


-Ligas a los blogs de los demás del grupo

Estas son las ligas a los blogs de mis compañeros:

Hiram Martínez Torres www.
hiram-algoritmos.blogspot.com
Fernando Aguilar www.algoritmosfernando.blogspot.com
Gustavo Salas www.gussalas.blogspot.com



-Liga a las diapositivas de la presentación del grupo

Hospedé las diapositivas en megaupload.

http://www.megaupload.com/?d=D2SS5NNS

jueves, 4 de marzo de 2010

PROYECTO #2

Hola soy Carlos Triana (clase de los jueves)
El problema que yo inventé para el proyecto 2 trata sobre servidores de internet .



La explicacion detallada de mi problema es la siguiente:
Una empresa quiere saber cual es el mínimo ancho de banda que se debe contratar para hospedar su pagina web en los servidores de otra empresa externa, entre las dificultades de este problema tenemos que entre mas informacion almacenen los servidores mayor ancho de banda requerirán, porque son más datos a los que la gente puede accesar,entonces hay que encontrar un balance entre el espacio de almacenamientoy el ancho de banda.



Hay que recalcar que el sitio web que hospedará la empresa es muy solicitado, por lo tanto ocupa óptmimos niveles de subida de ancho de banda para los requerimentos de los usuarios, y obviamente el costo de este servicio es elevado por la importancia y magnitud de la empresa, por lo cual se deben hacer calculos para optimizar el servicio y ahorrar cuanto mayor dinero se pueda.

La forma de representar matemáticamente mi problema es la siguiente:




El valor "i", corresponde al ancho de banda que seria el optimo en utilizar(pertenecen a los numeros reales).
Los valores "j","k"(tambien pertenecen a los numeros reales) serian los valores de ancho de banda que se estarian consumiendo constantemente debido a la demanda de los usarios y a los espacios de almacenamiento respectivamente.
Para resolver mi problema yo pondré 2 soluciones no óptimas, que no nos interesan tanto porque no serian las soluciones que mas convienen al problema o a la empresa que esta contratando el servicio.
Más bien serian soluciones de fácil decisión pero de poco óptimo resultado hablando del servicio.
La primera solución no óptima sería:
Contratar el servicio con la mayor capacidad de almacenamiento, y por consecuencia de mayor ancho de banda (una depende de la otra) para satisfacer el problema de demanda de los usuarios, pero eso costaria demasiado dinero y ni siquiera se ocuparia toda la capacidad de almacenamiento y el ancho de banda quedaria sobrado.
La segunda solucion no óptima sería:
Contratar el servicio más barato que cuente con poco o moderado espacio de almacenamiento.
Para este tipo de servicio corresponde un ancho de banda mas bajo, lo que seria un problema para los usuarios del sitio web.
La manera óptima de resolver el problema sería:
Primero separar por rangos los valores de ancho de banda con respecto a la capacidad de almacenamiento.
Por ejemplo.
Capacidad de almacenamiento=500GB ------- Ancho de banda=2Mbps
Capacidad de almacenamiento=1TB-----------Ancho de banda=3Mbps
Capacidad de almacenamiento=2TB-----------Ancho de banda=5Mbps
Ahora hay que poner un limite de capacidad de almacenamiento.
Ya seleccionado el limite de la capacidad se pone el ancho de banda que se utilizara es decir la respuesta a nuestro problema en funcion de la demanda de los usuarios(en ancho de banda) y de la capacidad de almacenamiento establecida, para poder calcular el valor óptimo de ancho de banda que se va a contratar.
Complejidad del problema:
Mi problema está clasificado como clase p, ya que puede ser resuelto en una máquina determinista mediante algoritmos que tienen como máximo un coste computacional polinómico.
Por ejemplo el peor de los casos de mi problema sería tener un espacio de almacenamiento grande y el ancho de banda bajo, o viceversa, pero se seguiría tomando decisiones muy cortas o concretas que en base al espacio de almacenamiento asignado por el cliente, el algoritmo relacionaria cual ancho de banda es el que mejor le vendría, claro que no sería un numero tan exacto(fuera de rango) ya que previamente definimos los rangos de almacenamiento con respecto a el ancho de banda(en los valores de los rangos se pueden seguir agregando con el proposto de crear servicios más óptimos), pero la solucion seguiría siendo un algoritmo con un coste polinómico.
LAS REFERENCIAS AL CONTENIDO DE LITERATURA E IMAGEN SON:
Espero les haya gustado mi trabajo.

viernes, 19 de febrero de 2010

PROYECTO #1

EJEMPLO NUMERO 1

Hola soy Carlos Triana.
El problema que mi compañero Hiram y yo elegimos fue el numero 5.

Elegir entre posibles objetos de valor cuáles llevar a un viaje en una mochila con capacidad limitada.

En el ejemplo numero 1 nosotros relacionamos el valor monetario de los articulos con el espacio de los mismos.

Pusimos variables para cada uno de los espacios fisicos que ocupan los articulos y variables para los valores monetarios

Despues puse una estructura for con condiciones que si el espacio fuera mayor que el limite de 27000 que puse anteriormente el programa terminaria y volveria a comenzar para que puedas

volver a introducir valores.
Debajo de la estructura for puse mi bloque que se repetiria en caso de no sobrepasar el limite de espacio.
El bloque te imprime el numero del objeto y acontinuacion te pide el espacio en cm cubicos, guarda el valor de espacio, y te pregunta el valor en pesos que tiene el mismo objeto,guarda el valor.Ese bloque se repetira hasta que llegues al valor limite.

Despues de las preguntas, puse una estructura if, que compara todas los valores de espacio y peso y te dice cual objeto es mejor elegir, uno en terminos de valor monetario.
Y despues te dice cual elegir en terminos de espacio.







PROBLEMA#2

Para el problema 2 puse de ejemplo que en una tienda de aparatos electronicos estaban regalando la mercancia, en total solo podias llevar 20 kg de mercancia.

Para eso puse constantes de cada articulo, asi como el valor en peso(kg) y monetario(en pesos)

El programa te presenta una lista para que escogas los articulos despues los lee y hace una comparacion con una estructura if para que te presente cual articulo te conviene en terminos monetarios.

Si te pasas del peso limite el programa te dara el aviso y aparte se reiniciara para que puedas volver a elegir articulos.






































Bueno esos son los 2 algoritmos, son muy parecidos, solo que tiene distintas formas de relacionar los valores monetarios, uno con el peso y otro con el espacio.

Espero les haya gustado mi trabajo.