Este é o seguimento de uma pergunta recente feita por A. Pal: Resolvendo programas semidefinidos em tempo polinomial .
Ainda estou intrigado com o tempo de execução real de algoritmos que calculam a solução de um programa semidefinido (SDP). Como Robin apontou em seu comentário à pergunta acima, os SDPs não podem ser resolvidos no tempo polinomial em geral.
Acontece que, se definirmos nosso SDP com cuidado e impormos uma condição de quão bem limitada é a região primal viável, podemos usar o método elipsóide para fornecer um limite polinomial para o tempo necessário para resolver o SDP (consulte a Seção 3.2 em L. Lovász, programas semidefinidos e otimização combinatória ). O limite dado existe um " tempo polinomial " genérico e aqui estou interessado em um limite menos grosso.
A motivação vem da comparação de dois algoritmos usados para o problema da separabilidade quântica (o problema real não é relevante aqui, portanto, não pare de ler os leitores clássicos!). Os algoritmos são baseados em uma hierarquia de testes que podem ser convertidos em SDPs, e cada teste na hierarquia está em um espaço maior, ou seja, o tamanho do SDP correspondente é maior. Os dois algoritmos que eu quero comparar diferem na seguinte troca: no primeiro, para encontrar a solução, você precisa escalar mais etapas da hierarquia e no segundo, as etapas da hierarquia são mais altas, mas você precisa escalar menos deles. É claro que, na análise dessa troca, é importante um tempo de execução preciso do algoritmo usado para resolver o SDP. A análise desses algoritmos é feita por Navascués et al. em arxiv: 0906.2731, onde eles escrevem:
... a complexidade de tempo de um SDP com variáveis e com tamanho de matriz n é O ( m 2 n 2 ) (com um pequeno custo extra proveniente de uma iteração de algoritmos).
Em outro artigo , onde essa abordagem do problema foi proposta pela primeira vez, os autores dão o mesmo limite, mas usam o termo mais cauteloso " número de operações aritméticas " em vez de " complexidade do tempo ".
Minha pergunta é dupla:
- Qual algoritmo / limite são Navascués et al. referindo-se a?
- Posso substituir a expressão "tempo polinomial" em Lovász por algo menos grosseiro (mantendo as mesmas suposições)?
fonte
Respostas:
Não estou familiarizado com detalhes do método elipsóide especificamente para programas semi-definidos, mas mesmo para programas lineares , a análise do método elipsóide é bastante sutil.
Primeiro, é necessário vincular o número de iterações do algoritmo elipsóide ideal . Vamos ser o ellispoid usado no i th iteração do algoritmo elipsóide, e deixe c i ser seu centróide. No algoritmo ideal, um oráculo de separação / filiação lhe dá uma halfspace h i que contém o ideal ponto x * , mas não o centróide c i . O próximo elipsóide E i + 1 é o menor elipsóide que contém E i ∩ h i . Para cada i , temosEi i ci hi x∗ ci Ei+1 Ei∩hi i , ondenrepresenta a dimensão. Assim, dado um elipsóide inicial razoável, o número de iterações é polinomial emnelog(1/ε). CalculandoEi+1deEiehirequer (grosseiramente)O(n2)operações aritméticas. Portanto, o número de operações aritméticas também é polinomial emnelog(vol(Ei+1)<(1−1n)⋅vol(Ei) n n log(1/ε) Ei+1 Ei hi O(n2) n .log(1/ε)
No entanto, algumas dessas operações aritméticas têm raízes quadradas! Segue-se que os coeficientes do ideal elipsóide são números irracionais de grau 2 i , e assim não há nenhuma esperança de realmente computação E i + 1 exatamente em qualquer tempo razoável. Então, ao invés, um calcula uma aproximação exterior perto ~ E eu ⊃ E eu a cada iteração usando aritmética de precisão finito. Grötschel, Lovasz e Schrijver provar que, se uma utilidades (digamos) 10 i bits de precisão do i th iteração, ainda temos v o l (Ei 2i Ei+1 E~i⊃Ei 10i i , de modo que o número de iterações aumenta por, no máximo, um factor constante. Mas agora cada operação aritmética durante oith iteração (incluindo as operações realizadas pelo oráculo de separação) requerO(ipolylogi)tempo.vol(E~i+1)<O(1−1n)⋅vol(E~i) i O(i polylog i)
Ao todo, o tempo total do método elipsóide de execução é muito aproximadamente o quadrado do número de operações aritméticas. Uma vez que o número de operações aritméticas é polinomial em e log ( 1 / ε ) , de modo que o tempo de execução.n log(1/ε)
fonte