Solução do Giant Puzzle #14 – Star Wars

Parabéns a todos que se desafiaram a solucionar o Giant Puzzle #14! Admiramos imensamente aqueles que se arriscam a pensar fora da caixa e a encontrar soluções criativas para problemas complexos.

Conseguiram resolver esse puzzle:

  1. Leonardo Martos Barbosa
  2. Marlon Koga
  3. V.B.
  4. Lucas Gregolin Dias
  5. João Matheus Del Vecchio França Barbosa

 

O problema

Darth Vader prendeu Luke Skywalker na estrela da morte. Luke pode voar no interior da estrela com velocidade 1, enquanto Darth voa apenas sobre sua superfície, mas com velocidade k. O poder da força permite que ambos saibam a posição exata um do outro, a qualquer momento. Se Luke conseguir chegar na superfície sem que Darth esteja por perto, ele consegue fugir em segurança.

Considerando que a estrela da morte é uma esfera de raio 1, Luke e Darth tem dimensões desprezíveis e os dois são muito inteligentes, responda:
a) Determine k_lim tal que Luke consegue escapar se, e somente se, k < k_lim.

b) Encontre uma estratégia para Luke que minimiza o tempo necessário para escapar quando a velocidade de Vader é 0.99 k_lim.

 

Solução

 

1 – Equivalência com o problema em 2 dimensões

A trajetória ótima de Luke se dará ao longo de um círculo de raio máximo e portanto será em 2 dimensões.

Em um dado momento, Luke escolhe um vetor de velocidade (ṙ,θ̇,ϕ̇)(\dot{r}, \dot{\theta}, \dot{\phi}), expresso em coordenadas polares. Supondo que a segunda coordenada (primeiro ângulo) corresponde ao semi-círculo que contempla Luke e Darth Vader, qualquer ϕ̇\dot{\phi} não nulo é contraprodutivo – a melhor forma de ganhar distância (ou perder menos distância) é correr ao longo do semi-círculo. Deixamos como exercício para o leitor provar essa afirmação.

2 – A solução sub-ótima para klim=1+πk_{lim} = 1 + \pi

Seja kk o múltiplo da velocidade de Darth Vader.

A estratégia pode ser dividida em duas etapas:

  1. Primeiramente, Luke se move dentro de um círculo de raio 1/k1/k. Nesse círculo, a velocidade angluar de Luke é maior que a de Darth Vader. Por isso, Luke consegue se colocar em um ponto da circunferência de raio 1/k1/k que é diametralmente oposto ao ponto em que está Darth Vader.

  2. A partir deste ponto, Luke se move em linha reta até a borda do círculo de raio 1. Luke terá que percorrer uma distância de 11/k1 – 1/k, enquanto Darth Vader precisará percorrer uma distância de π\pi.

A condição necessária para que a estratégia de Luke funcione é que 11/kπ/k1 – 1/k \leq \pi / k e é satisfeita para kk inferior a 1+π1 + \pi

3 – A solução ótima

Durante a solução, o módulo do vetor velocidade do Luke será |v||v| e para o Darth Vader será |kv||k\cdot v|.

O passo (1) é inevitável em qualquer estratégia ótima de Luke. Não é difícil de argumentar que ele é necessário.

O passo (2) pode ser melhorado. Se Luke se mover segundo uma curva, de forma a ter sempre uma velocidade em direção à borda e uma outra velocidade se distanciando de Darth Vader, ele pode ser mais eficiente.

Luke terá um vetor de velocidade vv que será parametrizado em coordenadas polares como:

(ṙ,θ̇)=(vcosα,vrsinα)(\dot{r}, \dot{\theta}) = \left (v \cdot \cos \alpha, \dfrac{v}{r} \cdot \sin \alpha \right)

A escolha do ângulo α\alpha em cada instante no tempo parametriza a estratégia seguida por Luke.

Consideremos que kk é um parâmetro fixado. Para um dado instante no tempo, os parâmetros do problema que vamos considerar serão os seguintes:

  • rr é a distância de Luke até o centro
  • θ\theta é a distância angular de Luke para Darth Vader

Defina f(r,θ)f(r, \theta) como uma booleana (1 ou 0) que diz se em uma dada configuração Luke consegue escapar de Vader. Sabemos que f(1,0)=1f(1, 0) = 1. O problema do puzzle é equivalente a determinar f(1/k,π)f\left (1/k, \pi \right).

