Luca, desde que um ano se passou, você provavelmente já pesquisou sua própria resposta. Estou respondendo algumas de suas perguntas aqui apenas para registro. Reviso alguns algoritmos de relaxamento lagrangiano para os problemas mencionados e esboço a conexão com a aprendizagem (em particular, seguindo conselhos de especialistas). Eu não comento aqui sobre algoritmos SDP.
Observe que os algoritmos específicos mencionados não são executados em tempo quase linear. (Existe um algoritmo de tempo quase linear para
explicitamente dados problemas de empacotamento ou cobertura. Consulte
Simulação de batimento para empacotamento fracionário e cobertura de programas lineares .) Os algoritmos que você tem em mente geralmente têm variantes que são executadas em um número quase linear de iterações , mas cada a iteração normalmente requer pelo menos tempo linear também. Discuto alguns desses algoritmos abaixo.
Algumas funções úteis
Antes de começar, aqui estão algumas funções que usaremos nos esboços de prova. (Se você estiver interessado nos algoritmos, mas não nos detalhes da prova, poderá pular adiante.) Para qualquer vetor , defina como . Esta função é um limite superior em :
Analogamente, defina como , um limite inferior em .yLmax(y)ln∑iexp(yi)maxiyimaxiyi ≤ Lmax(y) ≤ maxiyi+lnm.
Lmin(y)−Lmax(−y)miniyi
Por conveniência, a seguir, usamos para indicar o gradiente de Lmin. Usamos para denotar o gradiente de Lmax.g(y)∇Lmin(y)G(y)∇Lmax(y)
Explicitamente, é
enquanto é .gi(y)exp(−yi)/∑i′exp(−yi′)Gi(y)exp(yi)/∑i′exp(yi′)
Lmin e Lmax são lisas no seguinte sentido: para qualquer vectores e ,
e
d∈[0,ε]ny∈RnLmin(y+d) ≥ Lmin(y) + (1−O(ε))d⋅g(y)
Lmax(y+d) ≤ Lmax(y) + (1+O(ε))d⋅G(y).
Observe que os dois gradientes têm 1 norma igual a 1:
. (Em todo o tempo, usamos para denotar a norma 1).|G(y)|=|g(y)|=1|z|
Observe também que, para uma matriz , o gradiente da função em relação a
é (pela regra da cadeia) . Mais explicitamente, a derivada parcial da função em relação a
é . Da mesma forma, a derivada parcial de Lmax
em relação a é .Ax↦Lmin(Ax)x(g(Ax))TAxj∑iAijexp(−Aix)/∑iexp(−Aix)(Ax)xj∑iAijexp(Aix)/∑iexp(Aix)
Tampa fracionária do conjunto
Corrija uma instância de Set-Cover. Deixe denotar o elemento / conjunto da matriz de incidência. Assim, se , mais 0 e é a extensão em que a cobertura fracionária cobre o elemento .AAes=1e∈sAexxe
O LP é . Dado , o algoritmo émin{|x|:Ax≥1;x≥0}ε∈(0,1)
- Inicialize todos . Seja . xs=0N=log(n)/ε
Repita até : mineAex≥N
2.1 Escolha maximizando a derivada parcial de Lmin wrt .
(Explicitamente, escolha maximizando .) s(Ax)xs
s∑e∈sexp(−∑s′∋exs′)
2.2 Aumente em . xsε
Retornar .x/mineAex
O algoritmo retorna uma solução aproximada nas , em que é o número de elementos e é o ideal cobertura fracionária do conjunto (trivialmente ). (Um algoritmo semelhante aparece no artigo mencionado por Chandra . A Vertex Cover é obviamente um caso especial.)(1+O(ε))O(|x∗|log(n)/ε2)nx∗|x∗|≤n
( Observação: observe que o limite da iteração não depende do número de conjuntos, apenas do número de elementos. Portanto, o algoritmo pode ser usado com um sistema de conjuntos definido implicitamente, desde que, considerando os pesos, os elementos possam ser eficientemente encontre um conjunto de peso total máximo (ou quase máximo). Esse tipo de oráculo é igual ao oráculo de separação necessário para aplicar o algoritmo elipsóide ao problema duplo . Para problemas de empacotamento, como empacotamento definido, você precisa de um oráculo que, dados pesos nos elementos, retorna um conjunto que minimiza o peso total. Para problemas como fluxo de várias mercadorias, você pode, por exemplo, precisar encontrar um caminho que minimize a soma de alguns pesos de borda determinados.)
Aqui está um esboço da prova da garantia de desempenho. Em cada iteração, a derivada parcial correspondente a escolhida
é pelo menos, em que é a cobertura ideal do conjunto fracionário.s1/|x∗|x∗
(Para entender por que, lembre-se de que o gradiente de Lmin em relação a é . Se escolhermos um conjunto aleatoriamente na distribuição , o valor esperado da derivada parcial em relação a
seria assim . Como , este é pelo menos . Como , isso é pelo menos . Portanto, deve haver alguns dêem derivada parcial pelo menos . Como o algoritmo escolhe(Ax)x(g(Ax))TAs′x∗/ | x∗|xs′( g( A x ) )TA x∗/ | x∗|A x∗≥ 1|g(Ax)|/|x∗||g(Ax)|=11/|x∗|s1/|x∗|xsem cada iteração para maximizar
a derivada parcial, ela atinge uma derivada parcial de pelo menos.) 1 / | x * |1/|x∗|
Em seguida, o tamanho da etapa é escolhido pequeno o suficiente para que nenhuma coordenada de aumente mais que . Portanto, devido à suavidade do Lmin, aumentar
para aumenta em pelo menos
.εAxεxsxs+εLmin(Ax)(1−O(ε))ε/|x∗|
Dessa maneira, o algoritmo mantém a invariante
(Observe que Lmin é igual a .)Lmin(Ax)≥(1−O(ε))|x|/|x∗|−lnn.
(0¯¯¯)lnn
Na terminação, na invariante, o termo é vezes o lado esquerdo, portanto, pelo cálculo, obtém-se. Após a normalização na última linha do algoritmo, isso implica.lnnO(ε)mineAex≥(1−O(ε))|x|/|x∗||x|≤(1+O(ε))|x∗|
FWIW, as desigualdades envolvidas na prova do invariante são essencialmente as mesmas que as envolvidas na prova do limite de Chernoff. (De fato, esse algoritmo pode ser derivado aplicando o método de probabilidades condicionais a um esquema de arredondamento aleatório que amostra repetidamente conjuntos da distribuição
(com substituição), aumentando para cada conjunto amostrado Essa derandomização disso fornece o algoritmo: a invariante subjacente é apenas que o estimador pessimista permanece abaixo de 1. As penalidades exponenciais no estimador pessimista vêm do uso de Chernoff ligado na análise do esquema de arredondamento. no artigo que Chandra mencionou .)x∗/|x∗|xss
Tampa fracionária do conjunto ponderado (e cobertura fracionária geral)
Para lidar com problemas como a tampa do conjunto ponderado de maneira eficiente , modificamos o algoritmo para usar incrementos não uniformes (uma ideia devido a Garg e Konemann ).
O LP é , em que varia sobre os elementos, varia sobre os conjuntos e todas as variáveis não são -negativo. Para apresentar o algoritmo, primeiro reescreva o problema como um problema geral de cobertura. Deixe para e de outro modo. Então (com uma mudança de variáveis, escalando cada por ), o LP é , que podemos ver como um LP de cobertura geral. Aqui está o algoritmo:min{c⋅x:(∀e)∑s∋exs≥1}esAes=1/cse∈sAes=0xscsmin{|x|:Ax≥1;x≥0}
Inicialize todos . Seja .xs=0N=log(n)/ε
Repita até que todas as restrições de cobertura tenham sido excluídas:
2.1 Escolha maximizando a derivada parcial de Lmin wrt .
(Explicitamente, escolha maximizando .)s(Ax)xs
s∑e∈sexp(−∑s′∋exs′)/cs
2.2 Aumente em , onde é escolhido no máximo, de modo que, para cada restrição de cobertura restante , o aumento em seja no máximo .xsδδeAe⋅xε
2.3 Apagar todos os constrangimentos que cobrem de tal modo que .eAe⋅x≥N
Retornar .x/mineAe⋅x
O algoritmo retorna uma solução aproximada nas iterações , em que é o número de restrições de cobertura. (Cada iteração aumenta alguns restantes em ; isso pode acontecer apenas vezes com uma restrição antes de ser excluída.) A prova de correção é basicamente a mesma invariante da Set Cover.(1+O(ε))O(nlog(n)/ε2)nAexεN/ε
A cobertura ponderada de vértice é um caso especial.
Correspondência bipartida fracionária máxima
Dado um gráfico , o LP natural para o problema é .G=(U,W,E)max{|x|:∀v.∑e∋vxe≤1}
Na representação matricial, esse é um LP
com coeficientes 0-1 ( se ). Tais problemas não exigem incrementos não uniformes; portanto, um algoritmo simples, análogo ao algoritmo Set Cover não ponderado (mas para empacotamento), fará:max{|x|:Ax≤1;x≥0}Ave=1v∈e
- Inicialize todos . Seja .xe=0N=log(n)/ε
Enquanto :Ax<N
2.1 Escolha minimizando a derivada parcial de Lmax wrt .
(Explicitamente, escolha para minimizar .)e(Ax)xe
e∑v∈eexp(∑e′∋vxe′)
2.2 Aumente em . xeε
Retornar .x/maxvAvx
O algoritmo retorna uma solução aproximada nas iterações . (Isso ocorre porque cada iteração aumenta by e, finalmente, antes da normalização, .)(1−O(ε))O(nlog(n)/ε2)|x|ε|x|=O(Nn)
Apenas por diversão, aqui está um curioso algoritmo alternativo para o Perfect Bipartite Matching. Lembre-se de que . Seja.G=(U,W,E)n=|U|=|W|
- Inicialize todos . Seja . xe=0N=4ln(n)/ε
Repita vezes:nN
2.1 Escolha uniformemente aleatoriamente a partir de .
2.2 Escolha modo que minimizando .
2.3 Aumente em . uU
w(u,w)∈E∑e∋wxe
xuwε
Retorno .x/N
Se tiver uma correspondência perfeita, o algoritmo retornará um tal que e, com alta probabilidade, para todos os vértices , e para todos os vértices , . Se você estiver interessado nos detalhes da prova, pergunte ...Gx|x|=nu∈U1−O(ε)≤∑e∋uxe≤1+O(ε)w∈W∑e∋wxe≤1+O(ε)
Embalagem e Cobertura Mistas
Você pode ter perguntado sobre a correspondência bipartida na esperança de obter um exemplo de um problema misto de embalagem e cobertura, ou seja, uma das formas
Aqui está um algoritmo para esses problemas. Primeiro, normalizar modo que e .∃x? Px≤p;Cx≥c;x≥0.
p=1¯¯¯c=1¯¯¯
Seja o número de restrições (linhas em mais linhas em ).mPC
- Inicialize todos . Seja .xj=0N=2ln(m)/ε
Enquanto :Px<N
2.1 Escolha para que a derivada parcial de Lmax em relação a seja no máximo a derivada parcial de Lmin em relação a . (Explicitamente, escolha tal quej(Px)xj(Cx)xjj∑iPijexp(Pix)∑iexp(Pix)≤∑iCijexp(−Cix)∑iexp(−Cix).)
2.2 Aumente em , onde é escolhido no máximo, de forma que nenhuma restrição ou a restrição restante aumente em mais de .xjδδPixCixε
2.3 Apagar todos os constrangimentos que cobrem tal que .iCix≥N
Retornar .x/maxiPix
Supondo que o problema fornecido seja viável, o algoritmo retorna um tal que
e . O número de iterações é , porque cada iteração aumenta alguma restrição em , e isso pode ocorrer para cada restrição no máximo vezes.xPx≤1Cx≥1−O(ε)O(mln(m)/ε2)εN
A prova de correção é feita através da invariante
O invariante implica
No final, o lado esquerdo é , comprovando a garantia de desempenho.Lmax(Px)≤2ln(m)+(1+O(ε))Lmin(Cx).
maxPx≤2ln(m)+(1+O(ε))minCx.
Ω(log(m)/ε)
Na etapa 2.1, o desejado deve existir desde que o problema original seja viável. (Isso ocorre porque, para qualquer possível e qualquer , se escolhermos um aleatório da distribuição , o valor esperado da derivada parcial de Lmax em relação a
seria no máximo (consulte o esboço de prova anterior para Set Cover). Da mesma forma, o valor esperado da derivada parcial de Lmin em relação a
seria pelo menos . Portanto, existe umjx ∗ x j ′ x ∗ / | x * | ( P x ) x j ′ 1 / | x * | x∗xj′x∗/|x∗|(Px)xj′1/|x∗|(Cx)xj′1/|x∗|jtal que a derivada parcial de Lmax em relação a
seja no máximo a derivada parcial de Lmin .)(Px)xj′(Cx)
Em seguida, a invariante é mantida em cada iteração porque, pela escolha de e , e pela suavidade de Lmin e Lmax, aumentar para
aumenta Lmax
em no máximo
vezes o aumento de Lmin .xjδxjxj+δ(Px)1+O(ε)(Cx)
Aprendizagem (após especialistas / reforço)
Uma referência para entender essa conexão é o
jogo adaptável usando pesos multiplicativos , de Freund e Schapire. Aqui está um resumo rápido para fornecer a ideia técnica.
Considere o seguinte jogo repetido. Em cada rodada : t
- Você escolhe uma distribuição de probabilidade em (os chamados especialistas ). pt[n]n
- Conhecendo , o adversário escolhe um vetor de pagamento . ptat∈[0,1]n
- Você recebe o pagamento pela rodada. pt⋅at
O jogo para após algumas rodadas. Seu objetivo é minimizar seu arrependimento em comparação com qualquer especialista (ie, estratégia pura) . Ou seja, seu objetivo é minimizar .i(maxi∑tati)−∑tpt⋅at
Corrija qualquer . Deixe o vetor denotar , isto é,
vezes a soma do vetor dos vetores de payoff até o tempo . Lembre-se de que é o gradiente de Lmax .ε>0ytε∑s≤tasεtG(y)(y)
Aqui está a estratégia básica que analisaremos:
Na rodada , escolha para ser .tptG(yt−1)
Por inspeção, isso dá o resultado na rodada .at⋅G(yt−1)t
Devido à propriedade de suavidade de ,
Ou seja, em cada rodada, não pode aumentar em mais de vezes o seu pagamento. Como , isso mantém a invariante de que
é no máximo o seu tempo total de pagamento , mais por outro lado, o seu pesar em comparação com o melhor especialista.
é , ou seja,FLmax(yt)≤Lmax(yt−1)+(1+O(ε))εat⋅G(yt−1).
Lmax(yt)ε(1+O(ε))Lmax(0¯¯¯)=lnnLmax(yt)ε(1+O(ε)ln(n)imaxi∑tatiε−1maxiyti ε - 1 Lmax ( y t ), que, por sua vez, é no máximo .ε−1Lmax(yt)
Portanto, seu arrependimento é no máximo , mais vezes o seu pagamento total.ε−1ln(n)O(ε)
Observação: Eu acho que, como Freund e Schapire apontam, um algoritmo de "reforço" (na teoria da aprendizagem) também está implícito nessa análise. Veja o artigo deles para mais detalhes.
Minimizando o pagamento total
Você pode derivar uma estratégia semelhante para a configuração em que o objetivo é minimizar , em vez de maximizar, o pagamento total. Seu arrependimento, que você ainda deseja minimizar, é . Nesse caso, a estratégia correspondente é escolher para ser o gradiente de . Com essa estratégia, seu arrependimento é novamente no máximo
mais vezes seu pagamento total.∑tpt⋅at−miniatiptLmin(yt)ε−1lnnO(ε)
Conexão com algoritmos de relaxação lagrangiana
Para ver a conexão com os algoritmos de relaxação lagrangiana, corrija uma instância de Set-Cover. Considere o último tipo de jogo (com o objetivo de minimizar os ganhos), em que os especialistas correspondem aos elementos do seu sistema definido. Em cada rodada, escolha a distribuição de probabilidade
para ser o gradiente de Lmin como acima, e faça com que o adversário escolha o vetor de payoff em função de seguinte maneira:
escolha o conjunto maximizando , então deixe se , e caso contrário.ept(yt)atpts t Σ e ∈ s p t e uma t e = 1 e ∈ s t a t e = 0st∑e∈spteate=1e∈state=0
Dada a condição de parada correta (discutida abaixo), esse processo fornece exatamente o algoritmo Set-Cover discutido no início.
A garantia de desempenho do algoritmo segue do arrependimento vinculado da seguinte forma. Seja o número de vezes que o adversário escolheu set durante a jogada. Seja a cobertura ideal do conjunto fracionário. Sejaser o número de rodadas jogadas. O limite de arrependimento implica
Xssx∗T=|Xs|∑tat⋅pt≤ε−1ln(m)+mine∑tate.
Usando a definição de , o th recompensa (o prazo th na soma à esquerda) é igual a . O adversário escolheu para minimizar esse pagamento. Se o adversário tivesse escolhido aleatoriamente na distribuição, a expectativa do pagamento seria
(Acima, usamos esse para todos os e ) Como cada recompensa é pelo menosattt∑e∈stpteststx∗/|x∗|∑sx∗s|x∗|∑e∈spte = 1|x∗|∑epte∑s∋ex∗s ≥ 1|x∗|∑epte = 1|x∗|.
∑s∋ex∗s≥1e|pt|=11/|x∗|, o limite de arrependimento implica
Pela definição de , temos (cada rodada escolhe um conjunto) e , fornecendo
Paramos o processo quando , então (reorganizando os termos)
Ou seja, normalizar fornece no máximo uma cobertura fracionada de conjunto vezes ótimo.T|x∗|≤ε−1ln(m)+mine∑tate.
X|X|=T∑tate=∑e[e∈st]=∑s∋eXs|X||x∗|≤ε−1ln(m)+mine∑s∋eXs.
mine∑s∋eXs=Ω(ε−2lnm)|X|mine∑s∋eXs ≤ (1+O(ε)|x∗|.
X(1+O(ε))
Observação: De certa forma, essa interpretação da teoria da aprendizagem generaliza a interpretação algorítmica. No entanto, algumas das técnicas algorítmicas necessárias para a eficiência (como incrementos não uniformes e eliminação de restrições de cobertura satisfeitas) não parecem ser levadas naturalmente para a configuração da teoria da aprendizagem. Da mesma forma, algoritmos para
embalagem mista e cobertura de LPs (por exemplo, esses ) não parecem ter análogos naturais no cenário da teoria da aprendizagem.