Archivo de la categoría Estudios

Mi PFC

01_ventana_principal

Entre las cosas pendientes que hice el año pasado y no llegué a publicar por falta de tiempo está mi Proyecto de Fin de Carrera. Lo presenté en Marzo del 2009 en la ETS de Ingeniería Informática de la UNED, en Madrid.

El título del proyecto es “Análisis, Aplicación y Evaluación de un Algoritmo Evolutivo”. Concrétamente, se centra en el uso de algoritmos genéticos por medio de la implementación de un problema clásico en computación como es el de la mochila, tratando de analizar qué parámetros del algoritmo genético afectan en mayor medida a su resolución.

Un algoritmo genético no es más que un algoritmo tal que, partiendo de una serie de soluciones factibles o no factibles, las hace evolucionar, generando nuevas soluciones que tienden a mejorar las iniciales. Se utilizan fundamentalmente cuando el espacio de soluciones es muy amplio y no necesitamos la mejor solución, sino que con una buena aproximación obtenida en un espacio de tiempo acotado nos es suficiente.

En el caso concreto del problema que elegí, el problema de la mochila, lo que tratamos de hacer es llenar un contenedor con una capacidad limitada (la mochila) con una serie de objetos, de forma que el valor total de los objetos introducidos en la mochila sea el máximo posible. Cada uno de los objetos tiene un valor y un peso o volúmen asociado. Podemos observar como esto conduce a que pueda haber muchas soluciones posibles, pero estamos buscando aquella que nos proporcione la colección de objetos de mayor valor posible.

Para hacernos una idea de como funciona el algoritmo en este caso, y la manera de trabajar de un algoritmo genético genérico podemos pensar en el siguiente escenario como ejemplo:

  • Tenemos una mochila que queremos rellenar que tiene una capacidad máxima C.
  • Tenemos una lista con los objetos que podemos meter en la mochila. Cada objeto tiene asociado un valor V y un volúmen Vol.
  • Tenemos que llenar la mochila con objetos, de forma que la suma de los volúmenes de los objetos no supere a la capacidad de la mochila y, además, que el valor total de los objetos introducidos sea el máximo posible.

La solución típica sería calcular todas las posibles combinaciones de objetos, con el valor total de la solución, y quedarnos con el mejor. Esta es la solución correcta, y garantiza que el valor máximo ha sido encontrado. El problema aparece cuando tenemos listas con millones, miles de millones o billones de objetos. Calcular todas las posibilidades en este caso es demasiado costoso en tiempo. Existen problemas en los que es imposible obtener una solución con este tipo de cálculo extensivo en un tiempo lógico. Es aquí donde hacen aparición los algoritmos evolutivos y donde resulta especialmente interesante su utilización. El algoritmo genético parte de una serie de soluciones básicas y, a partir de estas, irá mejorando la solución global del problema. La ejecución del algoritmo terminará cuando nosotros lo especifiquemos (un número determinado de generaciones, cuando no siga mejorando la solución tras un número dado de generaciones, en un tiempo fijo… etc)

En nuestro caso, para calcular la solución, partimos de una serie de soluciones iniciales que representan colecciones aleatorias de objetos. Calculamos para todas estas soluciones el valor total de los objetos introducidos en la mochila. El algoritmo genético tomará estas soluciones y realizará operaciones entre ellas, con la intención de ir mejorándolas. Iría tomando objetos de una y otra solución, y calcularía el valor de esta nueva solución. Las nuevas soluciones generadas, se comparan con sus antecesores, y nos vamos quedando con las mejores. Para compararlas se utiliza el valor total de los objetos introducidos en la mochila.

La “población” de soluciones se va mejorando de forma similar a como lo hacen las distintas especies animales en función de la teoría de la evolución de Darwin: por medio de la supervivencia del más apto. De hecho, la generación de nuevas soluciones es el equivalente computacional a la reproducción: dados n progenitores, mezclamos su “código genético” para generar un número determinado de descendientes. A estos descendientes, a su vez, aplicamos operadores que simulan mutaciones, eliminación de los elementos de mayor “edad”… etc

