¿Qué es exactamente el cálculo?

20

Sé lo que es la computación en un sentido vago (es lo que hacen las computadoras), pero me gustaría una definición más rigurosa.

Dictionary.comLas definiciones de computación, computación, cálculo y computación son circulares, por lo que no ayuda.

Wikipediadefine el cálculo como "cualquier tipo de cálculo que siga un modelo bien definido". Define el cálculo como "el proceso deliberado que transforma una o más entradas en uno o más resultados, con cambio variable". Pero parece que esta definición incluye muchas acciones como cálculos a pesar de que normalmente no se consideran cálculos.

Por ejemplo, ¿no implicaría esto, digamos, que una bomba explotando es un cálculo, con la entrada siendo el fusible encendido y la salida siendo la explosión?

Entonces, ¿qué es exactamente el cálculo?

Kelmikra
fuente
Esa es una gran pregunta clásica.
Ran G.
Duplicado ?
Raphael
@Raphael Hasta donde yo sé, ¡computación! = Un algoritmo. Sin embargo, quizás la ejecución de un algoritmo sea computación.
Kelmikra
Para mí, "P es computable" == "Hay un algoritmo que resuelve P" (para P algún problema). Sin embargo, esto puede ser el resultado de mi perspectiva TCS.
Raphael
@Raphael Esto pregunta qué es el cálculo, no qué significa que P sea computable.
Kelmikra

Respuestas:

6

Quizás el problema aquí es buscar una definición altamente específica de un concepto muy general. No veo el problema de ver prácticamente todo como un cálculo. Aunque no lo pensamos, todo lo que hacemos es expresable en términos de la Física de las partes componentes, hasta al menos los quarks que zumban. Tenemos la misma situación con el cálculo. Hay entradas, salidas y un proceso (todo lo cual podría ser trivial). Si son interesantes o útiles como cálculos o modelos de cálculo es una pregunta muy diferente.

La definición de trabajo más sólida que tenemos proviene de la (fuerte) Tesis de Church-Turing, que establece que cada posible modelo de computación físicamente realizable no es más poderoso que una Máquina de Turing. Si cree que esto es cierto, entonces, aunque tengamos muchas maneras de expresar las cosas, en última instancia, podemos reducir cada cálculo a una Máquina de Turing, por lo tanto, dar una definición de cálculo como "cualquier cosa que podamos reducir a una Máquina de Turing".

En este modelo, la bomba explosiva es un cálculo. No es ampliamente aplicable (esperamos;)), pero podemos modelar de alguna manera con una máquina de Turing (aunque aquí hay un argumento sobre la naturaleza de la salida y la equivalencia con la salida de la TM). Tampoco es un buen modelo de cómputo en general, ya que parece poco probable que el modelo de bomba en explosión esté Turing completo.

Luke Mathieson
fuente
2
Más bien fuera de tema, ¡pero apuesto a que el modelo de bomba explosiva está completo! Las explosiones podrían desencadenar otras explosiones, que podrían usarse para propagar señales y hacer puertas. La bomba b podría configurarse para explotar en un momento dado a través de un dispositivo, pero una bomba cercana podría desactivar el dispositivo sin hacer que b explote, lo que permite no puertas.
Kelmikra
@ Kyth'Py1k como puertas de dominó? No creo que eso se complete porque no puedes hacer un bucle indefinidamente ya que el "cálculo" siempre se detendrá en función del tamaño de la máquina / campo de minas
Ratchet Freak
1
@ratchetfreak No, a menos que los restos de las bombas se conviertan en bombas nuevas a través de nanobots en ellos y luego se reposicione ...
Kelmikra
4

Esta es la pregunta que Turing se propuso resolver en su famoso artículo de 1936, Sobre números computables, con una aplicación al Entscheidungsproblem , un documento en el que se le ocurre (lo que se conoce como) el modelo de máquina de Turing. Ver en particular la Sección 9.

El trabajo de Turing está en el contexto de números computables . Existen otras nociones de computación apropiadas para computar otros tipos de estructuras, y su estudio forma parte de la teoría de la computación (también conocida como teoría de la recursión).

La principal diferencia entre la noción común de computación y su ejemplo (una bomba explosiva) es la cosa que se está computando. ¿Qué está calculando tu bomba explosiva? Otra diferencia es el medio computacional, pero uno puede imaginar un artilugio mecánico que usa bombas para calcular algo más legítimo.

