Esta resposta tem duas partes, mostrando juntos que o limite correto é :Θ(logN)
- Um limite inferior de (vezes o raio do primeiro círculo).Ω(logN)
- Um limite superior correspondente de .O(logN)
Limite inferior de Ω(logN)
Considere dois círculos unitários que tocam em um ponto . (Veja abaixo; p está à direita, o erro começa à esquerda.) Alterne entre um círculo e outro. O bug irá subir e descer ziguezague pela fenda entre os dois círculos, movendo-se principalmente para cima e para baixo, mas também progredindo lentamente para a direita. Se eu fiz a trigonometria corretamente, após N etapas, a distância do ponto comum será Θ ( 1 / √ppN, e aNth passo fará com que o erro de andarΘ(1/N), para uma distância total deΘ(logN).Θ(1/N−−√)NΘ(1/N)Θ(logN)
Aqui está um esboço dos cálculos. Considere algumas duas etapas consecutivas que o bug executa. Ele vai de algum ponto , a b , a c . Os pontos a e c estão no mesmo círculo; o ponto b está no outro círculo. Seja o centro do círculo em que a está. Considere os três triângulos a seguir, em ordem decrescente de tamanho:abcacboa
- O triângulo isoceles (recordação p representa o ponto comum).△oapp
- O triângulo .△abp
- O pequeno triângulo △abc
Esses triângulos são quase semelhantes (ou seja, escala de módulo congruente). Mais precisamente, para , todos os três têm a seguinte propriedade:
a razão entre o comprimento da perna curta e a perna longa é Θ ( ϵ ) . (Não vou provar isso com mais detalhes aqui, mas observe que ϵ → 0 à
medida que o erro avança e, ao perturbar um vértice em cada triângulo por uma quantidade desprezível, os triângulos podem se tornar semelhantes.)ϵ = | a p |Θ ( ϵ )ϵ → 0
As longas pernas e p o do primeiro triângulo tem comprimento 1. Sua perna curta | a p |c op o| ap |tem comprimento . Segmento de um p é uma perna longa da segunda triângulo, de modo que a perna curta do triângulo um b tem comprimento Θ ( ε 2 ) . Segmento de um b é uma perna longa da terceira triângulo, de modo que a perna curta do triângulo um c tem comprimento Θ ( ε 3 ) . Assim, nestas duas etapas que o bug executa:ϵa pa bΘ ( ϵ2)a ba cΘ ( ϵ3)
- A distância o erro viaja é Θ ( ϵ 2 ) .| ab | + | bc |Θ ( ϵ2)
- A distância do bug ao ponto comum diminui de ϵ para ϵ - Θ ( ϵ 3 ) .pϵϵ - Θ ( ϵ3)
Definir tempo ser o número de passos antes ε t ≈ 1 / 2 K . Em (2) acima, ϵ diminua por um fator constante após cerca de Θ ( 1 / ϵ 2 ) etapas, então t k )tkϵt≈1/2kϵΘ(1/ϵ2). Assim, t k =Θ( 4 ktk+1=tk+Θ(22k)=tk+Θ(4k)tk=Θ(4k) . Isto é, depois de passos, a distância a partir do erro no ponto comum p será de cerca de 1 / 2 K . Alterando variáveis, após N etapas, a distância do bug ao ponto comum será ϵ = Θ ( 1 / √Θ(4k)p1/2kN. E, noN° passo, o erro viajaΘ(ε2)=Θ(1/N). Portanto, a distância total percorrida no primeiroNϵ = Θ ( 1 / N--√)NΘ ( ϵ2) = Θ ( 1 / N)N passos é .Θ ( 1 + 1 / 2 + 1 / 3 + . . . + 1 / N) = Θ ( logN)
Este é o limite inferior.
Estende-se à Variante 2 proposta (como eu a entendo), da seguinte maneira:
Adicionar a restrição de que o bug deve se mover para o ponto mais próximo na interseção dos dois círculos colocados mais recentemente não ajuda. Ou seja, o limite inferior acima ainda se aplica. Para entender o porquê, modificaremos o exemplo acima adicionando um único círculo estranho que permita que o bug atenda à restrição enquanto ainda estiver percorrendo o mesmo caminho:Ω ( logN)
Os círculos verde e azul são os dois círculos do exemplo acima. A intersecção aponta e b são os mesmos um e b como no exemplo acima. O círculo vermelho é o novo círculo "estranho". A sequência anterior alternava entre os círculos azul e verde. A nova sequência será essa sequência, mas com o círculo vermelho adicionado antes de cada círculo na sequência antiga: vermelho, azul, vermelho, verde, vermelho, azul, vermelho, verde, vermelho, azul, ...umabumab
Suponha que o bug está sentado em após azul é colocado. O próximo círculo colocado é vermelho. O vermelho contém o erro, para que ele não se mova. O próximo círculo colocado é verde. Agora o bug se move para b (que é o ponto mais próximo da interseção dos círculos verde e vermelho). Repetindo isso, o bug viaja como antes.umab
Limite superior de O ( logN)
Eu só desenho a prova.
Corrija qualquer sequência de círculos. Argumentaremos que, como , a distância total percorrida pelo bug nos primeiros N passos é O ( log N ) . Suponha, sem perda de generalidade, que o primeiro círculo tenha raio 1.N→ ∞NO ( logN)
Corrija um arbitrariamente grande . Seja p em qualquer ponto da interseção dos primeiros N círculos. Observe que, devido à maneira como o bug se move, a cada passo que o bug se move, ele se aproxima de p .NpNp
Primeiro, considere as etapas em que a seguinte proporção é pelo menos :
a redução na distância para p1/logN
A distância total percorrida em tais etapas éO(log
the reduction in the distance to pthe distance traveled in the step.
, porque a distância total percorrida em tais etapas é
O ( log N ) vezes a distância inicial para
p . Por isso, só precisa ligado a distância total percorrida em outros passos --- aqueles em que a referida relação é, no máximo,
1 / log N .
O(logN)O(logN)p1/logN
Primeiro, argumentamos algo um pouco mais fraco: que a distância total percorrida em tais etapas
antes que o raio do círculo diminua para 1/2 ou menos é . (Mostramos mais tarde que isso é suficiente para dar o limite.)O(logN)
Considere qualquer passo desse tipo. Deixe e b , respectivamente, denotam os locais do bug antes e depois da etapa. Deixe o denotar o centro do círculo atual. Seja b ′ denotar o ponto no raioabob′ tal que| pa| =| pb| :pb→|pa|=|pb|
Considere os seguintes triângulos:
- △opb
- △pba
- △abb′
Por argumentos geométricos semelhantes aos do limite inferior, para alguns , cada um desses triângulos tem duas pernas longas e uma perna curta, e a proporção (para cada triângulo) do comprimento da perna curta para o comprimento da perna longa é Θ ( ϵ ) :
| b b ′ |ϵΘ(ϵ)
|bb′||ab|=Θ(|ab||pa|)=Θ(|pa||bo|)=Θ(ϵ).
Essa equação e a suposição de que , Que é o raio do círculo, é em [ 1 / 2 , 1 ] implica que | a b | = Θ ( | p a | 2 / | b o | ) = Θ ( | p a | 2 ) e depois | b b ′ | = Θ ( | a b ||bo|[1/2,1]|ab|=Θ(|pa|2/|bo|)=Θ(|pa|2) .|bb′|=Θ(|ab||pa|/|bo|)=Θ(|pa|3)
Agora vamos nos concentrar na distância do bug até a . Chame-o de d antes do passo e d ' depois do passo. (Nota d = | p a | , d ′ = | p b |pdd′d=|pa|d′=|pb| , e .)d−d′=|bb′|
Nesta etapa, essa distância reduzida em | b b ′ | , que pelas observações acima é Ω ( d 3 ) .d|bb′|Ω(d3)
Assim, o número de etapas adicionais necessárias para reduzir a distância por um fator de 2 (no máximo ) é O ( 1 / d 2 ) . Alterando as variáveis, se d = 1 / 2 k , o número de passos adicionais necessários para trazer a distância abaixo
de 1 / 2 k + 1 é O ( 4 k ) . Uma vez que a soma é geométrico, o número total de passos necessários para levar a distância abaixo 1 / 2 k é O (d/2O(1/d2)d=1/2k1/2k+1O(4k)1/2k . Alterando variáveis novamente, após n etapas, a distância até p será O ( 1 / √O(1/4k)np.O(1/n−−√)
Finalmente, recordando o exibido equação vários parágrafos acima, no º passo, a distância que o bug viaja, ou seja | a b | , é O ( ( a distância atual para p ) 2 ) = O ( 1 / n ) . Assim, a distância total percorrida nas primeiras N tais passos, enquanto o raio do círculo é em [ 1 / 2 , 1 ]
é no máximo
N Σ n = 1 O ( 1 /n|ab|O((the current distance to p)2)=O(1/n)N[1/2,1]
∑n=1NO(1/n)=O(logN).
Por escamação, conclui-se que, para qualquer , a distância total percorrida enquanto o raio do círculo é na gama [ 1 / 2 k , 1 / 2 k + 1 ]
é O ( log ( N ) / 2 k ) . Somando kk[1/2k,1/2k+1]O(log(N)/2k)k , a distância total percorrida é . QEDO(logN)