El fichero con la presentación que realicé podeis verlo a continuación:

Por lo demás, aquí os dejo un enlace a la memoria, y otro al software de simulación de la mochila.

El código fuente lo subiré próximamente, en cuanto pueda añadirle un fichero con la licencia y demás parafernalia.

Etiquetas: , , , , , ,

Fin (de una de tantas partes)

Hace tiempo que no paso por aquí. Bueno, miento. Hace tiempo que no escribo por aquí. Eso es mucho más correcto. He seguido pasando para leer los comentarios que han entrado y consultar las estadísticas. Los comentarios han sido la mayor parte de spam, con mejor o peor intención, pero spam al fin y al cabo. En cuanto a las estadísticas, sin apenas haber escrito nada en todo el mes, tengo mejores números que en Enero. Curioso.

Ahora mismo estoy en la estación de tren. Concretamente en la María Zambrano de Málaga. Hace tiempo que no tenía un rato de paz para escribir algo en el blog. Demasiadas cosas a la vez. Aprovecho este hueco para poneros un poco al día hasta que llegue la hora de subir al AVE.

Mañana Martes 24 de Febrero del 2009, presento mi proyecto de fin de carrera en la ETSII de la UNED en Madrid. Han sido muchos años de simultanear trabajo y estudios y por fin parece que se acaba. No debería haber ningún problema para que mañana a partir del medio día deje de ser Ingeniero Técnico para pasar a ser símplemente Ingeniero. Ahora que lo pienso, tantas horas de estudio para perder parte del nombre. Tiene narices :-)

No puedo prometer que no me meta en nada el año que viene, pero de momento voy a disfrutar de unos meses dedicado “tan sólo” al trabajo. Bueno, relativamente. ¿He comentado que me caso en poco más de dos meses? Menos mal que voy a acabar la carrera antes, si no ¡vaya papelón! Lo que sí que puedo prometer (y prometo) es que escribiré más por aquí, lo cual me deja bastante margen por ser una promesa prácticamente imposible de inclumpir.

Nada más por el momento. Dedicad vuestras plegarias al FSM para que no se rompa el proyector, ni el portátil, y que la presentación vaya todo lo fina que debe ir. ¡Mañana más noticias!

Technorati Tags: , , ,

Etiquetas: , , ,

Balada del laureado Lolo

Me la han dedicado hace un rato en Jaiku. Concretamente este elemento subversivo. No puedo dejar de publicarla…

Cabalgaba el Laureado,
sobre el jamelgo montado,
cabalgaba por un prado,
era un día soleado,

Llega pronto y preparado,
al sitio donde está emplazado,
el momento ha llegado,
el examen ha empezado.

El boli bic ha empuñado,
y el capuchón le ha quitado.
El exámen ha empezado,
el momento ha llegado.

La cuestión ha contestado,
mas no sabe si ha acertado,
ha leído el enunciado,
el texto es enrevesado.

Su código está comentado,
sus bucles optimizados.
El patrón está bien usado,
y el ensamblador cruzado.

El boli bic se ha secado,
pero pronto es alentado.
El papel se ha agotado,
quince folios ha llenado.

Se levanta el Laureado
y camina hacia el estrado.
El examen entregado,
todos los folios firmados.

Los días pasan, demasiados.
El profesor ha tardado.
Pero en el corcho clavado,
el listado es publicado.

A codazos ha empujado
al resto del alumnado.
El listado ha consultado,
el exámen ha aprobado.

Y ya todo ha terminado,
y sobre el jamelgo montado
cabalga lento y pausado
el gran Lolo el Laureado.

¡Plas! ¡plas! ¡plas!

Para quien no se entere muy bien de qué va la película, he aprobado la última asignatura que me quedaba del segundo ciclo de Ingeniería Informática. Ahora sólo resta presentar el proyecto de fin de carrera y defenderlo, aunque para eso quedan un par de meses todavía. ¡Seguiremos informando!

Etiquetas: , , , ,

¿Ingenieros o Licenciados en Informática?

