jueves, 26 de noviembre de 2009

Libros

Libros

1. Ingeniería de software orientada a objetos con UML, Java e Internet (2004) de Alfredo Weitzenfeld
2. Análisis y diseño de sistemas (1997) de kenneth kendall
3. Diseño conceptual de bases de datos (2004) de CArlo Batini
4.
Software orientado a objetos (1993) de ann winblad
5 Métodos orientados a objetos (1996) de Ian Graham
6.
Ingeniería del software (2005) de Ian Somerville
7.
Ingenieria del software (1995) de Roger Pressman
8.
Ingeniería de proyectos informáticos (2003) de Jose Salvador Sanchez Garreta
9.
Principios de sistemas de información (2000) de Ralph Stair
10.
Técnicas cuantitativas para la gestión en la ingeniería del software (2007) de JAvier Dolado Cosin
11.
Ingenieria de software (2005) de Erick Braude
12.
Avances en criptología y seguridad de la información (2004) de Benjamin Ramos Alvarez
13.Software Process Improvement for Small and Medium Enterprises (2008) de Piatini y Oktaba
14.
Enterprise modeling and computing with UML (2007) de Peter Rittgen
15.
Redes de comunicaciones (2002) de Jorge MArtínez
16.Redes de computadoras (2003) de Andrew Tanenbaum
17.
Redes de telecomunicación y ordenadores de Michael Purser
18. Tecnologías y redes de transmisión de datos (2003) de Herrera y Herrera
19. Redes Manual de Cisco NEtworking
20.
Estructuras de datos y algoritmos con Java (2007) Adan Drozdek
21.
Estructura de datos: referencia practica con orientacion a objetos (2002) de Román MArtínez
22.Estructuras de datos y métodos algorítmicos (2004)de Narciso Martí Olliet
23.
ESTRUCTURA DE DATOS : ALGORITMOS ABSTRACCION Y OBJETOS (1998) de Joyanes
24.
Estructura de datos y diseño de programas (1984) de Robert Kruse
25.
Estructura y diseño de computadores (2000) de Patterson
26.
Diseño digital (2001) de Jhon Wakerly
27.
Bases de datos relacionales (2004) de Enrique Rivero Cornelio
28.
Introducción a la teoría de sistemas (1996) de Luhman
29.
Teoría general de los sistemas (1976) de Ludwing Von Bertalanfy( este es el mejor libro ya que este autor es el padre de la teoria general de sistemas)
30.
Introducción a la teoría general de sistemas (1982) de Johansen
31.
Teoría cuántica relativista (2003) de Landau ( El super libro, este es por si les interesa)
32.
TEORÍA DE SISTEMAS. Problemas resueltos (2005) de DAvid de la Peña
33.
Simulación (1994) de Raúl Coss Bú
34. Java Framewoks de Xiaoping Xia
35. Estructura de Datos y diseño de programas de Robert Kruse
36. Prep. y Eval. de Proyectos de Nassir Sapag Chaín
37.
Metodología de la investigación (1998) de Sampieri
38. Metodología de la investigación (2006) de Augusto Bernal
39.
Metodología de la investigación científica y técnológica (2004) de sanchez Cegarra
40.
Auditoría en sistemas computacionales (2002) de CArlos Muñoz Razo
41.
Auditoría informática (1988) de Gonzalo Rivas
42.
Seguridad en los sistemas informáticos (1988) de Royal Fisher

ESPERO LES SEA DE AYUDA ESTA BIBLIOGRAFIA, LES ESTARE ACTUALIZANDO PERIODICAMENTE....

miércoles, 25 de noviembre de 2009

Proyecto de Investigación(Final)

EL JUEGO DE LA VIDA


Vida Artificial

