0% encontró este documento útil (0 votos)
23 vistas4 páginas

Historia y Teoría de la Computación

El documento describe la historia de la computación desde la primera generación hasta la actualidad, así como los tipos de autómatas, el problema de la parada, tipos de problemas computacionales y clasificaciones de complejidad computacional.

Cargado por

J. V
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas4 páginas

Historia y Teoría de la Computación

El documento describe la historia de la computación desde la primera generación hasta la actualidad, así como los tipos de autómatas, el problema de la parada, tipos de problemas computacionales y clasificaciones de complejidad computacional.

Cargado por

J. V
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

PRINCIPIOS, IMPLEMENTACIÓN Y RENDIMIENTO TEMA 1

1. CAPÍTULO 1
1.1 HISTORIA DE LA COMPUTACIÓN:

Punto de vista hardware Punto de vista software

PRIMERA GENERACIÓN Lenguaje máquina y lenguaje


Uso de válvulas en el vacío
(1951- 1958) ensamblador
Uso de transistores y se
SEGUNDA GENERACIÓN Desarrollo de lenguajes de
extiende el uso de
(1959-1964) alto nivel
microprogramación
- Inicia el uso de
multiprogramación y se
propone la programación
TERCERA GENERACIÓN estructurada.
Uso de circuitos integrados
(1965-1971) - Aparece UNIX
- Implementación de las
primeras redes de
computadores
- Memorias de estado sólido,
CUARTA primeros microprocesadores

ACTUALIDAD - Componentes de entrada- - Conectividad entre
(1972 -) salida dispositivos

1.2 EL COMPUTADOR COMO AUTÓMATA:


- Autómata: máquina de cálculo abstracta que salta de un estado a otro guiada por unas
entradas de control y unas pautas preestablecidas.
- La teoría de autómatas es la rama de las Ciencias de la Computación que estudia estas
máquinas y los problemas que son capaces de resolver.
- TIPOS:
o Autómata finito: Representas sistemas que pueden estar en un número finito
de estados y realizar transiciones entre ellos en respuesta de entradas
específicas.
o Autómata pila: Es un autómata finito, pero con una memoria auxiliar ordenada
como pila en la que puede leer y escribir.
o Máquina de Turing: Es un autómata finito, pero con una memoria auxiliar
infinita en la que se puede leer y escribir símbolos.

Teoría
Teoría de los Teoría de la
lenguajes de los
complejidad
formales Autómatas computacional
PRINCIPIOS, IMPLEMENTACIÓN Y RENDIMIENTO TEMA 1

1.3 MÁQUINA DE TURING:


- Conceptualmente: Es un autómata finito con una cinta infinita que se puede
desplazar a derecha e izquierda y en la que se pueden leer y escribir símbolos.
- Problemas indecidibles: Problemas que no se pueden resolver con un
computador. La máquina no pare nunca.
- FINAL CON ACEPTACIÓN: la máquina se para porque ha finalizado su tarea.
- FINAL CON NO ACEPTACIÓN: La máquina a alcanzado un estado en donde
ha entrado un símbolo no esperado.
1.3.1 EL PROBLEMA DE LA PARADA:
- Problema indecidible
- El problema de la parada busca determinar si se puede crear un programa que
sea capaz de decir a través del programa dado y la entrada si se detendrá o
seguirá infinitamente.
1.4 PROBLEMAS COMPUTACIONALES:
1.4.1 TIPOS DE PROBLEMAS:
- Decisión: La solución es un ‘sí’ o un ‘no’. Por ej. Determinar si “a” es
primo o no.
- Búsqueda: La solución debe cumplir un predicado lógico.
- Recuento: la solución es el número de soluciones que cumplen el predicado
lógico.
- Optimización: La solución debe ser la mejor entre todas las posibles.
1.4.2 TIPOS DE COMPLEJIDAD:
- Complejidad Constante O (1): significa que el tiempo o el espacio
requerido por el algoritmo no depende del tamaño de la entrada1. Es la forma más eficiente
de complejidad.
- Complejidad logarítmica O (log2 n): significa que el tiempo o el espacio
crece de manera logarítmica con respecto al tamaño de la entrada.
- Complejidad lineal O (n): significa que el tiempo y el espacio crecen de
manera proporcional al tamaño de la entrada. Eficiente y común en muchos algoritmos.
- Complejidad polinómica O (n^2): significa que el tiempo y el espacio
crecen de manera cuadrática en relación con el tamaño de la entrada.
- Complejidad exponencial O(2^n): significa que el tiempo y el espacio
crecen de manera exponencial con respecto al tamaño de la entrada. Menos eficiente.

(1) Cantidad de datos procesados o manipulados.


PRINCIPIOS, IMPLEMENTACIÓN Y RENDIMIENTO TEMA 1

1.4.3 CLASIFICACIONES EN LA TEORÍA DE LA COMPLEJIDAD


COMPUTACIONAL:
- DECIDIBLES: Para cualquier dato de entrada, siempre hay una respuesta.
- INDECIDIBLES: No existe un algoritmo por el cual se pueda decidir la
respuesta correcta en todos los casos posibles.
- P (Polinómico o inferior): Son problemas para los cuales existe un algoritmo
eficiente(polinómico) que puede encontrar solución en un tiempo razonable.
- NP (entre Polinómico y exponencial): Son problemas para los cuales si se
presenta una solución, se puede verificar rápidamente, pero no se ha demostrado
que exista un algoritmo eficiente para encontrar la solución.
- NP-completo (Exponencial o superior): son problemas para los cuales no se ha
encontrado un algoritmo eficiente (polinómico) para su resolución, se puede
verificar rápidamente su validez.
1.4.4 EL PROCESO DE COMPUTACIÓN:
- La resolución de un problema
computacional es un proceso integral en el
que el éxito depende de la adecuada
sintonización de las fases que lo componen.
- La figura ilustra esas fases desde la
inicial formulación abstracta hasta la
imagen binaria del programa ejecutable que
lo resuelve en un computador convencional
moderno.
- Asumiendo una correcta formulación de
un problema el siguiente paso es encontrar
un buen algoritmo que le dé solución.
^La algoritmia nos proporciona un
conjunto ordenado y finito de operaciones a
seguir. Además, nos revela la complejidad
intrínseca del problema respecto a los
recursos necesarios para resolverlo.
^A continuación se ha de escribir ese
algoritmo en algún lenguaje de programación cuidando que tanto las estructuras de datos
como la codificación y el propio lenguaje formal sean convenientes al tipo de problema.
^Durante el proceso de computación, el problema abstracto se convierte en un
problema concreto gracias a la formalización en código fuente de la relación entre los
conjuntos oportunamente estructurados de entrada y solución.
^Para un análisis más certero se debe tener en cuenta entradas no esperadas o vigilar la
existencia de trazas de ejecución (registro de lo que ocurre durante la ejecución de un
programa) imprevistas.
PRINCIPIOS, IMPLEMENTACIÓN Y RENDIMIENTO TEMA 1

^Otro aspecto a tener en cuenta es que su código fuente no aumente la complejidad


intrínseca del algoritmo que da solución al problema computacional original.
^ Una vez desarrollado el programa, éste aún no es ejecutable directamente sobre el
computador y ha de ser traducido a código binario y estructurado apropiadamente
utilizando otras herramientas tales como compiladores2, intérpretes3 o ensambladores4 .
- La única diferencia existente entre cada etapa del proceso es la forma de expresión.
1.5 ARQUITECTURA DE COMPUTADORES

También podría gustarte