En las matemáticas, que computa, lingüística, y disciplinas relacionadas, un algoritmo es una lista definida de instrucciones bien definidas para terminar una tarea; eso dado un estado inicial, procederá con una serie bien definida de estados sucesivos, terminando eventual en un fin-estado. La transición a partir de un estado al siguiente no es necesario el determinista; algunos algoritmos, conocidos como algoritmos de probabilidad, aleatoriedad incorporada.
El concepto de un algoritmo originó como medio para los procedimientos de la grabación para solucionar problemas matemáticos tales como encontrar el divisor común de dos números o multiplicar dos números. Una formalización parcial del concepto comenzó con tentativas de solucionar el Entscheidungsproblem (el " problem" de la decisión;) ese David Hilbert presentó en 1928. Las formalizaciones subsecuentes fueron enmarcadas como tentativas de definir el " " eficaz del calculability ; (1943:274 de Kleene de los cf) o " method" eficaz; (1939:225 de Rosser de los cf); esas formalizaciones incluyeron las funciones recurrentes de Gödel-Herbrand-Kleene de 1930, 1934 y 1935, " de s del poste Emilio de la iglesia de Alonzo 'el cálculo de la lambda de s de 1936, '; Formulación I" máquinas de Turing de s de 1936, y de Turing Alan de las 'de 1936-7 y 1939.
Ninguna definición formal del generalmente aceptado del " algorithm" existe todavía. Podemos, sin embargo, derivar pistas a las ediciones implicadas y un significado informal de la palabra de la cita siguiente de Boolos y de Jeffrey (1974, 1999):
"NinguÌn ser humano puede escribir rápidamente bastante, o bastante tiempo, o bastante pequeño enumerar a todos los miembros de un sistema enumerably infinito poniendo sus nombres en escrito, uno tras otro, en alguna notación. Pero los seres humanos pueden hacer algo igualmente útil, en el caso de ciertos sistemas enumerably infinitos: Pueden dar a las instrucciones explícitas para determinar al nth miembro del sistema, para el N. Tales instrucciones deben ser dadas absolutamente explícitamente, en una forma en qué podrían ser seguidas por una máquina de computación, o por un ser humano del que es capaz de realizar solamente operaciones muy elementales en " de los símbolos ; (negrilla agregada, P.
El " de las palabras; enumerably infinite" " malo; contable usar los números enteros quizás que extienden al infinity". Así Boolos y Jeffrey están diciendo que un del algoritmo implica las instrucciones de para un proceso que " creates" hacer salir los números enteros de un " arbitrario del ; input" número entero o números enteros que, en teoría, se pueden elegir a partir de la 0 al infinito. Así puede ser que esperemos que un algoritmo sea una ecuación algebraica tal como y = m + n - " arbitrario dos; variables" de la entrada; m y n que producen un y de la salida. Como vemos en las caracterizaciones del algoritmo - el algoritmo de la palabra implica mucho más que esto, algo en la orden de (por nuestro ejemplo de la adición): instrucciones exactas del (en la lengua entendida por el " el computer") para un " rápido, eficiente, good" de proceso que especifica el " moves" del " el computer" (máquina o ser humano, equipado de la información y las capacidades interno-contenidas necesarias) para encontrar, descifrar, y después mascar el arbitrario m de los números enteros/de los símbolos de la entrada y el n, el de los símbolos + y = … y (confiablemente, correctamente, " effectively") producto, en un " reasonable" Tiempo, y del salida-número entero en un lugar especificado y en un formato especificado.
¡ El concepto del algoritmo del también se utiliza para definir la noción de la decidibilidad (lógica) . Esa noción es central para explicar cómo los sistemas formales entran en ser a partir de un pequeño sistema de los axiomas y de las reglas. En la lógica, el tiempo que un algoritmo requiere para terminar no puede ser medido, pues no se relaciona al parecer con nuestra dimensión física acostumbrada. De tales incertidumbres, eso caracteriza el trabajo en curso, vástagos la indisponibilidad de una definición del algoritmo del que se adapta al uso concreto (en un cierto sentido) y abstracto del término.
l para una presentación detallada de los varios puntos de vista alrededor de la definición del " algorithm" ver las caracterizaciones del algoritmo. Por ejemplos de los algoritmos simples de la adición especificados en la manera detallada descrita en las caracterizaciones del algoritmo, ver los ejemplos del algoritmo.
"… La discusión informal de Turing a favor de su tesis justifica una tesis más fuerte: cada algoritmo se puede simular por un machine" de Turing; (Gurevich 2000: 1)… según el salvaje, " un algoritmo es un proceso de cómputo definido por un Turing machine." (Gurevich 2000: 3)
Típicamente, cuando un algoritmo se asocia a la información de proceso, los datos se leen en una fuente o un dispositivo de entrada, se escriben a un fregadero o a un dispositivo de la salida, y/o se almacenan para la transformación posterior. Los datos almacenados se miran como parte del estado interno de la entidad que realiza el algoritmo. En la práctica, el estado se almacena en una estructura de datos, pero un algoritmo requiere los datos internos solamente para los sistemas de operación específicos llamados los tipos de datos abstractos
Para cualquier proceso de cómputo, el algoritmo debe riguroso ser definido: especificado en la manera se aplica en todas las circunstancias posibles que podrían presentarse. Es decir, cualquier paso condicional se debe tratar sistemáticamente de, para cada caso particular; los criterios para cada caso deben ser claros (y computables).
Porque un algoritmo es una lista exacta de pasos exactos, la orden del cómputo será casi siempre crítica al funcionamiento del algoritmo. Las instrucciones se asumen generalmente de ser enumerado explícitamente, y se describen como comenzar el " del top" y " que va; abajo al bottom", una idea que es descrita más formalmente por el flujo del control .
Hasta ahora, esta discusión de la formalización de un algoritmo ha asumido las premisas programado imprescindible. Éste es el concepto más común, e intenta describir una tarea en discreto, " mechanical" medios. Única a este concepto de algoritmos formalizados es la operación de la asignación, fijando el valor de una variable. Deriva de la intuición del " " de la memoria ; como cuadernillo de apuntes. Hay un ejemplo abajo de tal asignación.
Para algunos conceptos alternos de qué constituyen un algoritmo ver la programación funcional y la programación de lógica .
Minsky hace la observación pertinente, en vista de la determinación de si un algoritmo terminará eventual (de un estado que comienza particular): " del ; Pero si la longitud del proceso no se sabe por adelantado, después “intentarlo” puede no ser decisivo, porque si se enciende el proceso por siempre - entonces estaremos nunca nunca seguros del answer" (1967:105 de Minsky)
Mientras que sucede, ninguÌn otro método puede hacer para mejorar, al igual que fue demostrado por el Alan Turing con su resultado celebrado en el undecidability del problema el parar supuesto. No hay procedimiento algorítmico para determinar de algoritmos arbitrarios independientemente de si terminan de estados que comienzan dados. El análisis de los algoritmos para su probabilidad de la terminación se llama el análisis de la terminación.
En el caso de no-parar el éxito del método del cómputo (procedimiento del cálculo) se puede definir no más en términos de que para con una salida significativa. En lugar, los términos del éxito que permiten ilimitado hacer salir secuencias deben ser definidos. Por ejemplo, un algoritmo que verifica si hay más ceros que unos en una secuencia binaria al azar infinita debe funcionar por siempre para ser eficaz. Si se ejecuta correctamente, sin embargo, la salida del algoritmo será útil: para mientras examine la secuencia, el algoritmo dará una respuesta positiva mientras que el número de ceros examinados excede en número los, y una respuesta negativa de otra manera. El éxito para este algoritmo se podría entonces definir como eventual haciendo salir solamente respuestas positivas si hay realmente más ceros que unos en la secuencia, y en cualquier otro caso que hacía salir cualquier mezcla de respuestas positivas y negativas.
Ver los ejemplos del " (del im-); proper" substracción en la función parcial para más sobre qué puede suceder cuando un algoritmo falla para seguro de sus números de la entrada - e., (i) no-terminación, (ii) producción de " junk" (salida en el formato incorrecto que se considerará un número) o ningunos números en absoluto (el alto termina el cómputo sin salida), (iii) números incorrectos, o (iv) una combinación de éstos. Kleene propuso que la producción de " junk" o la falta de producir un número es solucionada teniendo el algoritmo detecta estos casos y produce e., un mensaje de error (él sugirió el " 0"), o preferiblemente, forzar el algoritmo en un lazo sin fin (1952:322 de Kleene). Davis hace esto a su algoritmo de la substracción - él fija su algoritmo en un segundo ejemplo de modo que sea substracción apropiada (1958:12 de Davis - 15). Junto con el " lógico de los resultados; true" y " false" Kleene también propone el uso de un tercer " del símbolo lógico; u" - indeciso (1952:326 de Kleene) - así un algoritmo producirá siempre el algo cuando está enfrentado con un " proposition". El problema de respuestas incorrectas se debe solucionar con un " independiente; proof" del algoritmo e., usar la inducción: " del ; Requerimos normalmente la evidencia auxiliar para esto (que el algoritmo defina correctamente una función recurrente de MU), e., bajo la forma de prueba inductiva que, para cada valor de la discusión, el cómputo termine con un value" único; (1967:186 de Minsky)
Hay una gran variedad de representaciones posibles y una puede expresar un programa dado de la máquina de Turing como secuencia de tablas de máquina (véase más en el autómata finito y la tabla de transición de estado ), como organigramas (véase más en el diagrama de estado ), o como una forma del código automático rudimentario o del código de la asamblea llamó el " sistemas de quadruples" (véase más en la máquina de Turing).
Es a veces provechoso en la descripción de un algoritmo complementar el pequeño " charts" del flujo; (diagramas de estado) con de lenguaje natural y/o las expresiones aritméticas escrita el " interior; Quot de bloque diagrama ; para resumir qué el " charts" del flujo; están logrando.
Las representaciones de algoritmos se clasifican generalmente en tres niveles aceptados de descripción de la máquina de Turing (2006:157 de Sipser):
Descripción de alto nivel 1: del
" de ; … prosa para describir un algoritmo, no haciendo caso de los detalles de puesta en práctica. A este nivel no necesitamos mencionar cómo la máquina maneja su cinta o head"
l por un ejemplo del " simple del algoritmo; Agregar m+n" descrito en los tres niveles ver los ejemplos del algoritmo.
Descripción de alto nivel del : de Asumir que el primer artículo es el más grande.
Descripción formal (Quasi-) del : Escrito en prosa pero mucho más cercano al idioma de alto nivel de un programa de computadora, lo que sigue es la codificación más formal del algoritmo en el Pseudocode o el código del Pidgin:
Entrada: Una lista no vacía del L de los números. Salida: El número más grande del del L de la lista. el más grande L 0 del ← del el para cada del artículo del de en el L≥1, de la lista hace si el artículo del > el más grande, entonces el ← más grande del el artículo del de vuelta el más grande del
Para un ejemplo más complejo de un algoritmo, ver el algoritmo de Euclid para el divisor común más grande, uno de los algoritmos más tempranos sabidos.
Diversos algoritmos pueden terminar la misma tarea con un diverso sistema de instrucciones adentro menos o más tiempo, espacio, o esfuerzo que otros. Por ejemplo, dado dos diversas recetas para hacer la ensalada de patata, una puede hacer que el pele la patata antes de la ebullición del la patata mientras que la otra presenta los pasos en la orden reversa, con todo ambos piden estos pasos que se repetirán para todas las patatas y extremo cuando la ensalada de patata está lista para ser comido. ¡
El análisis y el estudio de los algoritmos es una disciplina de informática, y se practica a menudo abstracto sin el uso de un lenguaje de programación específico o de la puesta en práctica. En este sentido, el análisis del algoritmo se asemeja a otras disciplinas matemáticas en que se centra en las características subyacentes del algoritmo y no en los específicos de cualquier puesta en práctica particular. El pseudocode se utiliza generalmente para el análisis pues es la representación más simple y más general.
o iteración : Un algoritmo recurrente es uno que invoca (hace la referencia a) sí mismo en varias ocasiones hasta que cierta condición empareje, que es un método común a la programación funcional . Los algoritmos iterativos utilizan construcciones repetidores como los lazos y las estructuras de datos a veces adicionales como apilan para solucionar los problemas dados. Algunos problemas se adaptan naturalmente para una puesta en práctica o la otra. Por ejemplo, las torres de Hanoi se entienden bien en la puesta en práctica recurrente. Cada versión recurrente tiene (pero posiblemente más o menos complejo) una versión iterativa equivalente, y viceversa.
: Un algoritmo se puede ver como deducción lógica controlado. Esta noción se puede expresar como: algoritmo = lógica + control de
o el paralelo o el distribuyeron : Los algoritmos se discuten generalmente con la asunción que las computadoras ejecutan una instrucción de un algoritmo a la vez. Esas computadoras a veces se llaman las computadoras seriales. Un algoritmo diseñó para tal ambiente se llama un algoritmo serial, en comparación con los algoritmos paralelos o los algoritmos distribuidos . Los algoritmos paralelos se aprovechan de las arquitecturas de computadora donde varios procesadores pueden trabajar en un problema al mismo tiempo, mientras que los algoritmos distribuidos utilizan las máquinas múltiples conectadas con una red . El paralelo o los algoritmos distribuidos divide el problema en subproblemas más simétricos o más asimétricos y recoge los resultados detrás juntos. La consumición del recurso en tales algoritmos es no sólo ciclos del procesador en cada procesador pero también la comunicación de arriba entre los procesadores. Los algoritmos de clasificación se pueden hacer parelelismo eficientemente, pero sus gastos indirectos de la comunicación son costosos. Los algoritmos iterativos son generalmente paralelizables. Algunos problemas no tienen ninguÌn algoritmo paralelo, y se llaman los problemas intrínsecamente seriales.
determinista del
o no determinista: Los algoritmos deterministas solucionan el problema con la decisión exacta en cada paso del algoritmo mientras que el algoritmo no determinista soluciona problemas vía conjeturar aunque las conjeturas típicas se hagan más exactas con el uso de la heurística .
exacto del
o aproximado: Mientras que muchos algoritmos alcanzan una solución exacta, búsqueda de los algoritmos de la aproximación una aproximación que está cercana a la solución verdadera. La aproximación puede utilizar una estrategia determinista o al azar. Tales algoritmos tienen valor práctico para muchos problemas duros.
y conquista . Una divisoria y conquista el algoritmo reduce en varias ocasiones un caso de un problema a uno o más casos más pequeños del mismo problema (generalmente recurrentemente ), hasta que los casos sean bastante pequeños solucionar fácilmente. Un tal ejemplo de la divisoria y conquista es la clasificación de fusión . La clasificación se puede hacer en cada segmento de datos después de dividir datos en segmentos y la clasificación de datos enteros se puede obtener adentro conquista fase combinándolos. Una variante más simple de la divisoria y conquista se llama disminución del y conquista el algoritmo, ésa soluciona un subproblema idéntico y utiliza la solución de este subproblema para solucionar el problema más grande. Dividir y conquistar las divisorias el problema en subproblemas múltiples y así que conquistar la etapa será más complejo que y conquistan algoritmos. Un ejemplo de la disminución y conquista algoritmo es el algoritmo de búsqueda binaria .
programación dinámica del . Cuando un problema demuestra a la subestructura óptima, significar la solución óptima a un problema se puede construir de soluciones óptimas a los subproblemas, y los subproblemas traslapados, significando los mismos subproblemas se utilizan para solucionar muchos diversos casos del problema, un acercamiento más rápido llamado que la programación dinámica evita recomputing las soluciones que se han computado ya. Por ejemplo, el Shortest-Path a una meta de una cima en un gráfico cargado puede ser encontrado usando el Shortest-Path a la meta de todas las cimas adyacentes. La programación dinámica y el Memoization van juntos. La diferencia principal entre la programación dinámica y la divisoria y conquista es que los subproblemas están más o menos independiente en divisoria y conquistan, mientras que los subproblemas se traslapan en la programación dinámica. La diferencia entre la programación dinámica y la repetición directa está en la puesta en antememoria o el memoization de llamadas recurrentes. Cuando los subproblemas son independientes y no hay repetición, el memoization no ayuda; por lo tanto la programación dinámica no es una solución para todos los problemas complejos. Usando el memoization o manteniendo una tabla de subproblemas solucionados ya, la programación dinámica reduce la naturaleza exponencial de muchos problemas a la complejidad polinómica.
el método codicioso . Un algoritmo codicioso es similar a un algoritmo de la programación dinámica, pero la diferencia es que las soluciones a los subproblemas no tienen que ser sabidas en cada etapa; en lugar un " greedy" la decisión puede ser tomada de qué parece la mejor por el momento. El método codicioso extiende la solución con la decisión mejor (no todas las decisiones factibles) en una etapa algorítmica basada en el grado óptimo local actual y la mejor decisión (no todas las decisiones posibles) tomada en etapa anterior. No es exhaustivo, y no da respuesta exacta a muchos problemas. Pero cuando trabaja, será el método más rápido. El algoritmo codicioso más popular está encontrando atravesar mínimo - árbol según lo dado por el Kruskal .
Programación linear . Al solucionar un problema usar la programación linear, las desigualdades específicas que implican las entradas se encuentran y entonces una tentativa se hace de maximizar (o reducir al mínimo) una cierta función linear de las entradas. Muchos problemas (tales como el flujo máximo para el dirigido representa gráficamente) se pueden indicar de una manera de la programación linear, y después sean solucionados por un algoritmo “genérico” tal como el algoritmo a una cara . Una variante más compleja de la programación linear se llama programación de número entero, donde el espacio de solución se restringe a los números enteros .
reducción del . Esta técnica implica el solucionar de un problema difícil transformándolo en un problema más conocido para el cual tengamos (esperanzadamente) algoritmos óptimos asintótico . La meta es encontrar un algoritmo de reducción cuya complejidad no sea dominado por el algoritmo reducido resultante. Por ejemplo, un algoritmo de la selección para encontrar el punto medio en una lista sin clasificar implica primero el clasificar de la lista (la porción costosa) y en seguida el sacar del elemento medio en la lista clasificada (la porción barata). Esta técnica también se sabe mientras que el transforma y conquista .
Búsqueda y enumeración . Muchos problemas (tales como jugar al ajedrez ) pueden ser modelados mientras que los problemas en representan gráficamente. Un algoritmo de la exploración del gráfico especifica las reglas para mover alrededor un gráfico y es útil para tales problemas. Esta categoría también incluye la rama de los algoritmos de búsqueda y la enumeración de y la vuelta hacia atrás encuadernadas .
el paradigma de probabilidad y heurístico . Los algoritmos que pertenecían a esta clase cupieron la definición de un algoritmo más libremente. los algoritmos de probabilidad de son los que toman algunas decisiones aleatoriamente (o pseudo-al azar); para algunos problemas, puede de hecho ser probado que las soluciones más rápidas deben implicar una cierta aleatoriedad .
considera también: Lista de
los algoritmos Cada campo de la ciencia tiene sus propios problemas y necesita algoritmos eficientes. Los problemas relacionados en un campo se estudian a menudo juntos. Algunas clases del ejemplo son los algoritmos numéricos de los algoritmos de la fusión de los algoritmos de clasificación de los algoritmos de búsqueda, los algoritmos de gráfico, los algoritmos de la secuencia, los algoritmos geométricos de cómputo, los algoritmos combinatorios, el aprendizaje de máquina, la criptografía, los algoritmos y las técnicas de la compresión de datos del análisis.
Los campos tienden a traslaparse con uno a, y los avances del algoritmo en un campo pueden mejorar los de otro, a veces totalmente sin relación, campos. Por ejemplo, la programación dinámica fue inventada original para la optimización de la consumición del recurso en industria, pero ahora se utiliza en solucionar una gama amplia de problemas en muchos campos.
Los algoritmos, solo, no son generalmente patentables. En el Estados Unidos, una demanda que consiste solamente en manipulaciones simples de conceptos abstractos, números, o señales no constituir el " processes" (USPTO 2006) y por lo tanto los algoritmos no son patentables (como en el Gottschalk v. Sin embargo, los usos prácticos de algoritmos son a veces patentables. Por ejemplo, en el diamante v. Diehr, el uso de un algoritmo simple de la regeneración a ayudar en el curado del caucho sintético era juzgado patentable. El patentar del software es alto polémico, y hay alto patentes criticadas que implican los algoritmos, especialmente algoritmos de la compresión de datos, tales como patente LZW de Unisys '.
Además, algunos algoritmos criptográficos tienen limitaciones de exportación (véase la exportación de la criptografía ).
considera también: Cronología los algoritmos El algoritmo del de la palabra viene del nombre del al-Khwarizmi persa de Musa del ibn de Abu Abdullah Mohamed del matemático del siglo IX cuyos trabajos introdujeron números indios y conceptos algebraicos. Él trabajó en el Bagdad cuando era el centro de estudios y del comercio científicos. La algoritmia de la palabra se refirió solamente a las reglas de realizar el aritmético usar los números árabes pero se desarrolló original vía la traducción latina europea de nombre del al-Khwarizmi's en el algoritmo del por el siglo XVIII. La palabra se desarrolló para incluir todos los procedimientos definidos para solucionar problemas o realizar tareas.
Marcar-marcas : Para no perder de vista a sus multitudes, sus sacos de grano y su dinero los ancients utilizaron la correspondencia: la acumulación de piedras o de marcas rasguñó en los palillos, o la fabricación de símbolos discretos en arcilla. Con el uso babilónico y egipcio de marcas y de símbolos, eventual los números romanos y el ábaco se desarrollaron.16-41) las marcas de la cuenta aparecen prominente en la aritmética singular del sistema de numeración usada en la máquina de Turing y cómputos de la máquina del Poste-Turing.
el reloj : La sierra acredita la invención del reloj peso-conducido como “la invención dominante Europa en el Ages" medio;, particularmente la fuga (1984:24 del borde de la sierra) que provee de nosotros la señal y el tock de un reloj mecánico. “La máquina automática exacta” (1984:26 de la sierra) llevó inmediatamente al " " mecánico de los autómatas ; el comenzar en el siglo XIII y finalmente “machines" de cómputo; - el motor de diferencia y motores analíticos de Ada Lovelace (sierra p.204-206) Charles Babbage y de la condesa.
Telar de telar jacquar del, tarjetas de sacador de Hollerith, telegrafía y telefonía - el relais electromecánico : Bell y Newell (1971) indican que el telar de telar jacquar (1801), el precursor a las tarjetas de Hollerith (tarjetas de sacador, 1887), y “las tecnologías de la conmutación del teléfono” eran las raíces de un árbol que llevaba al desarrollo de las primeras computadoras (Bell y Newell diagram P. 39, cf Davis (2000)). Por el mid-1800s el telégrafo, el precursor del teléfono, era funcionando en el mundo entero, su codificación discreta y distinguible de letras como “puntos y rociadas” un sonido común. Por los a fines del 1800 la cinta de teletipo (1870s del Ca) era funcionando, al igual que el uso de las tarjetas de Hollerith en el censo de los 1890 E. Entonces vino el teletipo (Ca 1910) con su uso del perforar-papel del código de Baudot en la cinta.
las redes de la Teléfono-conmutación de los relais electromecánicos (inventado 1835) estaban detrás del trabajo George Stibitz (1937), el inventor del dispositivo de adición digital. Mientras que él trabajó en los laboratorios de Bell, él observó uso “pesado el' de calculadoras mecánicas con los engranajes. " Él fue a casa una tarde en 1937 que se preponía probar su idea…. Cuando el ocuparse vanamente había terminado, Stibitz había construido un device" de adición binario; (Noticias del valle, P.
Davis (2000) observa la importancia particular del relais electromecánico (con su " dos; states" binario; abierto y cerrado): estaba solamente con el desarrollo, comenzando en los años 30, de calculadoras electromecánicas usar los relais eléctricos, que las máquinas fueron construidas teniendo el alcance Babbage tenían envisioned. 148)
Pero Heijenoort da a Frege (1879) estas alabanzas: Frege es " quizás el más importantes escogen el trabajo escrito nunca en lógica. … en cuál vemos un " la “lengua de la fórmula”, eso es un characterica, una lengua escrita con símbolos especiales, " de la lengua del ; para el thought" puro;, es decir, libre de adornos retóricos… construyó de los símbolos específicos que se manipulan según rules" definido; (van Heijenoort: 1). El trabajo de Frege fue simplificado y amplificado más a fondo por el Alfred Whitehead del norte y el Bertrand Russell en su Principia Mathematica (1910-1913).
las paradojas : Al mismo tiempo un número de paradojas que disturbaban aparecieron en la literatura, particularmente la paradoja (1897) de Burali-Forti, la paradoja (1902-03) de Russell, y la paradoja (1905, Dixon 1906) de Richard, (el 1952:36 de Kleene de los cf - 40). Las consideraciones resultantes llevadas papel de s de Gödel Kurt a el' (1931) - él cita específicamente la paradoja del mentiroso - que reduce totalmente reglas de la repetición a los números.
Calculability eficaz : En un esfuerzo para solucionar el Entscheidungsproblem definido exacto por Hilbert en 1928, los matemáticos primero fijaron alrededor para definir qué fue significada por un " method" eficaz; o " calculation" eficaz; o " calculability" eficaz; (es decir, un cálculo que tendría éxito). En la sucesión rápida el siguiente aparecido: Iglesia de Alonzo, Stephen Kleene y λ-cálculo (nota al pie de la página de s de Rosser J. 'de los cf en la iglesia 1936a de Alonzo: 90, 1936b: 110), una definición fino-afilada con piedra del " recursion" general; del trabajo de Gödel que actúa en sugerencias Jacques Herbrand (conferencias de Princeton de Gödel de los cf de 1934) y simplificaciones subsecuentes de Kleene (1935-6: 237ff, 1943:255 FF), prueba de la iglesia (1936:88 FF de la iglesia) que el Entscheidungsproblem era insoluble, definición de s del poste Emilio 'del calculability eficaz como trabajador despreocupado después de una lista de instrucciones de mover izquierdo o derecho con una secuencia de cuartos y mientras que allí o marca o borran un papel u observan el papel y toman una decisión sí-no sobre la instrucción siguiente (cf su " Formulación I" 1936:289 - 290), prueba de s de Turing Alan 'de eso el Entscheidungsproblem eran insolubles por medio de su " un machine" (Turing 1936-7: 116ff) -- en efecto casi idéntico al " del poste; formulation", definición de s de Rosser Barkley J. 'del " method" eficaz; en términos de " un machine" (1939:226 de Rosser), oferta de s de Kleene C. 'de un precursor al " " de la tesis de la iglesia; que él llamó el " Tesis I" (1943:273 de Kleene - 274)), y algunos años más tarde Kleene que retitula su " de la tesis; Thesis" de la iglesia; (1952:300 de Kleene, 317) y proponiendo el " Thesis" de Turing; (1952:376 de Kleene).
Aquí está una coincidencia notable de dos hombres que no se conocen sino que describen un proceso de las hombre-como-computadoras que trabajan en cómputos - y rinden definiciones virtualmente idénticas.
El poste (1936) de Emilio describió las acciones de un " computer" (ser humano) como sigue: " del ; … dos conceptos están implicados: el de un espacio del símbolo del en el cual el trabajo que lleva de problema para contestar debe ser realizado, y un sistema inalterable fijo del de las direcciones .
Su espacio del símbolo sería " del ; una secuencia infinita de dos vías de espacios o de cajas… El disolvente o el trabajador de problema debe moverse y trabajar en este espacio del símbolo, siendo capaz de estar adentro, y del funcionamiento en pero una caja a la vez…. una caja es admitir de solamente dos condiciones posibles, es decir, siendo vacío o no marcado, y teniendo una sola marca en ella, decir un movimiento vertical.
"Una caja debe ser seleccionada y llamó el punto de partida. … un problema específico debe ser dado en forma simbólica por un número finito de marcado ENTRADO las cajas con un movimiento. Asimismo la SALIDA de la respuesta debe ser dada en forma simbólica por tal configuración de cajas marcadas….
"Un sistema de direcciones aplicables a un problema general fijó un proceso determinista cuando estaba aplicado a cada problema específico. Este proceso terminará solamente cuando viene a la dirección del tipo (c) STOP. 289-290) ver más en la máquina del Poste-Turing
trabajo de s de Turing Alan el' (1936-1937, 1939:160) precedió el de Stibitz (1937); es desconocido si Stibitz sabía del trabajo de Turing. El biógrafo de Turing creyó que el uso de Turing de un modelo typewriter-like derivó de un interés joven: “Alan había soñado con la invención de las máquinas de escribir como muchacho; Señora Turing tenía una máquina de escribir; y él habría podido comenzar bien por a preguntarse qué fue querida decir con llamar quot del mechanical'& de una máquina de escribir '; (Hodges, P. 96) dado el predominio del código Morse y de la telegrafía, las máquinas de cinta de teletipo, y Teletypes puede ser que conjeturemos que todas eran influencias.
Turing - su modelo del cómputo ahora se llama una máquina de Turing - comienza, al igual que fijar, con un análisis de una computadora humana que él corte abajo a un sistema simple de movimientos y de " básicos; estados del mind". Pero él continúa un paso más lejos y crea una máquina como modelo del cómputo de los números (Turing 1936-7: 116):
"La computación es hecha normalmente escribiendo ciertos símbolos en el papel. Podemos suponer que este papel está dividido en cuadrados como el libro aritmético de un niño….Asumo entonces que el cómputo está realizado en el documento unidimensional, es decir, sobre una cinta dividida en cuadrados. También supondré que el número de símbolos que puedan ser impresos es finito….
"El comportamiento de la computadora en todo momento es determinado por los símbolos que él está observando, y su " estado del mind" en ese momento. Podemos suponer que hay un B encuadernado al número de símbolos o de cuadrados que la computadora pueda observar en un momento. Si él desea observar más, él debe utilizar observaciones sucesivas. También supondremos que el número de estado de ánimo que necesiten ser considerados es… finito
"Imaginémosnos que las operaciones se realizaron por la computadora que se dividirá en las “operaciones simples” que son tan elementales que no es fácil imaginarse las más lejos divided" (Turing 1936-7: 136).
La reducción de Turing rinde el siguiente:
"Las operaciones simples deben por lo tanto incluir: " del ; (a) Cambia del símbolo en uno del " observado del
de los cuadrados; (b) Cambios de uno de los cuadrados observados a otro cuadrado dentro de L cuadrados de uno de los cuadrados previamente observados. " Puede ser que algunos de estos cambio invoquen necesario un cambio del estado de ánimo. La sola operación más general se debe por lo tanto tomar para ser una del siguiente:
"(a) Un cambio posible (a) del símbolo junto con un cambio posible del estado de ánimo. " del
; (b) Un cambio posible (b) de cuadrados observados, junto con un cambio del estado posible del mind"
"Podemos ahora construir una máquina para hacer el trabajo de este computer." ((Turing 1936-7: 136).
Algunos años más adelante, Turing amplió su análisis (tesis, definición) con esta expresión poderosa de él: " del ; Una función reputa el " calculable" del effectivey; si sus valores se pueden encontrar por un cierto proceso puramente mecánico. Aunque sea bastante fácil conseguir un asimiento intuitivo de esta idea, es deseable neverthessless tener más definición expresable definida, matemática… discute la historia de la definición bonita mucho según lo presentado arriba con respecto a Gödel, a Herbrand, a Kleene, iglesia, a Turing y al poste…. Podemos tomar esta declaración literalmente, entendiendo por un proceso puramente mecánico uno que se podría realizar por una máquina. Es posible dar una descripción matemática, en cierta forma normal, de las estructuras de estas máquinas. El desarrollo de estas ideas lleva a la definición del autor de una función computable, y a una identificación del † del computability con calculability eficaz…. " del ; † Utilizaremos el " de la expresión; function" computable; para significar una función calculable por una máquina, y nosotros dejó el " con eficacia calculabile" referir a la idea intuitiva sin la identificación particular con de estos definitions." (1939:160 de Turing). Kleene (1943)
el J. Barkley Rosser definió audazmente un método eficaz del `' de la manera siguiente (negrilla agregada): " del ; El “método eficaz” se utiliza aquí en el sentido algo especial de un método cada paso cuyo es exacto resuelto y que produce seguramente la respuesta en un número finito de pasos. Con este significado especial, tres diversas definiciones exactas se han dado hasta la fecha. nota al pie de la página #5; ver la discusión inmediatamente abajo. El más simple de éstos indicar (debido fijar y Turing) dice esencialmente que existe el un método eficaz de solucionar ciertos sistemas de problemas si uno puede construir una máquina que entonces solucione cualquier problema del sistema sin la intervención humana más allá de insertar la pregunta y (más adelante) de leer la respuesta . Las tres definiciones son equivalentes, así que no importa se utiliza cuál. Por otra parte, el hecho de que los tres sean equivalentes es una discusión muy fuerte para la corrección de cualquier one." (1939:225 de Rosser - 6)
La nota al pie de la página #5 de Rosser se refiere al trabajo (1) de la iglesia y de Kleene y a su definición del λ-definability, particularmente uso de la iglesia de ella en su un problema insoluble de la teoría de número elemental (1936); (2) Herbrand y Gödel y su uso del uso de Gödel de la repetición particularmente en su de papel famoso en formalmente los asuntos de Undecidable de Principia Mathematica y sistemas relacionados I (1931); y (3) Post (1936) y Turing (1936-7) en sus mecanismo-modelos del cómputo. Kleene definido como su " ahora-famoso; Tesis I" conocido como " el " de la tesis de la Iglesia-Turing;. Pero él hizo esto en el contexto siguiente (negrilla en original): " del ; 12. Las teorías algorítmicas … en la determinación de una teoría algorítmica completa, qué lo hacemos son describir un procedimiento, ejecutable para cada sistema de los valores de las variables independientes, que el procedimiento termina necesario y de tal manera que en el resultado poder leer una respuesta definida, " yes" o " no, " a la pregunta, " ¿es el valor del predicado verdad? ” " (1943:273 de Kleene)
.
| Random links: | Organización de la Aviación Civil Internacional | Música de Carnatic | Mickey galés | Centro de la familia | Sumday |