...''es el campo de estudio dedicado a la comprensión de la vida, intentando abstraer los principios dinámicos fundamentales que subyacen a los fenómenos biológicos y recreando esas dinámicas en otros medios físicos - como ordenadores - haciéndolos accesibles a nuevos tipos de manipulación experimental y de pruebas''. Chris Langton
`` La Biología estudia la ``vida'' aunque en la práctica sólo se estudia los seres vivos de la Tierra que están basados en la química del Carbono. En principio no hay que impidiera la existencia de otras formas de vida basadas en otros elementos. La Biología teórica se encuentra en la dificultad de que es imposible deducir principios generales a partir de ejemplos simples ya que no tenemos otros seres ``vivos'' con los que compararnos. Cuales son las características fundamentales de los seres vivos y cuales son accesorias?. Para obtener alguna teoría general sobre la vida necesitamos un conjunto de seres vivos sobre las que podremos hacer alguna generalización.
Como es poco probable que se nos presente algún marciano para que lo estudiemos , nuestra única opción consiste en crear formas de vida alternativas. La ``Vida Artificial'' ( Alife, en inglés ) es una disciplina que estudia la ``vida natural'' recreando los fenómenos biológicos en ordenadores y otros medios artificiales. Alife complementa el estudio teórico de la biología pero en lugar de tomar organismos aislados y analizar su comportamiento lo que se intenta es colocar juntos organismos que actúan como los seres vivos.
La Vida Artificial es una ``biología sintética'' en analogía con las síntesis químicas. El intento por recrear fenómenos biológicos en un medio alternativo nos llevará a una mejor comprensión de los procesos biológicos así como a la implementación de los principios biológicos en aplicaciones prácticas como en el diseño de ordenadores ( hardware y software ), robots móviles, medicina, etc. Extendiendo los horizontes de la investigación empírica de la Biología más allá del territorio de la vida-como-la-conocemos, la Vida Artificial nos da acceso al dominio de la vida-como-debería-ser y es en este dominio en el que podremos construir teorías generales a cerca de la Biología y en el que descubriremos aplicaciones prácticas y útiles de las herramientas de los seres vivos en la resolución de problemas.''
( Texto adaptado de Chris Langton ).
Algunos problemas que intentan abordar los estudiosos de la ``Vida Artificial'' son:
• La definición de ``vida'' y de sistema vivo. Vida y computación.
• Sistemas autoorganizados. Autoreplicación.
• Aprendizaje evolutivo. Técnicas de optimización. Algoritmos genéticos.
• Adaptación. Dinámica de los Sistemas Complejos.

En Septiembre de 1987 se celebró en Los Alamos (NM) el primer congreso sobre vida artificial y de él podemos extraer algunas de las conclusiones fundamentales.
• Alife es la Biología de lo posible: La Biología que conocemos es la biología de la vida actual en la Tierra que está basada en la Química del Carbono. La vida artificial se ocupa de todas las formas de vida posible, de como podría ser la vida.
• Síntesis: Alife intenta sintetizar los procesos vitales al contrario que la Biología clásica que ha puesto el énfasis en el análisis de los seres vivos.
• Vida Real-Artificial: En Alife tenemos unas ``criaturas'' que se comportan como los seres vivos que conocemos. Lo que hay de artificial en ellos son los componentes de los que se construyen ( los chips de silicio, programas de ordenador y cosas por el estilo ) pero su conducta es idéntica a la del resto de los organismos vivos.
• La forma: La Vida es un proceso y es la forma de este proceso y no la materia lo que constituye la esencia de la vida. Se puede abstraer lo material y mostrar la lógica que gobierna el proceso.
Al igual que en todos los sistemas complejos, la construcción de sistemas en los que se pone de manifiesto vida artificial se hace siguiendo tres pautas:
• Se parte de unidades simples con interacción local.
• Procesamiento en paralelo.
• Aparición de comportamientos emergentes.

INTRODUCCIÓN AL JUEGO DE LA VIDA

En 1970, John Comway publicó su libro "The Game of Life". Él creó el Juego de laVida como una forma de representar un sistema biológico. Utilizó una matriz bidimensional booleana (Es decir, una cuadrícula en la que en cada cuadro suyo sólo podía haber dos estados: verdadero y falso). Si una posición de la matriz era verdadera, esta se consideraba como una "célula", y si era falsa, como un espacio vacío. Utilizó simples reglas para el juego: si alrededor de una célula (de sus ocho vecindades) había menos de dos células, esta moría. Si tenía más de tres, también moría, al haber una sobrepoblación de células. Ahora bien, si alrededor de un cuadro vacío había tres células, en el espacio vacío nacía una nueva célula. A esto se le llamó reproducción trisómica. Al proponer estas simples reglas, no creo que se imaginara que se iban a desarrollar "organismos" tan sorprendentes como los que se desarrollaron.


Reglas del juego de la vida

La estructura del juego que en realidad es una simulación, no un juego con personas
Es una rejilla rectangular abierta, en la cual cada celdilla puede estar ocupada o no por un microorganismo. las celdillas vivas cambian de una generación a otra, según el número de celdillas vecinas que están vivas, en la siguiente:

