You are on page 1of 25

Teoría de la computación

José A. Rodríguez Melquiades

Clase TeoComp 1
Introducción:
Ciencia de la computación
¿Qué es ciencia ?

Ciencia se refiere a la pluralidad de las diferentes ciencias.


1) Ciencias matemáticas.
2) Ciencias biológicas.

Diferentes ciencias difieren una de la otra. Por ello la definición


de ciencia no es simple.
Ciencia clásica:
Lógica

Matemática

Ciencias naturales
(física, química, biología, …)

Ciencias sociales
(economía, sociología, antropología,
…)

Humanidades
(filosofía, historia, lingüística, …)

Cultura
(religión, arte, …)
Por tanto, las ciencias tienen áreas especificas.

La lógica y matemática (la mas abstracta y exacta) son mas o


menos importante para cada una de las otras ciencias.

El razonamiento lógico como base de todo el conocimiento


humano esta presente en cada tipo de ciencia, así como en la
filosofía.
Tres grupos principales de ciencias:
1. Lógica y matemática.
2. Ciencias naturales.
3. Ciencias sociales.

así como las conexiones a través de los


sistemas representado por las
humanidades.

Todo el conocimiento humano, científico y especulativo esta


inmerso dentro del ambiente cultural.
Ciencia de la computación

Según como lo define la teoría de la ciencia, no es obvio que


la ciencia de la computación califique como CIENCIA en un
sentido tradicional.

La ciencia de la computación es una disciplina joven


que empezó en la matemática.

Las ciencias clásicas tuvieron su origen en la


filosofía de la antigua Grecia.
Estudiar ciencia de la computación requiere usar conceptos de
diferentes campos, pues integra teoría y practica, abstracción
(general) y diseño (especifico).

Como toda ciencia, la ciencia de la computación tiene sus


fundamentos.

Ciencia de la computación

Arquitectura Diseño y
de análisis de Informática
computadores algoritmos teórica
The science of algorithms

Conditions such as limited data storage capabilities, time-


consuming programming procedures restricted the complexity of
the algorithms utilized in early computing machines.

However, as these limitations began to disappear, machines


were applied to increasingly larger and more complex tasks. As
attempts to express the composition of these tasks in
algorithmic form began to tax the abilities of the human mind,
more and more research efforts were directed toward the study
of algorithms and the programming process.
It was in this context that the theoretical work of
mathematicians began to pay dividends. As a consequence of
Godel’s incompleteness theorem, mathematicians had already
been investigating those questions regarding algorithmic
processes that advancing technology was now raising. With
that, the stage was set for the emergence of a new discipline
known as computer science.

Today, computer science has established itself as the science


of algorithms. The scope of this science is broad, drawing from
such diverse subjects as mathematics, engineering,
psychology, biology, business administration, and linguistics.
Indeed, researchers in different branches of computer science
may have very distinct definitions of the science.
Example:

1. A researcher in the field of computer architecture may focus on


the task of miniaturizing circuitry and thus view computer
science as the advancement and application of technology.

2. A researcher in the field of database systems may see


computer science as seeking ways to make information
systems more useful.

3. A researcher in the field of artificial intelligence may regard


computer science as the study of intelligence and intelligent
behavior.
Thus, an introduction to computer science must include a variety
of topics.
We our study with Theory of Computation by investigating the theoretical
foundations of computer science—a subject that allows us to understand
the limitations of algorithms (and thus machines). Here we identify some
problems that cannot be solved algorithmically (and therefore lie beyond
the capabilities of machines) as well as learn that the solutions to many
other problems require such enormous time or space that they are also
unsolvable from a practical perspective.

Thus, it is through this study that we are able to grasp the scope and
limitations of algorithmic systems.
Informática teórica

Conjunto de tópicos de ciencia de la computación, cuyo


estudio abstracto considera aspectos matemáticos y lógicos de
la computación.

❖ Teoría de la computación.

❖ Análisis de algoritmos.
La Association Computing Machinery afirma:

"The field of theoretical computer science is interpreted broadly so as to include:


algorithms, Data structures,
computational complexity theory, Distributed computation,
parallel computation, VLSI,
machine learning, Computational biology,
computational geometry, information theory,
cryptography, quantum computation,
computational number theory and algebra,
program semantics and verification, automata theory,

Work in this field is often distinguished by its emphasis on mathematical technique


and rigor."
Áreas de la teoría de la
computación
Tres áreas centrales de la teoría de la computación son:

Autómatas, computabilidad y complejidad

Estas áreas se relacionan entre si.

¿Cuáles son las capacidades y las


limitaciones de los computadores?

Esto empezó antes de los años 1930, cuando los matemáticos


especializados en lógica empezaron a investigar el significado de
computación.
Teoria de la complejidad

◼ Los problemas computaciones son muy variados, algunos son fáciles


de resolver y otros son difíciles.
 Problemas fáciles: P
 Problema de ordenación, busca, producto de matrices, etc.
 Problemas difíciles: NP
 Problemas de horarios (schedule), agente viajero (salesman
problem), ruteo de vehículos (vehicle routing problem).

¿Qué es lo que hace que ciertos problemas sean


computacionalmente fáciles y otros difíciles?

A pesar de haberse investigado, aun no existe respuesta concreta.


En la teoría de la complejidad, los investigadores han descubierto
una forma de clasificar los problemas de acuerdo con su dificultad
computacional.

Con esta forma de clasificar, se puede demostrar un método que


permita establecer la dificultad computacional.

Un campo de aplicación que ha sido afectado por la teoría de


complejidad, es la criptografía.

En criptografía se requiere que los problemas computacionales


sean difíciles, pues los textos encriptados deben ser difíciles de ser
quebrados.
Teoría de la computabilidad

◼ Los matemáticos Kurt Gödel, Alan Turing y Alonzo Church


descubrieron que ciertos problemas no pueden ser solucionados por
el computador.

◼ Ejemplo:
 Problema de determinar cuando una afirmación matemática es
verdadero o falso.

Parece natural solucionar una afirmación pues está en el contexto de


la matemática. Sin embargo, un algoritmo no podría solucionarlo.
La consecuencia de este descubrimiento fue el desarrollo de ideas
relacionados con los modelos teóricos para los computadores.

Las teorías de computabilidad tiene por objetivo clasificar los


problemas que tienen y no tienen solución.
❑ Problema de parada en máquina de Turing no tiene solución.
Teoría de autómatas

◼ Esta relacionado con las definiciones y propiedades de los modelos


matemáticos para la computación.

◼ Los modelos matemáticos son importantes en las áreas aplicadas de


la ciencia de la computación.

◼ Los modelos son:


 Autómata finito: Usado en procesadores de texto, compiladores y diseño
de hardware.

 Gramática libre del contexto: Usado en los lenguajes de programación e


inteligencia artificial.
En resumen:

La teoría de autómatas es el inicio para el estudio de la teoría de


la computación, ya que permite introducir conceptos relevantes
a otras áreas no teóricas de la ciencia de la computación.

Las teorías de computabilidad y complejidad requiere la


definición precisa del computador.

You might also like