Definimos agora: T(r)=minθθ 𝚜.𝚝. f(r,θ)=1T(r) = \min_{\theta} {\theta \texttt{ s.t. } f(r, \theta) = 1}

Sabemos que T(1)=0T(1) = 0 e queremos saber se T(1/k)T(1/k) está bem definido.

Olhando para um micro-instante no tempo dtdt, T(r)T(r) segue a seguinte “recursão”:

T(r)=infα(T(r+vcosαdt)+(kvvrsinα)dt)T(r) = \inf_{\alpha} \left (T(r + v \cdot \cos \alpha \cdot dt) + \left (k \cdot v – \dfrac{v}{r} \cdot \sin\alpha \right) \cdot dt \right )

Ela considera todos os ângulos possíveis em que Luke pode se mover e qual será a nova configuração de (r,θ)(r, \theta) . Para entender a recursão, é importante entender T(r)T(r) como o maior ângulo tal que Luke consegue escapar:

  • Após o movimento, Luke conseguirá escapar de um ângulo T(r+vcosαdt)T(r + v \cdot \cos \alpha \cdot dt)
  • Durante o movimento, Luke “perde” um ângulo (kvvrsinα)\left (k \cdot v – \dfrac{v}{r} \cdot \sin\alpha \right)

O α\alpha que maximiza a expressão de dentro do inf\inf pode ser obtido derivando a expressão em função de α\alpha e é igual a:

α̂=arctan(1rdTdr(r))(1)\hat{\alpha } = \arctan \left (-\dfrac{1}{r\cdot \frac{dT}{dr}(r)} \right ) \;\;\;\; (1)

Substituindo esse valor de α\alpha e reparametrizando drdr como vcosαdtv \cdot \cos \alpha \cdot dt, chegamos à equação:

T(r)=T(r+dr)+(k1rsinα)cosαdrT(r) = T(r + dr) + \dfrac{\left (k – \dfrac{1}{r} \cdot \sin \alpha \right)}{\cos \alpha} \cdot dr

que é equivalente a:

dTdr(r)=T(r+dr)T(r)dr=(k+1rsinα)cosα(2)\frac{dT}{dr}(r) = \frac{T(r+dr) – T(r)}{dr} = \dfrac{\left (-k + \dfrac{1}{r} \cdot \sin \alpha \right)}{\cos \alpha} \;\;\;\; (2)

Unindo as equações (1)(1) e (2)(2), é possível chegar na seguinte relação:

sinα=1kr(*)\sin \alpha = \dfrac{1}{k \cdot r} \;\;\;\; (*)

Substituindo nessa equação o valor de α\alpha obtido anteriormente, chegamos a uma equação que nos permite, através de uma busca binária, obter o valor de dTdr\frac{dT}{dr} numericamente.

A partir de dTdr\frac{dT}{dr}, podemos integrar de 11 a 1/k1/k para chegar no valor de T(1/k)T(1/k). Naturalmente, TT só está definida para rr’s em que T(r)πT(r) \leq \pi.

Por fim, uma busca binária foi feita para achar o maior valor de kk tal que TT seja definida pela condição acima.

O valor encontrado para klimk_{lim} foi de aproximadamente:

klim=4.6033k_{lim} = 4.6033

4 – Outra solução ótima 2

Uma outra solução seria utilizar o resultado intermediário obtido na solução ótima 1.

Considerando que o passo (1) seja feito, no referencial do Darth Vader, o vetor de velocidade vv de Luke poderá ser parametrizado em coordenadas polares como:

(ṙ,θ̇)=(vcosα,kvvrsinα)(\dot{r}, \dot{\theta}) = \left (v \cdot \cos \alpha, k\cdot v – \dfrac{v}{r} \cdot \sin \alpha \right)

onde o Darth Vader com o módulo do vetor velocidade de |kv||k \cdot v| e α\alpha será o ângulo entre o vetor velocidade do Luke e a direção radial que passa pelo mesmo.

Pelo resultado intermediário da solução ótima 1, teremos que o α\alpha ótimo para cada instante será:

sinα=1kr(*)\sin \alpha = \dfrac{1}{k \cdot r} \;\;\;\;\;\; (*)

Logo, o vetor velocidade de Luke em relação ao Darth Vader será:

