Al tener una computadora pensamos que cualquier problema puede ser resulto con ella, pero la realidad es que hay algunos problemas complejos que no se pueden resolver, para esto se debe estudia la teoría de la computación y teoría de la computabilidad antes de intentar resolver algo que a fin de cuentas no se puede con un algoritmo (serie de pasos que ayudan a la resolución de un problema).
La teoría de la computación es una rama de la matemática y la computación que centra su interés en las limitaciones y capacidades fundamentales de las computadoras. Específicamente esta teoría busca modelos matemáticos que formalizan el concepto de hacer un cómputo (cuenta o cálculo) y la clasificación de problemas
En los modelos matemáticos se tiene la Teoría de autómatas
Esta teoría provee modelos matemáticos que formalizan el concepto de computadora o algoritmo de manera suficientemente simplificada y general para que se puedan analizar sus capacidades y limitaciones. Ejemplo de capacidades son: procesamiento de texto, compiladores, diseño de hardware e inteligencia artificial.
Los tres principales modelos son:
Autómatas finitos.- Son buenos modelos de computadoras que tienen una cantidad limitada de memoria.
Autómatas con pila.- Modelan los que tienen gran cantidad de memoria pero que solo pueden manipularla a manera de pila (el último dato almacenado es el siguiente leído).
Máquinas de Turing.- Modelan las computadoras que tienen una gran cantidad de memoria almacenada en una cinta. Estos autómatas están estrechamente relacionados con la teoría de lenguajes formales.
Teoría de la computabilidad
Esta teoría explora los límites de la posibilidad de solucionar problemas mediante algoritmos. Gran parte de las ciencias computacionales están dedicadas a resolver problemas de forma algorítmica, de manera que el descubrimiento de problemas imposibles es una gran sorpresa. La teoría de la computabilidad es útil para no tratar de resolver algorítmicamente estos problemas, ahorrando así tiempo y esfuerzo.
Los problemas en la teoría de la computabilidad se clasifican en:
-Los computables.- son aquellos para los cuales sí existe un algoritmo que siempre los resuelve cuando hay una solución y además es capaz de distinguir los casos que no la tienen.
-Los semicomputables.- son aquellos para los cuales hay un algoritmo que es capaz encontrar una solución si es que existe, pero ningún algoritmo que determine cuando la solución no existe.
-Los incomputables.- son aquellos para los cuales no hay ningún algoritmo que los pueda resolver, no importando que tengan o no solución. El ejemplo clásico por excelencia es el problema de la implicación lógica, que consiste en determinar cuándo una proposición lógica es un teorema; para este problema no hay ningún algoritmo que en todos los casos pueda distinguir si una proposición o su negación es un teorema.
Información sobre tecnologías de la información, notas curiosas, software, hardware, consejos, recomendaciones en el uso de sistemas, y temas varios de tecnología
Mostrando entradas con la etiqueta problema. Mostrar todas las entradas
Mostrando entradas con la etiqueta problema. Mostrar todas las entradas
jueves, 10 de marzo de 2011
domingo, 6 de marzo de 2011
¿Qué es la abstracción?
La abstracción, una de las herramientas que más nos ayuda a la hora de solucionar un problema, es un mecanismo fundamental para la comprensión de problemas y fenómenos con una gran cantidad de detalles, su idea principal consiste en manejar un problema, fenómeno, objeto, tema o idea como un concepto general, sin considerar la gran cantidad de detalles que estos puedan tener.
De modo general podemos decir que la abstracción permite establecer un nivel jerárquico en el estudio de los fenómenos, el cual se establece por niveles sucesivos de detalles. Generalmente, se sigue un sentido descendente de detalles, desde los niveles más generales a los niveles más concretos.
Por ejemplo: los lenguajes de programación permiten al programador abstraerse del sin fin de detalles del lenguaje de la computadora (ceros y unos). Otro ejemplo, la memoria de la computadora es una estructura unidimensional formada por celdas y sin embargo trabajamos como si fuera única.
La abstracción nos brinda la posibilidad de ir definiendo una serie de refinamientos sucesivos refiriéndose a la estrategia que se utiliza para descomponer un problema en subproblemas. Conforme evoluciona el diseño de software a cada nivel de módulos se representa un refinamiento en el nivel de abstracción. Esto es, incluir detalles que fueron obviados en un nivel superior, en un nivel más bajo de la jerarquía.
En resumen la abstracción oculta la forma en que pensamos al resolver un problema, presentado solamente la parte general para resolverlo, si pudiéramos entrar al cerebro de diferentes personas al resolver un problema encontraríamos muchas maneras para llegar a esa solución, lo que nos importa es la solución sin entrar en tantos detalles.
De modo general podemos decir que la abstracción permite establecer un nivel jerárquico en el estudio de los fenómenos, el cual se establece por niveles sucesivos de detalles. Generalmente, se sigue un sentido descendente de detalles, desde los niveles más generales a los niveles más concretos.
Por ejemplo: los lenguajes de programación permiten al programador abstraerse del sin fin de detalles del lenguaje de la computadora (ceros y unos). Otro ejemplo, la memoria de la computadora es una estructura unidimensional formada por celdas y sin embargo trabajamos como si fuera única.
La abstracción nos brinda la posibilidad de ir definiendo una serie de refinamientos sucesivos refiriéndose a la estrategia que se utiliza para descomponer un problema en subproblemas. Conforme evoluciona el diseño de software a cada nivel de módulos se representa un refinamiento en el nivel de abstracción. Esto es, incluir detalles que fueron obviados en un nivel superior, en un nivel más bajo de la jerarquía.
En resumen la abstracción oculta la forma en que pensamos al resolver un problema, presentado solamente la parte general para resolverlo, si pudiéramos entrar al cerebro de diferentes personas al resolver un problema encontraríamos muchas maneras para llegar a esa solución, lo que nos importa es la solución sin entrar en tantos detalles.
Suscribirse a:
Entradas (Atom)