1. Los vecinos de una celda son los ocho que la tocan vertical, horizontal o diagonalmente.

2. Si una celdilla está viva pero no tiene celdillas vecinas vivas o solamente una viva, muere de soledad en la siguiente generación.


3. Si una celdilla está viva y tiene cuatro o más vecinas también vivas, en la siguiente generación muere por hacinamiento.

4. Una celdilla viva con dos o tres vecinas permanece viva en la siguiente generación.


5. Si una celdilla está muerta , en la siguiente generación recuperará la vida si tiene exactamente tres vecinas, ni una más ni una menos, que ya estén vivas. Todas las otras celdillas muertas permanecen así en la siguiente generación

6. Todos los nacimientos y muertes tienen lugar exactamente al mismo tiempo, de manera que las que mueren ayudan a producir otras ; pero no pueden impedir la muerte de otras reduciendo el hacinamiento , ni las que nacen pueden preservar o destruir a las que tienen vida en la generación.

El juego de la vida se trata de uno de los primeros autómatas celulares construidos y es sin lugar a dudas el más conocido y estudiado de todos ellos. Se trata de un autómata celular binario (i.e las células toman sólo los valores 0 ó muerta y 1 ó viva), bidimensional con entornos de Moore. La actualización de la célula central puede realizarse mediante muchas familias de reglas; la cantidad de variantes que se ha introducido es muy extensa.

El juego de la vida clásico se trata de las reglas originales introducidas por John Horton Comway en Scientific American en octubre de 1970. La idea consiste en modelar una situación en la cual ocurrieran las siguientes condiciones:

• No debe existir ninguna configuración inicial a partir de la cual se pueda probar de modo simple que la población crece sin control.
• Deben existir configuraciones iniciales que aparentemente provoquen un crecimiento descontrolado.
• Deben existir configuraciones iniciales simples que crecen y cambian durante un periodo considerable de tiempo para llegar a uno de los siguientes estados:

i. Desaparición completa (por superpoblación).
ii. Situación estacionaria.
iii. Configuración cíclica estable formada por dos o más estados que se van repitiendo.

Algunas iteraciones celulares:



















Las estructuras básicas del juego de la vida son:

Blinkers: Estructura oscilante con dos periodos.







Glider: Se trata de una estructura que sigue un ciclo, moviéndose una celda diagonalmente cada vez que lo completa.







Spaceship: Un número finito de celdas que después de varias generaciones vuelve a aparecer con idéntica configuración en otro punto de la pantalla. Esto causa el efecto a ojos del espectador de una nave que se mueve, de ahí el nombre









Glider gun: Se trata de una estructura oscilante que emite Gliders periódicamente. El descubrimiento de la Glider gun probó la falsedad de una de las conjeturas básicas de conway, que ninguna población finita podría crecer sin límite.



ESTRUCTURAS DE DATOS


La estructura fundamental usada es una lista simple enlazada.







Se usan dos clases

• Clase Nodo
• Clase Celda

Cada Nodo representa una célula viva

Los procedimientos fundamentales de esta implementación son “SumarVivas()”, este procedimiento suma los vecino que tiene la células vivas;

El procedimiento “SumasMuertas()” Verifica si existe células muertas que cumpla con la condición de sobrevivencia para luego insertar en la lista de células vivas;

El procedimiento “vivir.vivificar()” Elimina los elementos de la lista viva a todos los elementos que no cumpla con las condiciones de sobrevivencia en la próxima generación.

REPRESENTACIÓN GRÁFICA






CONSIDERACIONES DE ESPACIO EN LA MEMORIA

Podríamos llevar el control de todas las celdas hasta que la memoria se llene, y luego eliminar aquellas que no sean necesaria. Pero esto requeriría recálculo de dirección del arreglo completo, lo cual sería lento y penoso, con encadenamiento podemos fácilmente deshacernos de celdas (células vivas) tan pronto como sean necesarias, y así reducir en lo posible el número de celdas, claro que obviamente, va ha llegar a una etapa que se llenara la memoria.




Recursos Web para el Proyecto

http://es.wikipedia.org/wiki/Juego_de_la_vida
http://juankaweb.blogspot.com/2006/02/el-juego-de-la-vida-de-conway.html
http://www.bitstorm.org/gameoflife/
http://www.bitstorm.org/gameoflife/standalone/
http://www.bitstorm.org/gameoflife/code/
http://www.taringa.net/posts/info/1317296/El-Juego-de-John-Conway-%28realmente-asombroso%29.html