Otro punto es si las nociones clásicas de computación se aplican a lo que hoy percibimos como computación, es decir, la interacción bidireccional entre la computadora y el usuario. Esta es una crítica común dirigida contra la noción clásica de computabilidad, aunque la interacción se puede modelar utilizando las herramientas de la teoría de la computación (simplemente no es lo que se aprende en clase).

Yuval Filmus
fuente
Por supuesto, una explosión es un cálculo. "Calcula" exactamente la transformación unitaria que describe la explosión. Por cierto, muchas veces los físicos que conocí estaban "molestos" cuando dices que (digamos) una puerta cuántica calcula unitaria, en lugar de evolucionarla, o transforma el sistema físico en consecuencia (" la puerta toma un bolígrafo y papel y calcula el unitario "?) :)
Ran G.
Leí la sección nueve de "Sobre números computables, con una aplicación al problema Entscheidungs", pero realmente no pareció ayudar. Aunque no lo leí muy a fondo, parecía estar sentando las bases para las máquinas Turing. ¿Estás diciendo que la computación es algo que se puede modelar como una acción realizada por una máquina de Turing? Si es así, ¿no sería casi todo un cómputo? Por ejemplo, las explosiones de bombas podrían modelarse como una máquina de Turing de modo que las posiciones, la velocidad y los tipos de partículas cuánticas de las partículas circundantes se codifiquen como binarias.
Kelmikra
"¿Qué está siendo calculado por tu bomba explosiva?" Se calcula el cambio en los estados de las partículas que rodean la bomba de acuerdo con las leyes de la física.
Kelmikra
"Otro punto es si las nociones clásicas de computación se aplican a lo que hoy percibimos como computación, es decir, la interacción bidireccional entre la computadora y el usuario". No creo que esto sea lo que se considera computación. Se considera que los robots autónomos realizan cálculos, aunque no necesitan interactuar con los usuarios.
Kelmikra
He aquí una idea: la computación es el proceso de generar resultados para ayudar en la inferencia realizada por optimizadores (por ejemplo, personas y robots). ¿Cómo es eso?
Kelmikra
1

En él de nivel más básico, un cálculo es sólo un mapeo entre un conjunto a un conjunto B . cada x ABxAyBxAx

xxyxy

t=0t=1

En pocas palabras: cualquier mapeo define un cálculo. Cualquier "dispositivo" que transforma una entrada en la salida correspondiente, realiza ("calcula") ese cálculo específico.



(1) podemos extender la discusión a este tipo de cálculos, lo que tendrá sentido cuando piense en funciones que no son recursivas, pero prefiero no ir allí.

Sonó.
fuente
El problema con esta definición es que no corresponde a cómo se usa realmente la palabra "cálculo". Se piensa que las PC están haciendo cálculos, mientras que, por ejemplo, los explosivos no.
Kelmikra
En mi humilde opinión, un mapeo es exactamente lo que no es un cálculo. Creo que confunde la sintaxis y la semántica. Claramente entiendes el mapeo como una relación de entrada-salida, sin importar cómo se defina. Según todos mis libros, eso es semántica. El cálculo es el medio utilizado para obtener realmente la salida correspondiente a alguna entrada a través de una secuencia de pasos. Si bien podría decir que cualquier cálculo define un mapeo (aunque solo sea sintáctico), creo que es incorrecto considerar que un mapeo define un cálculo, a menos que explique cuidadosamente que está entrando en hipercomputación, lo que parece un poco más allá de la pregunta.
babou
Debería aclarar el espíritu de mi respuesta (me doy cuenta de que no está redactada de esa manera): el mapeo en sí no es un cálculo. El proceso de convertir una entrada en una salida es un cálculo de esa asignación específica (función). Lo que intentaba transmitir es que el proceso específico es relevante, cualquier proceso es un cálculo (incluso uno muy abstracto, por ejemplo, un "oráculo").
Ran G.
1

No intentaré definir qué es un cálculo, lo cual fue hecho bastante bien por Luke Mathieson y Yuval Filmus.

Sin embargo, pensar en un dispositivo explosivo como un cálculo me lleva a un problema secundario importante: si la explosión es un cálculo, ¿qué calcula? Aparte de una representación del dispositivo después de que haya explotado.

Lo que pretendo es que podamos definir con bastante precisión lo que consideramos un cálculo, e incluso lo que se puede ver (¿inventado?) Como uno. Podemos describir un cálculo. ¿Pero podemos decir qué es la computación?