(ṙ,θ̇)=(vk2r21kr,kvvr1kr)(\dot{r}, \dot{\theta}) = \left (v \cdot \dfrac{\sqrt{k^2r^2 – 1}}{k \cdot r}, k\cdot v – \dfrac{v}{r} \cdot \dfrac{1}{k \cdot r} \right)

Analisando a primeira coordenada:

ṙ=vk2r21kr \dot{r} = v \cdot \dfrac{\sqrt{k^2r^2 – 1}}{k \cdot r}

0Tdrk2r21kr=v0Tdt(3) \int_{0}^{T}\dfrac{dr}{\dfrac{\sqrt{k^2r^2 – 1}}{k \cdot r}} = v \int_{0}^{T} dt \;\;\;\; (3)

k2r2(t)1k|0T=vT \left. \dfrac{ \sqrt{k^2 \cdot r^2(t) -1} }{k} \right\rvert_{0}^{T} = v \cdot T

Temos que: r(0)=1/kr(0) = 1/k e r(T)=1r(T) = 1. Partindo do raio r(0)=1/kr(0) = 1/k e seguindo uma trajetória dada pela equação (*)(*).

k21k=vT \dfrac{ \sqrt{k^2 -1 } }{k} = v \cdot T

T=k21vk T = \dfrac{ \sqrt{k^2 -1 } }{v \cdot k}

Analisando a segunda coordenada:

θ̇=kvvr1kr \dot{\theta} = k\cdot v – \dfrac{v}{r} \cdot \dfrac{1}{k \cdot r}

0Tθ̇dt=π=v(kT1k0T1r2dt) \int_{0}^{T} \dot{\theta} \; dt = \pi = v \cdot \left (k \cdot T – \dfrac{1}{k} \cdot \int_{0}^{T} \dfrac{1}{r^2} dt \right)

A partir da primeira coordenada, temos que:

k2r(t)21k=vt \dfrac{ \sqrt{k^2 \cdot r(t)^2 -1} }{k} = v \cdot t

k2r(t)21=(vtk)2 k^2 \cdot r(t)^2 -1 = (v \cdot t \cdot k)^2

1r2(t)=1v2t2+1k2 \dfrac{1}{r^2(t)} = \dfrac{1}{v^2 t^2 + \dfrac{1}{k^2}}

Substituindo e integrando no tempo:

π=v(kT1k0T1v2t2+1k2dt) \pi = v \cdot \left (k \cdot T – \dfrac{1}{k} \cdot \int_{0}^{T} \dfrac{1}{v^2 t^2 + \dfrac{1}{k^2}} dt \right)

π=v(kTarctan(vkT)v) \pi = v \cdot \left (k \cdot T – \dfrac{\arctan (v \cdot k \cdot T)}{v} \right)

π=vkTarctan(vkT) \pi = v \cdot k \cdot T – \arctan (v \cdot k \cdot T)

Mas, temos pela equação (3)(3) que:

vkT=k21v \cdot k \cdot T = \sqrt{k^2 -1}

Logo,

arctan(k21)=k21π \arctan \left (\sqrt{k^2 -1} \right) = \sqrt{k^2 -1} – \pi

k21=tan(k21π)=tan(k21) \sqrt{k^2 -1} = \tan \left ( \sqrt{k^2 -1} – \pi \right ) = \tan \left ( \sqrt{k^2 -1} \right )

Resolvendo com a menor solução real positiva de tanx=x\tan x = x:

k21=4.49340945790906... \sqrt{k^2 -1} = 4.49340945790906…

k=4.603338848751693... k = 4.603338848751693…

Letra b)

Seja k=0.99klimk = 0.99 \cdot k_{lim}

A estratégia será o Luke fazer o passo (1) da solução ótima 1, e seguir no passo (2) com o ângulo alpha tal que:

sinα=1kr \sin \alpha = \dfrac{1}{k \cdot r}

Tomando v=1v=1, o tempo que o passo (2)(2) se passará será:

T=k21k=0.975628717035808... T = \dfrac{ \sqrt{k^2 -1 } }{k} = 0.975628717035808…


Solução ótima 1 – Henrique Fiuza (Giant Steps)
Solução ótima 2 – Renan Ferreira (Giant Steps)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza cookies para aprimorar sua experiência, ou seja, armazenamos dados para análise e para produção de conteúdo adaptado ao seu interesse. Ao clicar em "Aceito" você concorda em armazenar cookies em seu dispositivo. Para saber mais, leia nossa Política de privacidade e Cookies.