Ando muy liado estos días. Tanto que no he tenido tiempo ni de leerme la enésima polémica sobre la posibilidad de crear un Colegio de Informáticos. Parece que esta vez ha sido buena. ¡Vaya ganas de bronca bronca que tiene la gente! :-)

Según entiendo, la ordenación cronológica de la discusión ha sido:

Sin menospreciar las “rutas alternativas” tomadas por Al otro lado del mostrador en el razonamiento y Halón Disparado (parece que a Bakunin le interesa especialmente el tema :-D) y por último, otra entrada más extensa del tendero :-)

Total, todo muy divertido, y sigue siempre más o menos el mismo patrón de discusión:

  • Que si el software no es fiable.
  • Que si aquí lo que se quiere es hacer caja por una firmita.
  • Que si todos los ingenieros informáticos son unos patanes.
  • Que si todos los que no han estudiado la ingeniería son unos máquinas autodidactas.
  • Que si yo les tengo que enseñar a los ingenieros en mi trabajo porque no tienen ni idea.
  • Que si no se tiene en cuenta a los de FP a la hora de organizar la profesión.
  • Que sí… que sí… que creeis el colegio, pero al primer pete de windows ¡a la cárcel con ellos!
  • Que si los físicos y los matemáticos son intrusos.
  • Que si no lo son ya que la informática la empezaron ellos.
  • … (aquí la cosa empieza ya a desvariar irremediablemente) :-)

Lo que nunca he visto expuesto ha sido mi visión de la “Ingeniería Informática”. ¿Por qué se le cambió el nombre a Ingeniería? ¿No estaba bien siendo una Licenciatura? ¿Habeis visto los planes de estudio de las Ingenierías Informáticas? A parte de unas cuantas asignaturas (que no son pocas, eso sí) dedicadas a la Ingeniería del Software (o como gestionar un proyecto) todas las demás asignaturas versan sobre matemáticas, algoritmia, inteligencia artificial, compiladores, arquitectura de sistemas operativos y de hardware, sistemas en tiempo real… y un largo etc.

En otros paises, sin duda más serios que este en el que vivimos, los estudios de Informática se denominan “Computer Science”, ¿no es un nombre más lógico? Quizás mi vida profesional me lleve a tener que implementar un compilador, utilizar redes bayesianas, algoritmos geneticos, etc, en una empresa… pero lo veo bastante difícil. ¿Y por qué estudio esto? ¡Porque me encanta!

Por otro lado. El resto de ingenierías. ¿No podrían llamarse “Fisica Aplicada: especialidad en X”? :-) Fijaos que todas las ingenierías se basan en aplicar conceptos físicos. ¿Y la informática? En mi opinión se sale por la tangente. ¿No es más lógico pensar en la informática como una nueva rama de la ciencia? Sí, usamos las matemáticas como base, al igual que los estudios de física, todo sea dicho. Pero, obviando este detalle, estudia campos novedosos con entidad propia:

  • Diseño de sistemas operativos
  • Compiladores y lenguajes de programación
  • Inteligencia artificial (¿a alguien a parte de los informáticos y los matemáticos le interesan los algoritmos genéticos?)
  • Algoritmia (¿podríamos definirla como “matemáticas aplicadas? :D) ¿Quien se encarga de modelar algoritmos para sistemas distribuidos, procesamiento vectorial… etc?

¿Que hay mucha gente que se mete en la carrera sin que le gusten estas cosas? Si, claro, igual que en casi todas.

¿Que alguien con menos formación podría hacer mi trabajo? Seguramente, con los mismos años de experiencia profesional que yo, haga el mismo trabajo diario. A la hora en que aparecen los “problemas de verdad” es cuando se nota el bagaje de cada uno. Seguramente un autodidacta con muchos de trasteo a la espalda tenga exáctamente mi mismo desempeño. Pero, eso sí, que no me venga cualquiera diciendo que porque se ha leido un libro de SQL me da mil vueltas :-D

