Théorème: Tout algorithme déterministe pour ce problème de sondes Ω(log2 n) emplacements de mémoire dans le pire des cas.
La preuve (complètement réécrit dans un style plus formel):
Soit k > 0 un entier impair et soit n = k2. Nous décrivons un adversaire qui force (log2 (k + 1))2 = Ω(log2 n) des sondes.
Nous appelons le maximum de sous-séquences d'éléments identiques groupes. L'adversaire est possible entrées se composent de longueur k-k segments x1 x2 ... xk. Pour chaque segment xj, il existe un entier bj ∈ [0, k] tel que xj se compose de bj copies de j - 1, suivie par k - bj copies de j. Chaque groupe de chevauchement à plus de deux segments, chaque segment de chevauchement à la plupart des deux groupes.
Group boundaries
| | | | |
0 0 1 1 1 2 2 3 3
| | | |
Segment boundaries
Partout où il y a une augmentation de deux, nous supposons une double limite par la convention.
Group boundaries
| || | |
0 0 0 2 2 2 2 3 3
Revendication: L'emplacement de la jème groupe limite (1 ≤ j ≤ k) est déterminée de manière unique par le segment xj.
La preuve: C'est juste après la ((j - 1) k + bj)th emplacement de mémoire, et xj unique détermine bj. //
Nous disons que l'algorithme a observé la jème groupe limite au cas où les résultats de ses sondes de xj unique déterminer la valeur de xj. Par convention, le début et la fin de l'entrée sont toujours observées. Il est possible que l'algorithme unique de déterminer l'emplacement d'un groupe de frontière sans l'observer.
Group boundaries
| X | | |
0 0 ? 1 2 2 3 3 3
| | | |
Segment boundaries
Compte tenu de seulement 0 0 ?, l'algorithme ne peut pas dire à coup sûr si ? est un 0 ou un 1. Dans le contexte, cependant, ? doit y avoir un 1, sinon il y aurait trois impair de groupes, et le groupe se limite à X peut être déduite. Ces conclusions pourraient être problématiques pour l'adversaire, mais il s'avère qu'ils ont peut être fait seulement après que le groupe de la limite en question est "hors de propos".
Demande: À un moment donné au cours de l'algorithme d'exécution, de considérer l'ensemble des limites de groupe qu'il a observé. Exactement consécutives paire est bizarre à distance, et l'étrange groupe se trouve entre eux.
La preuve: Tous les autres consécutives paire limites seulement, même des groupes. //
Définir la longueur impaire sous séquence délimitée par les spécial consécutives paire pertinentes de la sous-suite.
Réclamation: Pas de groupe de frontière à l'intérieur de la sous-suite est déterminée de manière unique. Si il y a au moins un de ces limites, alors l'identité de l'étrange groupe n'est pas déterminée de façon unique.
La preuve: Sans perte de généralité, supposons que chaque emplacement de mémoire non dans la sous-suite a été sondé et que chaque segment contenues dans le sous-suite a exactement un emplacement qui n'a pas été sondé. Supposons qu'à la jème groupe limite (que l'on appellera B) se trouve à l'intérieur de la sous-suite. Par hypothèse, les sondes à xj déterminer B de l'emplacement jusqu'à deux années consécutives de possibilités. Nous appelons l'un à l'étrange distance à partir de la gauche aux limites observées impair de la gauche et l'autre impair de la droite. Les deux possibilités, nous travaillons de gauche à droite et de fixer l'emplacement de toutes les intérieurs groupe de frontière ainsi que le groupe à sa gauche est la même. (Nous pouvons le faire car ils ont chacun deux fois de suite les possibilités.) Si B est impair de la gauche, puis le groupe à sa gauche est l'unique étrange groupe. Si B est impair de la droite, puis le dernier groupe dans la sous-suite est l'unique étrange groupe. Les deux sont des entrées valides, alors l'algorithme est déterminée de manière unique ni l'emplacement de B, ni l'étrange groupe. //
Exemple:
Observed group boundaries; relevant subsequence marked by […]
[ ] |
0 0 Y 1 1 Z 2 3 3
| | | |
Segment boundaries
Possibility #1: Y=0, Z=2
Possibility #2: Y=1, Z=2
Possibility #3: Y=1, Z=1
Comme conséquence de cette affirmation, l'algorithme, indépendamment de la façon dont il fonctionne, doit étroit pertinents de la sous-suite à un groupe. Par définition, par conséquent, elle doit respecter certaines limites de groupe. L'adversaire a maintenant la simple tâche de garder l'ouvrir autant de possibilités qu'il peut.
À un moment donné au cours de l'algorithme d'exécution, l'adversaire est à l'intérieur commis une possibilité pour chaque emplacement de mémoire à l'extérieur de la sous-suite. Au début, la sous-suite est l'ensemble de l'entrée, donc il n'y a pas d'engagements initiaux. Chaque fois que l'algorithme de sondes d'un ami de l'emplacement de xj, l'adversaire doit s'engager à l'une des deux valeurs: j - 1 ou j. Si elle peut éviter de laisser la jème limite être observé, il choisit une valeur qui laisse au moins la moitié des possibilités restantes (à l'égard de l'observation). Sinon, il choisit de manière à garder au moins la moitié des groupes dans l'intervalle et s'engage valeurs pour les autres.
De cette façon, l'adversaire des forces de l'algorithme d'observer au moins log2 (k + 1) limites de groupe, et dans l'observation de la jème groupe frontière, l'algorithme est forcé de faire au moins log2 (k + 1) des sondes.
Extensions:
Ce résultat s'étend carrément à des algorithmes randomisés par randomisation à l'entrée, en remplacement de "au mieux diminué de moitié" (à partir de l'algorithme de point de vue) avec "au mieux coupées en deux dans l'attente", et l'application de la norme de concentration des inégalités.
Il s'étend également aux cas où aucun groupe ne peut être plus grand que s les copies; en ce cas, la limite inférieure est Ω(log n log s).