Beruflich Dokumente
Kultur Dokumente
Donald E. KNUTH
Mi forma favorita para describir la informtica es decir que es el estudio de los algoritmos. Un
algoritmo es una secuencia definida precisamente de reglas dice cmo pro duce informacin
de salida especificada de la informacin de entrada dada en un nmero finito de pasos. Una
representacin particular de un algoritmo se llama un programa, al igual que nosotros
utilizamos los "datos" palabra en reposo durante una representacin particular de la
"informacin" [14]. Quizs el descubrimiento ms significativo generado por la llegada de las
computadoras va a llegar a ser que los algoritmos, como objeto de estudio, son
extraordinariamente rica en propiedades interesantes; y, adems, que un punto de vista
algortmico es una manera til de organizar el conocimiento en general. G. E. Forsythe ha
observado que "la pregunta" Qu puede ser automatizado? es una de las filosficas y Prll ms
inspiradoras; ctical preguntas de la civilizacin contempornea "[8].
A partir de estas observaciones podemos concluir que la Informtica debera haber existido
mucho antes de la llegada de los ordenadores. En cierto sentido, lo hizo; el sujeto est
profundamente arraigada en la historia. Por ejemplo, me encontr hace poco interesante para
el estudio de las escrituras antiguas manu, el aprendizaje en qu medida los babilonios de
3500 aos atrs eran los informticos [16]. Pero las computadoras son realmente necesarios
antes de que podamos aprender mucho acerca de las propiedades de los algoritmos geperal;
los seres humanos no son lo suficientemente precisas ni lo suficientemente rpido como para
llevar a cabo cualquiera, pero los procedimientos ms simples. Por lo tanto la riqueza potencial
de los estudios algortmicos no estaba completamente hasta mquinas de computacin de
propsito general llegaron a estar disponibles.
Debo sealar que las mquinas (y los algoritmos) calcular hacer no slo com controversia con
los nmeros; puedan hacer frente a cualquier tipo de informacin, una vez que se representa
de una manera precisa. Solamos decir que una secuencia de smbolos, como un nombre, es
presentada dentro de un ordenador como si fuera un nmero; pero en realidad es ms
correcto decir que un nmero se representa dentro de una computadora como una secuencia
de smbolos.
matik; y en dans, la palabra es Datalogi [21]. Todos estos trminos implican que sabiamente
ofertas de informtica con muchas cosas adems de la solucin de ecuaciones numricas. Sin
embargo, estos nombres hacen hincapi en las "cosas" que manipulan algoritmos (la
informacin o datos), en lugar de los propios algoritmos. Los noruegos de la Universidad de
Oslo han elegido una denominacin algo ms apropiado para la informtica, a saber Software
informtico; su equivalente Ingls, "Procesamiento de Datos" desgraciadamente se ha
utilizado en los Estados Unidos slo en relacin con Busi ness aplicaciones, mientras que
"Tratamiento de la informacin" tiende a connotar solicitu des de la biblioteca. Varias
personas han sugerido el trmino "Ciencia de la Computacin" como superior a "Computer
Science".
Por supuesto, la bsqueda de un nombre perfecto es algo sin sentido, ya que los conceptos
mentir bajo son mucho ms importante que el nombre. Tal vez sea significativo, sin embargo,
que estos otros nombres para toda la informtica de hacer hincapi en el papel de mquinas
de computacin a s mismos, al parecer con el fin de hacer que el campo ms "legtimo" y
respetable. opinin de una mquina de computacin de muchas de las personas es, a lo sumo,
que es un mal necesario: una herramienta difcil de utilizar si fallan otros mtodos. Por qu
debemos dar tanto nfasis a la enseanza de cmo utilizar los ordenadores, si son meras
herramientas valiosas como (por ejemplo) los microscopios electrnicos?
Cientficos de la computacin, a sabiendas de que los ordenadores son ms que esto, por
instinto
Cuando 1 dicen que la informtica es el estudio de algoritmos, 01 a.m. sealar a uno solo de
los "fenmenos que rodean las computadoras", as que la informtica en realidad incluye ms.
1 han hecho hincapi en los algoritmos, ya que son realmente el ncleo central del tema, el
denominador comn que subyace y unifica las diferentes ramas. Puede ocurrir que la
tecnologa se instala algn da abajo, de modo que en, digamos
de una tecnologa tan estable en un futuro prximo, sino todo lo contrario, pero 1 creen que el
estudio de algoritmos seguir siendo difcil e importante, incluso si los otros fenmenos de
ordenadores algn da podran explorarse a fondo.
sobre las computadoras que ahora se estn estudiando activamente por los cientficos de la
computacin, y que son casi matemtica. Pero si limitamos nuestra atencin al estudio de
algoritmos, no es ms que una rama de las matemticas? Despus de todo, los algoritmos se
estudiaron principalmente por los matemticos, si por cualquier persona, antes de los das de
la informtica. Por lo tanto, se podra argumentar que este aspecto central de la informtica es
realmente parte de la matemtica.
Sin embargo, creo que un argumento similar puede hacerse para la tesis de que las
matemticas son una parte de la informtica Por lo tanto, por la definicin de igualdad
conjunto, los sujetos se mostraron igual!; o al menos, por el teorema de Schroder-Bernstein,
seran equipotentes.
culto a establecer lneas de lmite preciso entre disciplinas (vase, por ejemplo, los temas de
"qumica fsica" y "Qumica Fsica"); pero es posible distinguir esencialmente diferentes puntos
de vista entre las matemticas y la informtica.
La siguiente historia verdadera es tal vez la mejor manera de explicar la distincin que tengo
en mente. Hace aos SORNE que haba aprendido solo un teorema matemtico que implicaba
que cualquier dos matrices nxn A y B de enteros tienen una "mayor divisor comn derecha" D.
Esto significa que D es un divisor derecha de A y de B, es decir, A = A'D y B = B 'D para las
matrices de enteros SORNE a' y B '; y que cada r vuelo comn divisor de Bis A y un divisor
derecha de D. Por lo tanto, se pregunt cmo calcular el mayor com
mon divisor derecha de dos matrices dadas. Unos das ms tarde me pas a ser asistir a una
conferencia donde me encontr con el matemtico H. B. Mann, y sent que iba a saber cmo
resolver este problema. Le pregunt, y l saba efectivamente la respuesta correcta; pero fue
la respuesta de un matemtico, no la respuesta de un informtico! l dijo: "Que sea f7l el anillo
de n x n matrices de enteros;! En este anillo, la suma de los dos principales ideales de izquierda
es principal, por lo et d ser tal que
la informtica como un campo de mrito de estudio, tan pronto como se contiene 1000
teoremas de profundidad. Este criterio, obviamente, debe ser cambiado para incluir algoritmos
como
Como las matemticas, la informtica ser un tema que se considera bsica para una
educacin general. Al igual que las matemticas y otras ciencias, ciencias de la computacin
continuar siendo vagamente dividido en dos reas, que podran llamarse "terico" y "aplicar".
Como las matemticas, la informtica ser un poco diferente de las otras ciencias, en el que se
trata de leyes hechas por el hombre que pueden ser probadas, en lugar de las leyes naturales,
que nunca se sabe con certeza. Por lo tanto, los dos sujetos sern como entre s de muchas
maneras. La diferencia est en la materia y las matemticas enfoques para tratar ms o menos
con los teoremas, procesos infinitos, relaciones estticas, y la informtica se trata ms o
menos con los algoritmos, construcciones, finitistas relaciones dinmicas.
Muchos cientficos de la computacin han estado haciendo las matemticas, pero muchos ms
matemticas
Los lingistas crean conocer idiomas, hasta que intentaron explicar los idiomas a los
ordenadores; pronto descubrieron lo mucho que an queda por aprender. Muchas personas
han creado modelos informticos de las cosas, y han descubierto que aprendieron ms
mientras se configura el modelo de realidad, mientras que mirando a la salida del programa
final.
Durante tres aos di un curso de segundo ao en lgebra abstracta, para las matemticas
un enfoque algortmico; que ayuda en la comprensin de los conceptos de todo tipo. 1 creen
que un estudiante que est debidamente capacitado en informtica est aprendiendo algo que
implcitamente ayudar a hacer frente a muchos otros temas; y por lo tanto pronto habr una
buena razn para decir que las grandes productoras de informtica de grado han recibido una
buena educacin general, al igual que ahora creemos que esta debajo de las carreras de
Matemticas graduados. Por otro lado, los cursos de graduacin de hoy en da en la
informtica no cumplen todava con este objetivo; al menos, 1find que muchos estudiantes
graduados que comienza con una licenciatura en ciencias de la computacin han sido
educados manera ms estrecha que 1would similares. los informticos son de ING trabajo del
curso para corregir esta carencia actual, que creen 1 es probablemente debido a un exceso
nfasis en los lenguajes de programacin en lugar de algoritmos.
4. Interacciones SORNE. La informtica ha estado afectando a las matemticas de muchas
maneras, y 1shall tratar de enumerar los buenos aqu. En primer lugar, por supuesto, los
ordenadores
generar datos que sugiere o destruye conjeturas. Por ejemplo, dijo Gauss [10] que primero
pens en el teorema del nmero primo al ver una tabla de los nmeros primos menos de un
milln. En mi propia Ph.D. tesis, 1 fue capaz de resolver una conjetura relativa infinitamente
muchos casos mirando de cerca clculos por ordenador del caso ms pequea [13]. Un
ejemplo de otro tipo es el progreso reciente Marshall Hall 's en la determinacin de ali grupos
simples rdenes de hasta un milln.
En segundo lugar, hay conexiones evidentes entre la informtica y la mathe mtica en las reas
de anlisis numrico [30], la lgica y la teora de nmeros; 1 No es necesario insistir en estos
aqu, ya que estn tan ampliamente conocidos. Sin embargo, hay que mencionar 1
especialmente el trabajo de D. H. Lehmer, que ha combinado con la computacin matemtica
clsica en Severa! de una manera notable; por ejemplo, se ha demostrado que cada conjunto.
de seis nmeros enteros consecutivos> 285 contiene un mltiplo de un primer 43.
ciones en todas las ramas de las matemticas. Sustitucin de las pruebas de existencia de
algoritmos que construyen objetos matemticos a menudo ha llevado a mejoras en una teora
abstracta. Por ejemplo, EC Dade y H. Zassenhaus coment, al final de un artculo escrito en
1963, "Este concepto de gnero ya ha demostrado ser de importancia en la teora de los
mdulos ms rdenes. As que una idea matemtica introduce exclusivamente con el fin de
computabilidad ha resultado tener un valor terico intrnseco de su propia ". Adems, como se
mencion anteriormente, el enfoque algortmico constructiva a menudo tiene un valor
pedaggico.
1864:. "Tan pronto como una mquina analtica [es decir, un ordenador de propsito general]
existe, se le guiar necesariamente el curso futuro de la ciencia Siempre que cualquier
resultado es buscado por su ayuda, entonces la pregunta surgir-Por qu curso de clculo se
puede llegar a estos resultados por la mquina en el menor tiempo? " [3]. Y de nuevo, George
Forsythe en 1958: "El uso de prcticamente cualquier tcnica de computacin en s plantea
una serie de problemas matemticos lo tanto, existe un impacto muy considerable de la
computacin en la matemtica misma, y esto se puede esperar de influir mathe investigacin
matem- a una creciente. grado "[26]. Garrett Birkhoff [4, p. 2] tiene ob sirvi que tales
influencias son nota fenmeno nuevo, ya eran significativas en el desarrollo temprano de la
matemtica griega.
He encontrado que surgen una gran cantidad de problemas matemticos interesantes cuando
se trata de analizar un algoritmo cuantitativamente, para ver qu tan rpido se va a ejecutar
en un equipo;
de gran inters se refiere a la bsqueda de mejores algoritmos posibles en una clase dada;
vase, por ejemplo, la reciente encuesta realizada por Reingold [25]. Y una de las primeras
teoras mathe matem- inspirar por la informtica es la teora de las lenguas, que por ahora
incluye muchos resultados hermosas; ver [11] y [12]. La emocin de estas nuevas teoras es la
razn por la que se convirti en un cientfico de la computacin.
Por el contrario, las matemticas, por supuesto, tiene una profunda influencia en la
informtica;
casi todas las ramas del conocimiento matemtico ha sido usada para perseguir algn lugar.
lrecently trabaj en un problema de tratar con objetos discretos llamados "rboles binarios",
que surgen con frecuencia en las representaciones informticas de las cosas, y la solucin al
problema realmente involucrado las complejas funciones multiplicada por el cuadrado de
gamma
Riemann 's funcin zeta L6]. As, los resultados de la matemtica clsica a menudo recurren
'
Realmente vez ha usado mi capa matemtico 's y mi gorra de computacin al mismo tiempo.
Un amigo mo coment que "los buenos matemticos SORNE en IBM" haban sido incapaces
de determinar qu tan rpido funciona un determinado mtodo informtico conocido, y pens
que podra ser un problema interesante a la vista.
La forma ideal para recuperar informacin utilizando una tabla de este tipo sera tomar un
nombre dado x, y para calcular sorne funcin f (x), que se encuentra entre 1 y m; entonces el
nombre x podra ser colocado en la posicin T (x), y la informacin correspondiente en E (x).
Tal funcin f (x) hara que el problema de la recuperacin trivial, si f (x) eran fciles de calcular
y si f (x) = f. f (y) para todos distintos nombres x = f. y. En la prctica, sin embargo, estos dos
ltimos requisitos son casi nunca se cubren simultneamente; si f (x) es fcil de calcular,
tenemos f (x) = f (y) para algunos nombres distintos. Ms an, que no suelen saber de
antemano lo que acaba de nombres que ocurrir en la tabla,
y la funcin f debe ser elegido para trabajar en todos los nombres en un conjunto muy grande
de U
Por lo tanto tratamos de elegir una funcin f (x), de U en {1, 2, , m}, por lo que f (x) = f (y) se
producir con la probabilidad aproximada l / m, cuando x e y son nombres distintos. Tal
funcin f se llama una funcin de hash. En la prctica, f (x) es a menudo calcula con respecto a
x como un nmero y tomando su resto mdulo m, ms uno; el nmero m en este caso, por lo
general se elige para que sea mejor momento, ya que esto puede demostrarse tC! dar mejores
resultados para los conjuntos de nombres que generalmente surgen en la prctica. Cuando
f (x) = f (y) para x e y distinta, una "colisin" se dice que se produce; colisiones se resuelven
El siguiente algoritmo expresa exactamente cmo una funcin hash f (x) se puede utilizar para
recuperar la informacin correspondiente a un nombre dado x en U. El algoritmo hace uso de
una variable i que toma valores enteros.
PASO 3. Si la posicin de memoria T est vaco, parada; el nombre dado x no est presente.
PASO 4. Aumentar el valor de i en una unidad. (O, i si es igual am, configure i igual a uno.)
Volver al paso 2.
Todava no hemos dicho cmo los nombres se meten en T1, , Tm, en primer lugar; pero eso
no es realmente difcil. Comenzamos con toda la T vaca. Luego, para INSERTA nuevo nombre
x, "andar buscando" x usando el algoritmo anterior; se detendr en el paso 3, ya que x no est
all. Entonces nos propusimos T igual a x, y ponemos la informacin correspondiente en E ;. De
ahora en adelante, ser posible recuperar esta informacin, cada vez que se le da el nombre
de x, ya que el por encima de un goritmo encontrar posicin T!; mediante la repeticin de las
acciones que lo llevaron a ese lugar cuando se insert x.
El problema matemtico es determinar la cantidad de bsquedas que debemos esperar para
que, en promedio; Cuntas veces debe repetirse el paso 2 antes de encontrar x?
Este mismo problema puede plantearse en otras formas, por ejemplo en trminos de un
modificado
G, H, I, J. Para obtener una secuencia aleatoria, supongamos que los jugadores sucesivamente
empezar a buscar sus asientos a partir de las sillas numeradas de acuerdo con las primeras
cifras de re, es decir, 3, 1, 4, 1 5, 9, 2, 6, 5, 3. la figura 1 muestra la situacin despus de la
primera seis han sido sentado.
10 () 0 0
9 {!) 03
s 4
F10. l.
(As, el jugador A toma la silla 3, entonces el jugador B toma la silla 1, ..., F jugador toma la silla
9). Ahora el jugador G se inicia en la silla nmero 2, y, finalmente, se sienta en el nmero 6. Por
ltimo, los jugadores H, I y J entrar en sillas 7, 8, y 10. En este ejemplo, las distancias
recorridas por los diez jugadores son, respectivamente, O, O, O, 1, O, O, 4, 1, 3, 7.
No es trivial para analizar este problema, porque la congestin tiende a ocurrir; una o ms
carreras largas de sillas ocupadas consecutivos suelen estar presentes. Con el fin de ver por
qu esto es cierto, podemos considerar la figura 1otra vez, en el supuesto de que el siguiente
jugador H comienza en un lugar al azar; entonces l va a aterrizar en silla nmero 6 con una
probabilidad de 0,6, pero va a terminar en la silla nmero 7 con una probabilidad de slo el
0,1. Los tramos largos tienden a ser incluso ms tiempo. Por lo tanto no podemos asumir
simplemente que la configuracin de ocupado vs. sillas vacas es al azar en cada etapa; el
fenmeno de apilamiento en marcha debe tener en cuenta.
Deje que los puntos de partida de los jugadores M una 1a 2 am ...; vamos a llamar a esta una
secuencia de hash. Por ejemplo, la secuencia de hash de arriba es 3 1 4 1 5 9 2 5 6 3.
Suponiendo que cada una de las posibles secuencias MN hash es igualmente probable, nuestro
problema es determinar la distancia media recorrida por el jugador n-simo, para cada n, en
unidades de "sillas pasaron." Llamemos a esta distancia d (m, n). Obviamente D (m, 1) = O, ya
que el primer jugador siempre encuentra un lugar desocupado; Por otra parte d (m, 2) = 1 / m,
ya que el segundo jugador tiene que ir a lo ms un espacio, y que slo es necesario si empieza
en el mismo lugar que el primer jugador. lt tambin es fcil ver que d (m, m) = (O + ... + 1+
(M-1)) / m = t (m-1), ya que todas las sillas, pero uno ser ocupado cuando el ltimo jugador
empieza a cabo. Desafortunadamente el entre valores de d (m, n) son ms complicados.
Deje Reino Unido (m, n) es el nmero de secuencias de hash parciales a 1 a 2 ... de tal manera
que una silla k estar desocupado despus de los primeros n jugadores estn sentados. Esto es
fcil de determinar, por simetra cclica, ya que la silla k es justas que puedan ocupar como
cualquier otra silla en particular; en otras palabras, u 1 (m, n) = u 2 (m, n) = ... = um (m, n). Sea
u (m, n) estar presente
(M - n) mn, ya que cada uno de los PARTIA mn! hash de secuencias de un 1 a2 ... un hojas m - n
sillas de vaco, por lo que contribuye a una exactamente m - n de los nmeros uk (m, n). Por lo
tanto
Sea v (m, n, k) es el nmero de PARTIA! hash de secuencias de 1a 2 ... Un tal que, despus de
que los jugadores se sientan n, preside 1 a k estarn ocupados, mientras que las sillas m
culto. Si nos mira los nmeros a; que son k + 1 pulg una secuencia de hash tal parcial,
y si cruzamos los otros nmeros, los valores de k que se dejan forr una de las secuencias
enumeradas por u (k + 1, k). Por otra parte los valores de n -k tachados forr uno de los
sequenees enumerados por u (m-1-k, n-k), si restamos k + 1
de cada ofthem. Por el contrario, ifwe tomar cualquier PARTIA! secuencia de hash de un 1 ... ak
empadronadores ted por u (k + 1, k), y otro b1 ... bn k-enumerado por u (m-1-k, n-k),
n) n!
k = k! (n-k)!
es el nmero de formas de elegir posiciones k de n. Por ejemplo, sea m = 10,
secuencias que llenan las posiciones 1, 2, 3, y que salen de las posiciones 4 y 10 no ocupado,
entremezclando el A y B en todas las formas posibles. Esta correspondencia muestra que
Esto no es una frmula simple; pero ya que es correcta, no podemos hacer nada mejor. Si k = n
= m -1, los dos ltimos factores en la frmula dar O / O, que debe ser interpretarse como 1 en
este caso.
Ahora estamos listos para calcular la distancia promedio deseada d (m, n). El ensimo jugador
debe mover k pasos si y slo si la secuencia de hash parcial anterior a1 n-l ha dejado sillas
de una a travs de un + k-1 y ocup la silla an + k vaca. El nmero de tales secuencias de hash
parcial se
desde simetra circular muestra que v (m, n-1, k + r) es el nmero de de hash parcial secuencias
de un 1 n-l dejando sillas an + k y un-r-1 vaco mientras las sillas k + r entre ellos estn
llenos. Por lo tanto la probabilidad de pim, n) que el jugador va ensima exactamente k pasos
es
r;? k
y la distancia media es
d (m, n) = I: kpk (m, n) = (m-n) m1-n I: k (n - 1) (r + 1) '- 1 (m-r-l) n-r- 2
k? ;; O r? ;; k? ;; O r
= I: R - (r + l) (m-r-LT - 2
2 r? ;; O r
En este punto, una persona con una educacin matemtica tpica probablemente detener; la
respuesta es una sumatoria de aspecto horrible. Sin embargo, si se prestara ms atencin
durante nuestra formacin matemtica de sumas finitas, en lugar de concentrarse en gran
medida en las integrales, nos instintivamente reconocer que una suma como esto se puede
simplificar considerablemente. Cuando vi por primera vez esta suma, nunca haba sr.en uno
como antes; pero sospechaba que algo se podra hacer para l, ya que por ejemplo, la suma
sobre k de Pk (m, n) debe ser 1. Ms tarde me enter de la extensa literatura de dichas sumas.
No quiero entrar en los detalles, pero s quiero sealar que surgen tales sumas "en repetidas
ocasiones en el estudio de algoritmos. Por ahora he visto literalmente cientos de ejemplos en
los que involucran sumas finitas coeffi.cients binomiales y funciones relacionadas aparecen en
conexin con estudios de informtica; por lo que he introducido un curso llamado
"Matemticas hormign" en la Universidad de Stanford, en el que se imparte este tipo de
Mathe mtica.
Sea O (m, n) el nmero medio de sillas saltado pasado por los primeros jugadores n:
Esto corresponde a la cantidad promedio de tiempo necesario para que el algoritmo de hash
para encontrar un artculo cuando se han almacenado n elementos. El valor de d (m, n) que se
derivan de arriba se puede simplificar para obtener las siguientes frmulas:
d (mn)
o (Mn)
1 (n-1
=-
n - 1 n-
2 + n-
1 N -2 -3 n
..) ..
'2 m mm mm m
Estas frmulas se pueden utilizar para ver el comportamiento de gran m y n: por ejemplo, si oc
= n / m es la relacin de puestos ocupados y el nmero total de posiciones, y si tenemos O
(fijos, mientras que m tiende a infinito, entonces o (m, OCM) aumenta con el valor de 1 C /
(1-oc) limitante.
-+-O(
'M 2m'
LF alguien podra descubrir un truco sencillo por el cual esta sencilla relacin se pudo probar
directamente, que dara lugar a un anlisis mucho ms elegante del hash al gerithm y podra
proporcionar ms conocimientos. Por desgracia, no he sido capaz de pensar de manera directa
para demostrar esta relacin.
Cuando n = m (es decir, cuando todos los jugadores estn sentados y todas las sillas estn
ocupadas), la
Es interesante estudiar esta funcin, que puede ser demostrado tener el valor aproximado
O (m, m)
Jrcm - 2
para grandes m. Por lo tanto, el nmero de re, que entr en la figura 1, de forma artificial, est
realmente presente de forma natural en el problema, as! Tales clculos asintticos,
combinadas con sumas discretas como anteriormente, son tpicos de lo que surge cuando
estudiamos col gorithms; anlisis matemtico clsico y matemtica discreta ambos papeles im
portantes de juego.
6. Extensiones. Ahora hemos resuelto el problema de las sillas musicales, por lo que el anlisis
de hash es completa. Pero muchos ms problemas son sugeridos por ste. Por ejemplo, qu
ocurre si cada uno de la tabla hash posiciones T; es capaz de mantener dos nombres en lugar
de uno, es decir, si permitimos que dos personas por la silla en el juego musical sillas? sin
embargo, nadie ha encontrado las frmulas exactas para este caso, aunque se conocen
frmulas aproximadas SORNE.
Tambin podramos preguntar qu ocurre si cada jugador en el juego de las sillas musicales se
inicia al mismo tiempo a buscar una silla libre (siendo siempre movindose hacia la derecha), a
partir de puntos de forma independiente al azar. La respuesta es que cada jugador se mover
pasados (m, n) sillas en el medio, donde O (m, n) es el mismo que el anterior. Esto se deduce
de un teorema interesante de W. W. Peterson [23], que fue el primero en estudiar las
propiedades de hash el problema descrito anteriormente. Peterson demostr que el
desplazamiento total de los jugadores n, para cualquier secuencia de hash parcial a 1a 2 ... un,
es independiente del orden de las a / s; por lo tanto, 3 1 4 1 5 9 2 lleva a la misma dis totales
tiempo O (m, n) por jugador es el mismo para todos los arreglos de la , y por lo tanto es
tambin sin cambios cuando todos los jugadores comienzan simultneamente.
Por otro lado, la cantidad promedio de tiempo necesario hasta que todos los jugadores estn
sentados n no se ha determinado, que yo sepa, para el caso simultnea. De hecho, me acaba
de ocurrir este problema al escribir este documento. Nuevos problemas de flujo de estudios de
informtica a gran velocidad!
Tambin podramos preguntar qu ocurre si los jugadores pueden optar por ir en sentido
horario
Otra variante del problema de hash surge cuando cambiamos el orden cclico
Una tcnica de hash generalizada que por razones tcnicas se llama sola
hash se define por cualquier m x m matriz Q de los nmeros enteros para los cuales
(I) Cada fila contiene todos los nmeros del 1 al m con el fin sorne; (Ii) La primera columna
contiene los nmeros del 1 al m en orden.
Las otras columnas son sin restricciones. Por ejemplo, uno de tales matriz para m = 4,
I1 2 3 4
134
Q1
412
321
La idea es utilizar una funcin hash f (x) para seleccionar una fila de Q y luego para investigar
las posiciones de memoria en el orden dictado por esa fila. El mismo algoritmo para mirar a
travs de la memoria se utiliza como antes, excepto que el paso 4 se hace
ETAPA 4'. I avance al siguiente valor de la fila f (x) Ofthe matriz, y volver al paso 2. Por lo tanto,
el esquema de dispersin cclica descrita anteriormente es un caso especial de hash nico
En la silla analoga musical, los jugadores ya no son necesarios para mover las agujas del reloj;
diferentes jugadores en general, visite las sillas en diferentes secuencias. Cmo siempre, si dos
jugadores empiezan en el mismo lugar, ambos deben seguir la secuencia visitar misma silla.
Esta ltima condicin producir una ligera congestin, que es notable, pero no es tan
significativo como en el caso cclico.
Al igual que antes, podemos definir las medidas d '(m, n) y (j' (m, n), que corresponde a
se lleva a cabo el nmero de veces el paso 4 '. El problema central es encontrar matrices Q que
son mejor posible, en el sentido de que (j '(m, m) se reduce al mnimo. Este problema no es
realmente una practica! Uno, ya que la matriz con ms pequeo (j' (m, m) podra requerir un
gran
<Leal de clculo por cada ejecucin de la etapa 4 '. Sin embargo, es muy interesante para
establecer
lmites absolutos a lo bien que un solo mtodo de hash podra ser, como un punto de
referencia con el cual medir los casos particulares.
Q se elige al azar, es decir, para encontrar el valor de d '(m, n), como media de todas () n (m-1
, M-n + l
l (n l 1 - 1 / (m + 2 j))
d (m, n) = m. -
m-n + 2 (
+ M + i = l m ITL 1 (1 - lj (m (m + 2-i)))
X I1 1- -----
j = l m (m + 2-j)
Las pruebas de las afirmaciones anteriores, junto con datos adicionales acerca de hash,
aparecen en [18].
esquema son conocidos, aunque yo creo que ninguno tendr (i '(m, m) inferior a
(1 + m1) 1
+ 21 + ... + m1) - 2;
este es el valor que se produzca en el juego de las sillas musicales, si cada jugador sigue un
camino aleatorio, independientemente de todos los dems. J. D. Ullman [28] ha dado una
conjetura ms general de la que seguira esta declaracin. Si la conjetura de Ullman es cierto,
entonces un Q aleatoria viene dentro -! - Del mejor valor posible, y un gran nmero de
matrices, por lo tanto producir valores cercanos al ptimo. Por lo tanto, es una practica
interesante! problema de construir una familia de matrices para varios m, que tiene un buen
comportamiento provably cerca de la ptima, y tambin con la propiedad de que son fciles
de calcular en el paso 4 '.
Es <loes no parece ser fcil de calcular (i '(m, m) de una determinada matriz M. El mejor
mtodo que conozco requiere del orden de 2 m m pasos, por lo que he podido experimentar
en este problema slo para valores pequeos de m. (por cierto, este tipo de tos expe
representan una aplicacin de la informtica para resolver un problema matemtico
propuesto por la informtica.) Aqu es una forma de calcular () '(m, m) de una determinada
matriz Q = (%): Si A es cualquier subconjunto de {1, 2, , m}, que permiten 11 A 11 ser el
nmero de elemento
mentos en A, y sea p (A) la probabilidad de que los primeros 11 A / I jugadores ocupan las sillas
designadas por A. Entonces no es difcil demostrar que
p (A) = - L p (A - {qij})
m (i, j) e s (A)
cuando A es no vaco, donde s (A) es el conjunto de todos los pares (i, j) de manera que qik E A
para
1 k j; por consiguiente
m llAll = n-1
Una m
Por ejemplo, en la Q1 4 x 4 matriz considerada anteriormente, tenemos
UN
Pensilvania)
1 \ ls <A) ll
UN
{4}
Pensilvania)
Las tres primeras sillas ocupadas muy probable que haya {1, 3, 4}; el conjunto de sillas de {1, 2,
4} es mucho menos probable. La "puntuacin" (j '(m, m) de esta matriz viene a 653/1024, que
en este caso es peor que la puntuacin 624/1024 para hash cclico. De hecho, hash cclico
resulta ser la mejor hash nico esquema cuando m = 4.
Cuando m = 5, el mejor esquema de hashing solo resulta ser obtenido a partir de la matriz
(1 2
5
3
23451
Qs = 3 4 1 2 5
45231
5 1 3 4 2j
cuya puntuacin es de 0,7440, comparado con 0,7552 para hash cclico. Tenga en cuenta que
Q5 es muy parecido a hash cclica, ya que la simetra cclica est presente: se obtiene cada fila
Cuando m> 5, una bsqueda exhaustiva de la mejor esquema de dispersin sola sera
demasiado difcil hacer TCI por la mquina, a menos nuevo avance sorne se hace en la teora.
Por tanto, he recurrido a procedimientos heursticos de bsqueda "". 11 de todas las fusiones,
las mejores matrices de hash nico que he podido encontrar en realidad han resultado ser
generalizada esquemas de hash cclicos, y me siento tentado a conjeturar que esto ser cierto
en general. Sera muy bueno si esta conjetura fuera cierto, ya que se seguira que la
generalidad potencialmente costosa de un esquema no cclico no sera til. Sin embargo, la
evidencia de mi conjetura es comparativamente dbil;
metro
1 O (m, m)
0.0000 O (m, m)
0.0000
2 0,2500 0,2500
3 0,4444 0,4630
4 0,6094 0,6426
5 0.7552 0.7973
6 0.8874 0.9330
7 1,0091 1,0538
8 1.1225 1.1626
9 1,2292 1,2616
10 1.3301 1.3523
11 1.4262 1.4360
12 1.5180 1.5138
15 1.7729 1.7183
20 2.1468 1.9911
30 2.7747 2.3888
40 3.3046 2.6774
50 3.7716 2.9037
75 4.7662 3.3181
Incluso si esta conjetura es falsa, la practica! importancia de hash cclica generalizada hace ita
objeto adecuado para estudios posteriores, especialmente en vista de sus adicionales
metro. Esta observacin hace que el clculo de los seores casi m veces ms rpido. Otra, no la
propiedad tan obvio, es el hecho de que el esquema de dispersin generalizada cclica
generada por la permutacin q 1 q 2 ... qm tiene la misma puntuacin que ese
Program una computadora para encontrar los seores para todos los esquemas de hash
cclicos generalizadas cuando m = 6, y los resultados de este clculo sugirieron que otros dos
simplificaciones podran ser vlida:
(I) q 1q2q3 ... qm y q2q1q3 ... qm genero igualmente buenos esquemas de hash cclicos
generalizadas.
(Ii) q 1 ... qm_2qm-LQM y q ... 1 qm_2qmqm-l generan igualmente buenos esquemas de hash
cclicos generalizadas.
De hecho, estas dos afirmaciones son ciertas; aqu es un ejemplo tpico en el que com Puting
en un caso particular, ha dado lugar a nuevos teoremas matemticos.
siempre generar igualmente buenos esquemas, siempre que ambas de estas secuencias son
permutaciones. Si esta afirmacin fuera cierta, sera incluir los tres resultados anteriores como
casos especiales, para k = 2, m - 2 y m. Por desgracia, no pude probarlo; y al final encontr un
contraejemplo (con la mano), es decir, q = 1 qm 1 3 8 6 2 7 5 4 y k = 4. plomo Sin embargo,
esta conjetura errnea hizo con una interesante puramente
(Eq 1 + j) ... (eqk + j) qk + l ... metro cuadrado, para e = 1and1 j, k m (siempre que stos sean
ambas permutaciones, mdulo M). Podramos llamar a estos "permutaciones collar", por
analoga con otros combinatoria conocidos! problema, ya que representan el nmero de
rdenes diferentes en las que una persona puede cambiar las cuentas de un collar de todo el
blanco a todo negro, haciendo caso omiso de la operacin de rotacin y / o dar la vuelta al
ovet collar cada vez que una operacin de este tipo conserva la corriente negro / blanco
patrn. los
Volviendo al problema de hash, los teoremas mencionados anteriormente hacen que sea
posible por medios para estudiar todos los esquemas de hash cclicos generalizadas para m 9,
por la computadora; y la siguiente llegar a ser el mejor:
peor de permutacin
1 2 3 4 o: UAX (m, m)
0.6250
1 2 3 4 5 0,7552
1 3 5 2 4 6 0.9132
1 2 3 4 5 6 7 1,0091
1 5 3 7 4 8 2 6 1.1719
1 4 7 2 5 8 3 6 9 1.2638
(Esta tabla sugiere que la forma del esquema cclico peor podra ser obtenible de una manera
sencilla a partir de los factores primos de m.)
Finalmente 1 han tratado de encontrar los peores matrices Q posibles, sin la cclica
restriccin. Tales matrices pueden ser muy mal hecho; el peor 1 conocimientos, para cualquier
m,
(1 2 3 4 5
21345
31245
41235
51234
c5 '(m, m) = (m + 3 +) (1 + f-2.sm-1-5,
1 agradecen a Garrett Birkhoff por sus comentarios sobre el primer borrador de este
documento.