¿Cuáles son los primeros artículos de informática que utilizaron la complejidad asintótica del tiempo?


22

¿Cuándo se usó Big O por primera vez en informática y cuándo se convirtió en estándar? La página de Wikipedia sobre esto cita a Knuth, Big Omicron y Big Omega y Big Theta , SIGACT de abril a junio de 1976, pero el comienzo de ese artículo dice

La mayoría de nosotros nos hemos acostumbrado a la idea de usar la notación para representar cualquier función cuya magnitud esté limitada por un tiempo constante f ( n ) , para todos los n grandes .O(f(n))f(n)n

Esta cita indica que la idea y la notación ya eran de uso común.

La página de Wikipedia también cita documentos de matemáticas de finales de 1800 y principios de 1900, pero eso no responde a la pregunta. En particular, escuché a investigadores que estaban en ese entonces (en los años 60 y 70, no a fines del siglo XIX) decir que cuando se utilizó el análisis asintótico por primera vez, algunas personas retrocedieron, diciendo que el tiempo del reloj de pared era una mejor métrica. Sin embargo, nadie con quien he hablado puede citar los documentos específicos que tuvieron retrocesos como este y me gustaría encontrar evidencia que pueda confirmar o negar estas historias.


¿Es la pregunta sobre la notación para el análisis asintótico de funciones, o sobre el uso de la complejidad asintótica del tiempo? Creo que la pregunta es sobre la última, pero la primera oración (y la cita de Knuth) suena como si fuera la primera. O()
ShreevatsaR

2
Por cierto, no es relevante para su pregunta histórica, pero es un punto que no es completamente histórico: Robert Sedgewick en Princeton (quien incidentalmente hizo su doctorado bajo Knuth) ha advertido en múltiples conversaciones contra la notación "O grande" que él llama "teoría de algoritmos" ", prefiriendo en su lugar el" análisis de algoritmos "al estilo Knuth (es decir, con constantes reales). Ver, por ejemplo, estas diapositivas (las primeras 21 diapositivas). Esto no es lo mismo que rechazar el análisis asintótico y recomendar la hora del reloj de pared, pero bueno, más o menos. Y es un punto importante.
ShreevatsaR

Respuestas:


2

con las preguntas de historia, generalmente hay sutiles matices y no es fácil determinar un artículo en particular que introdujo un concepto particular porque tiende a extenderse entre muchos contribuyentes y, a veces, se redescubre de forma independiente cuando las primeras referencias oscuras no necesariamente se difunden (las ideas fundamentales son así) . pero la historia básicamente es algo así: la notación de Landau es un antiguo formalismo matemático (1894 / Bachman) [1] que se importó a CS como un "concepto clave" a principios de los años setenta. a mediados de la década de 1970, esto fue algo aceptado como en su referencia de Knuth y el mismo Knuth estuvo involucrado en la difusión de este concepto.

Curiosamente, su importación en CS probablemente estuvo estrechamente relacionada con las distinciones P vs NP vs Exptime descubiertas a principios de la década de 1970 que fueron muy influyentes / anunciadas en el campo. Fue Cobham / Edmonds quien comenzó a definir la clase P a principios de la década de 1970. [3] Hubo pruebas tempranas sobre Exptime y Expspace por Stockmeyer / Meyer. [2] el teorema de Cook-Levin [4] (1971) mostró la relevancia central del tiempo P vs NP, inmediatamente respaldado por Karp [5] (1972).

Pocklington fue uno de los primeros matemáticos que trabajó en teoría de números pero también al borde de la informática. como en [3] señala:

Sin embargo, HC Pocklington, en un artículo de 1910, [11] [12] analizó dos algoritmos para resolver congruencias cuadráticas, y observó que uno tomó tiempo "proporcional a la potencia del logaritmo del módulo" y lo comparó con uno que tomó tiempo proporcional "al módulo mismo o su raíz cuadrada", por lo que explícitamente establece una distinción entre un algoritmo que se ejecutó en tiempo polinómico versus uno que no lo hizo.

Otro pionero temprano en el análisis de la complejidad de los algoritmos basados ​​en máquinas para la teoría de números, es decir, la factorización, fue Derrick Lehmer, profesor de matemáticas en la Universidad de California, Berkeley, y construyó / analizó "algoritmos" de factorización (implementaciones basadas en tamices) ya en la década de 1920. y es posible que haya descrito algo como la complejidad computacional wrt factoring de manera informal. [6]

otro caso más es una carta de 1956 "perdida" de Godel a von Neumann que habla sobre medidas de complejidad de los pasos f (n) de una máquina para encontrar pruebas de tamaño n . [7]

[1] Historia de notación Big O / wikipedia

[2] Problemas verbales que requieren tiempo exponencial. / Stockmeyer, Meyer (1973)

[3] Historial de clases de tiempo P / wikipedia

[4] Teorema de Cook-Levin / wikipedia

[5] Problemas completos de Karps 21 NP / wikipedia

[6] Máquina de factorización Lehmer / tamiz / wikipedia

[7] Godels perdió carta / RJLipton


44
Esto no parece responder a la pregunta que se hizo. La pregunta era "¿Cuáles son los primeros artículos de informática que usaron big-O?" Una respuesta debe identificar algunos documentos. No veo ningún documento citado aquí que sea candidato para una respuesta a la pregunta. Decir "generalmente hay sutiles matices y no es fácil determinar un artículo en particular" no es realmente una respuesta. Y seguramente hubo un documento que fue primero, tiene que haberlo (según el principio de buen orden), por lo que la pregunta es responsable.
DW
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.