Profesionalmente, a la hora de trabajar con alguien sin conocerlo a priori y a igualdad de experiencia (muy importante esto último), escogería a un Ingeniero Informático que a alguien de otra rama, no lo voy a negar. Soy consciente de los conocimientos mínimos que ha adquirido en la carrera y, en principio, debería tener la capacidad de formarse en lo que necesite, rellenando las lagunas que pudiera tener o especializándose en un campo concreto.

A la hora de la verdad, en el trabajo diario, lo realmente deseable es alguien con experiencia, “espabilado” y que le interese y le guste lo que hace. En todas partes cuecen habas. He trabajado con Físicos, Químicos, Matemáticos, titulados en FP y, por supuesto, Licenciados e Ingenieros Informáticos con los que es un placer trabajar. Sin embargo, abundan mucho más los morningsingers, ¡que le vamos a hacer! No es algo exclusivo de nuestra profesión, aunque en mi opinión lo sufrimos especialmente.

Lo que sí que tengo comprobado es que al buen profesional se lo rifan las empresas. No es tan fácil encontrar a alguien con la “actitud” necesaria para trabajar en este campo y, cuando aparece, se intenta retener. Y si la empresa no cuida a estos profesionales, tiene un grave problema de base y se les acaban cayendo los proyectos. Tras años de auténticas chapuzas, parece que se empieza a desconfiar de los vendedores de humo y se intenta invertir más dinero en un proyecto con garantías a largo plazo. Pero me voy por las ramas, que este tema daría para varios posts más.

Total, un lío de narices :-)

En cuanto al colegio… En principio un colegio, como asociación profesional es algo que echo de menos. Eso sí, el derecho de pernada siempre me ha hecho gracia. En principio una profesión se puede regular con leyes, no hace falta un colegio para nada. Un edificio no se puede construir sin la firma de un arquitecto (y graves problemas legales que se encuentran a veces). Un médico… ¿para qué le hace falta un colegio? Alguien sin el título de medicina no puede ser contratado en un hospital y punto… No se son casos extremos. Como asociación sí que tienen sentido. Establecen salarios mínimos para el gremio y tal. Hace años suspiraba cuando amigos de otras profesiones me decían “es que está establecido por el colegio que un recién titulado debe cobrar X por convenio”.

En cuanto a otros colegios, como los de telecomunicaciones y los de industriales, me da la impresión que son, símplemente, recolectores de competencias. Cuantas más tengamos mejor. Me toca especialmente las narices cuando intentan acaparar parcelas que no les corresponden y repartirse el pastel. ¿Sería mejor tener un colegio de informáticos o quitar de enmedio los colegios que intentan acaparar competencias? Pues no me queda claro el asunto.

Y ya por último, que me estoy enrollando bastante. Los estudios de informática y “el Estado”. Unas oposiciones de informática deben ser cubierta por títulados en informática. ¡Que menos! Ya que uno realiza unos estudios oficiales, ¿qué menos que “premiar” de cierta manera dicha dedicación? ¿Sería lógico que el cuñado informático de un determinado alcalde, por enchufismo puro y duro obtuviera la plaza de arquitecto municipal? ¿A que no? ¿Y por qué en informática sí pasa esto? No me lo explico.

Bueno, pues me ha quedado un artículo bastante desordenado, un poco caótico, polémico, y laaaaargo. Seguramente tendría que haberlo dividido en varios post. Pero bueno, ahí queda. ¿Linchamientos? Digoooo… ¿opiniones?

Antes y Ahora

Technorati Tags: , , ,

Que no es por no escribir…

… que si hay que escribir se escribe, pero teniendo mañana un exámen… ¡es tontería!

:-)

El tocho de J2EE

Dos meses para meterme ese tocho entre pecho y espalda (además de hacer un portal para estudiantes como práctica) ¿Seis créditos? Me parto de risa…

La verdad es que no se que me da más susto, si el libro en sí o la cara de los autores… jejeje

Bueno, ahora que me he desahogado, habrá que seguir “chapando”

Escuchando

Ultimamente no he escuchado nada

Tags Musica

Cache is empty.
lastfm logo

Fotillos

T9
Fotillos...

Fotillos por RSS 2.0