La computación, como se define comúnmente, es un juego puramente sintáctico. Es un juego de estructuras físicas que se están transformando de acuerdo con reglas precisas. Dado que nuestra única herramienta (hasta transformaciones estándar) para representar estructuras físicas es, en última instancia, la cadena de símbolos, la computación termina siendo definida como algún tipo de transformaciones formales en cadenas de símbolos. Esto es cierto para las máquinas de Turing, el cálculo lambda, las funciones recursivas parciales y otros modelos menos populares. La palabra cálculo (como en lambda-cálculo) en realidad refleja esta opinión ya que, en latín, los cálculos son pequeñas piedras utilizadas para la representación.

Pero lo que esto no dice es qué significado debe atribuirse a esta sintaxis, lo que representa. Esto es lo poco que creo que entiendo, ya que no soy un especialista en tales problemas (así que verifíqueme). El problema está cubierto por la teoría del modelo .

Dado un sistema formal de representaciones, posiblemente asociado con una lógica (axiomas y reglas de inferencia) o un sistema de computación (reglas de transformación), un modelo de la teoría formal es una estructura matemática con componentes que siguen estas reglas.

El mismo cálculo, o más precisamente la misma descripción de un cálculo, puede tener muchos modelos correspondientes a entidades muy diferentes.

Por ejemplo, un algoritmo GCD describe un cálculo. Pero puede interpretarse en números naturales o en polinomios.

Esto recuerda a Bertrand Russell :

Las matemáticas pueden definirse como el tema en el que nunca sabemos de qué estamos hablando, ni si lo que estamos diciendo es verdad.

La situación es prácticamente la misma para el cálculo. Es un juego formal, donde los movimientos se pueden entender de muchas maneras diferentes. Pero en realidad existen vínculos profundos entre las matemáticas formalmente definidas por los sistemas axiomáticos y la teoría de la computación.

La computación, los algoritmos, se definieron para resolver problemas matemáticos, y muchos de los conceptos modernos fueron pensados ​​por lógicos que intentaban comprender los mecanismos que nos permiten probar teoremas, comenzando por axiomas y aplicando reglas de inferencia.

Por lo tanto, para volver al dispositivo explosivo, ciertamente puede interpretarse como una manipulación de una representación, es decir, como un cálculo. Pero en general es bastante difícil asociarle cualquier otro significado que no sea él mismo.

Sin embargo, esto no siempre es cierto o no lo fue. El principio de la computación analógica se basa en la idea de que se pueden usar diferentes sistemas de representación para los cálculos que están relacionados de alguna manera precisa. Luego podemos calcular con un sistema para tener una idea de lo que calcularía el otro sistema (demasiado difícil de usar para usar, por ejemplo, un universo :) en la configuración correspondiente.

babou
fuente
0

Me gusta responder a este tipo de preguntas sobre terminología en términos etimológicos.

Entonces, la computación proviene de la palabra latina compŭtus que literalmente significa "cálculo".

En idiomas latinos como francés, italiano, español o portugués (entre otros) esta etimología se comparte con "cuento" (una historia) en francés compte / conte en español cuenta / cuento en portugués conta / conto, etc.

Entonces calcular es calcular y contar cómo se realizó este cálculo.

Por lo tanto, diría que el cálculo es el proceso de usar reglas matemáticas y lógicas para procesar una información dada, de modo que se deduce nueva información significativa de los datos originales, haciendo un seguimiento de cómo se generó esta nueva información (procesador, memoria, entrada y salida son los fundamentos involucrados)

Luis Sieira
fuente
En francés, un cuento es "conte", "cuento" en español. Mientras que "compte" es un cálculo, o una factura, "cuenta" en español. No sé si, aunque los homófonos, "compte" y "conte" comparten una etimología común (no "h" afaik), pero esta etimología común parece confirmarse en la web. Entonces, ¿todo este negocio de computabilidad son solo cuentos?
babou
Je l'ai corrigé. Se supone que no debo cometer este tipo de errores, pero todavía no soy tan bueno escribiendo en francés
Luis Sieira
O tal vez los cuentos son solo cálculos. Tomas un montón de personajes con una personalidad dada en algunas condiciones iniciales, y el resto de la historia se calcula
Luis Sieira
"realizar un seguimiento de cómo se generó esta nueva información (procesador, memoria, entrada y salida son los fundamentos involucrados)". ¿No implica esto que algo no es un cómputo a menos que uno haga un seguimiento de su uso de memoria mientras lo hace? Eso no suena bien ...
Kelmikra