Suponha que desejamos encontrar o menor elemento de um conjunto , cujos elementos são indexados de a . Não temos acesso aos valores desses elementos, mas podemos comparar quaisquer dois elementos de para ver qual é menor. Para quaisquer índices e , existe um associado custo para comparar o th e th elementos de . A matriz de custos completa é fornecida antecipadamente.1 n S i j C i , j i j S C i , j
É bem sabido que a comparações são necessárias e suficientes para encontrar o mais pequeno elemento de . No entanto, como cada comparação pode ter um custo diferente, também queremos manter o custo total das comparações o menor possível.S
Existe um algoritmo online que encontra uma sequência de comparações de pequeno custo total que encontra o menor elemento de ? n = 3 Não existe um algoritmo online que encontre o conjunto de comparações com custo total mínimo , mesmo quando , mas talvez exista um algoritmo online com pequena razão competitiva.
Em particular, permitir que o algoritmo online realize mais que comparações ajuda? É melhor fazer várias comparações baratas "extras" em vez de algumas comparações caras?
Estou especialmente interessado no caso , em que é uma métrica discreta sobre o conjunto e , por tudo que . Um algoritmo on-line ideal ainda é impossível nessa configuração. d S 0 ≤ d ( i , j ) ≤ k i , j
Todas as referências a problemas semelhantes são apreciadas. Não estou procurando alguém para resolver meu problema (embora algumas idéias possam ajudar e serem apreciadas). Eu só quero saber se esse problema é conhecido. (Não consegui encontrar nada.)
Respostas:
A análise de casos de força bruta revela que a razão competitiva ideal para o caso especial , sem outras restrições na matriz de custos, é a proporção áurea . Portanto, nenhum algoritmo on-line pode alcançar uma taxa competitiva melhor que .ϕ = ( √n=3 ϕϕ=(5–√+1)/2 ϕ
Suponha que , e .C1,2=0 C1,3=1 C2,3=ϕ
Sem perda de generalidade, o algoritmo começa comparando a , ao custo zero.S1 S2
O adversário declara .S1>S2
Se o algoritmo comparar a :S1 S3
Se o algoritmo comparar a :S2 S3
Nos dois casos, as comparações do algoritmo custam um fator de mais do que o conjunto ideal de comparações para a ordem total revelada.1+ϕϕ=ϕ1=ϕ
Em termos mais gerais, a taxa competitiva é , em que é os três custos de comparação. (Há mais casos a serem considerados aqui, porque existem algoritmos ideais que não realizam a comparação mais barata primeiro, mas a análise de casos ainda é elementar.) Cálculos tediosos implicam que a expressão é maximizado quando , e .min{a+ca+b,a+b+ca+c} a≤b≤c min{a+ca+b,a+b+ca+c} a=0 b=1 c=ϕ
Em particular, se , o melhor algoritmo possível pode ser forçado a executar as três comparações.a+ca+b>a+b+ca+c
fonte
Um começo é:
Esse é um algoritmo decente? Depende do custo relativo da classificação C vs. comparações em S:
-t.
fonte