MIT 18.996 Aula 6 | 13 de março de 2002 Segundo Trimestre 2002 _______________________________________________________________________________ MIT 18.996: Tópicos da Teoria da Ciência da Computação: Problemas de Pesquisa na Internet – Segundo Trimestre 2002 Aula 6 | 13 de março de 2002 Palestrante: Bobby Kleinberg ([email protected]) Redator: Laura McCann 6.1 O Modelo Vamos considerar um conjunto de itens (ex.: objetos da Web armazenados em cache), um conjunto de caches (ex.: servidores) e um conjunto de diferentes exibições (ex.: clientes em diferentes partes da rede). Let I = {itens} com |I| = N Let C = {caches} COM |C| = M Let V = exibições (views) com |V| = V com |Vi | Obs.: N deve ser muito grande e, em geral, só demonstraremos resultados para N grande. Lembre-se de que a maioria dos protocolos usados para localização de objetos contém estas propriedades. • • • Localidade Escalabilidade Equilíbrio de carga Uma função hash com faixas (RHF, ranged hash function) é um mapa que obtém uma exibição e um item e armazena -os em um cache em que é possível encontrar esse item. Uma família hash com faixas (ranged hash family) é um conjunto finito de funções hash com faixas. Uma função hash com faixas aleatórias é uma amostra uniforme de um conjunto desse tipo. As propriedades de uma RHF aleatória “satisfatória” estão em um ambiente de cache distribuído: 1. Equilíbrio de carga (média de todas as exibições) 2. Localidade (no nosso modelo, distância não é uma variável na função; por isso, optamos por retirá-la) 3. Suavidade (a função não deve mudar muito quando as entradas não mudarem muito) 4. Redundância/Difusão 5. Cálculo Eficiente 6. Representação Eficiente 7. Invertível (não necessariamente desejado) 6-1 MIT 18.996 Aula 6 | 13 de março de 2002 Segundo Trimestre 2002 _______________________________________________________________________________ 6.1.1 Equilíbrio de Carga número de para algum Neste caso, usamos a variável b porque estamos exibindo-a como compartimentos. Esse é um número de itens que será armazenado em um compartimento específico. 6.1.2 Equilíbrio Equilíbrio é diferente de equilíbrio de carga. Gostaríamos que cada exibição fosse a mais equilibrada possível, de modo que o oposto de uma exibição não consiga sobrecarregar facilmente um cache. Com de alta probabilidade, atribui a fração a b. com alta probabilidade, o número de 0 se se 6.1.3 Suavidade A suavidade é determinada por quanto uma função hash muda quando a exibição muda. ?(V 1,V 2) = número de itens combinados para diferentes valores de cache. ?(V 1,V 2) = número de 6.1.4 Difusão σ(i) = número de Representa o número máximo de caches que ele consegue combinar. 6.2 RHF aleatória simples Agora temos que fornecer uma RHF aleatória simples. Normalmente, uma sugestão é escolha aleatoriamente. Essa fórmula funciona? NÃO! Ela possui propriedades de difusão inválidas. E que tal uma outra opção óbvia, escolhendo o número de caches em uma exibição? Essa opção funciona muito bem para equilíbrio, mas não para suavidade. Vamos dar uma olhada em um exemplo simples de uma difusão inválida. 1 a a X 2 b b X 3 c a X 4 a b X 5 b a X 6 c b 7 a a 8 b b 9 c a Nesse caso, existe uma alteração esperada de 2/3, o que fica ainda pior para números maiores. Vamos tentar outro exemplo. Escolha uma permutação aleatório. , 1 1 2 3 4 5 1 4 2 3 2 5 3 1 4 3 2 1 5 2 4 4 5 3 1 uniformemente e independentemente de modo 3 2 4 5 6-2 MIT 18.996 Aula 6 | 13 de março de 2002 Segundo Trimestre 2002 _______________________________________________________________________________ Dado (V,i), hash essa expressão para minimizando . Essa fórmula equaciona para a escolha do primeiro na lista (a partir da esquerda) que seja membro do conjunto V. Suponha que V = {2, 4, 5}. Então, escolheríamos 5, 5, 5, 4. Obs.: o exemplo dado em aula não foi fornecido com um gerador de números aleatórios e não contém um tamanho de amostragem suficiente para demonstrar as propriedades realmente válidas dessa RHF aleatória. Por isso, não devemos esperar receber 3 números 5 e um número 4. Teorema auxiliar: com a probabilidade Evidência: a função hash obviamente contém um bias do lado esquerdo da linha. Queremos provar que cada exibição, V, faz interseção com 1 das primeiras colunas σ no quadro com alta probabilidade. Teorema auxiliar: com probabilidade Exibições cujo tamanho seja de modo que cada compartimento receberia uma carga de . Essa fórmula informa que o fator que ela excede o perfeito é logarítmico e é um termo 0(1). Prova: coloque Com probabilidade , alguma exibição está separada de para algum i. Para qualquer compartimento b e item i Pr[b está nas primeiras colunas σ′ da linha i] = E[número de linhas para que isso ocorre] = Aplicamos a vinculação de Chernoff para obter a instrução “com alta probabilidade”. Obs.: as vinculações de Chernoff mostram que a soma não pode ser muito maior do que o esperado. Temas: comparada com uma função hash sem faixas, a difusão e carga são apenas logaritmicamente piores. Advertência: (vinculação com suavidade) Com 6.3 de alta probabilidade Uma RHF melhor obtém um ponto de modo uniforme e independente aleatoriamente. obtém um conjunto de pontos k log m de modo uniforme e independente aleatoriamente. 6-3 MIT 18.996 Aula 6 | 13 de março de 2002 Segundo Trimestre 2002 _______________________________________________________________________________ Dado um item (V,i), mapeie-o para o primeiro compartimento horário começando por ri . Precisamos dos pontos que encontrar no sentido do círculo de unidade onde K é uma constante. 6.4 Aplicações Árvores Aleatórias e Hashing Consistente – Karger, L, L, L, L, P {itens}, C = {caches} um servidor de origem s(i) Navegador: para , árvore d-nary com nós |V|. Mapeie cada nó da árvore para um cache usando uma função hash consistente e fixa, em que o termo “fixa” indica que cada navegador deve usar a mesma árvore hash consistente. Ao solicitar um objeto i, escolha um randomleaf dessa árvore. Identifique o caminho para a raiz e apresente a solicitação para o cache nessa folha, indicando o caminho inteiro. Cache: mantenha um contador , que é aumentado a cada solicitação para i. Se i estiver em cache, distribua-o. Encaminhe -o para o sucessor e armazene o objeto em cache quando o contador chegar a q (um parâmetro otimizável). O servidor de origem serve o objeto. 6.5 CHORD Não-hierárquico: cada nó conhece apenas um fator logarítmico do cache. Siga o ponteiro que leva ao local mais próximo ao ponto. Procure pela chave ou por uma maneira de chegar mais perto dela. Você espera até que alguém tenha um link direto. O número de hops é o logaritmo do número de caches. 6.6 Problema de atribuição de difusão mínima Suponha que tenhamos n itens e m caches. Os itens têm cargas e os caches têm capacidades . Objetivo: encontrar a atribuiçã o com o menor número de pontas possível. Uma atribuição fracional é uma matriz, A = (a ij ) que satisfaz a i. ii. iii. Difusão = Nosso objetivo é minimizar a difusão. Fato: o problema da atribuição da difusão mínima é NP-hard. Prova: considere o caso de 2 servidores, ρ 1 = ρ 2 = 1 e Dividimos as cargas em dois subconjuntos com somas iguais. Esse é o problema de partição. 6-4 MIT 18.996 Aula 6 | 13 de março de 2002 Segundo Trimestre 2002 _______________________________________________________________________________ Fato: existe uma aproximação 2 determinística para o problema de atribuição de difusão mínima. Prova: suponha que solicitemos do maior para o menor ρ i . Colocamos µ i no início deles. µ n deve terminar com algum ρ. Vamos supor que seja com o enésimo k, ρ k. O número de arcos é igual ao número de sub-intervalos. Contamos um para o final de todos os N µs e os K ρ s. Sendo assim, a difusão é . Agora compare com o algoritmo ideal. OPT usa, pelo menos, N pontas. K é igual ao número mínimo de k pontas. OPT obtém ≥ MAX [N,k] N + k ≤ 2MAX[N,k] Pergunta em aberto: é possível obter uma aproximação 1+ ∈ para qualquer ∈ < 1 ou ? 6.7 Problema de atribuição de round-robin de difusão mínima Uma atribuição é um round-robin se satisfizer a todas as afirmações descritas em i-iii e: iv. Dentro de cada linha A, as entradas diferentes de zero forem iguais. Problema: suponha que # itens >> que # caches. Dada uma instância de problema, determine se existe uma atribuição round-robin. Se você dividi-la em três partes iguais, elas terão que passar por diferentes servidores. Não estamos considerando apenas divisões racionais; elas devem ser . Problema: suponha que exista uma atribuição round-robin; é possível obter uma aproximação de fator constante para a atribuição de difusão mínima? Um algoritmo aleatório para a atribuição round-robin de difusão mínima. Suponha que ρ 1 = ρ 2 = ... = ρ m µ 1 < µ 2 < ... < µn Suponha que ρ m(1 + ∈ 1)µ Etapa 0: escolha uma permutação aleatória para todo i. Inicialize a atribuição Etapa (1 ≤ i ≤ N): redistribua a carga µ i igualmente entre os primeiros servidores d em πi , escolhendo o menor de modo que a carga em cada servidor continue sendo < ρ. Teorema 6.1. O algoritmo termina com uma atribuição round-robin da difusão 1 + ∈ 2 com probabilidade > 1 – ∈ 3 desde que N seja grande o suficiente. Prova: compare com um “algoritmo de referência” em que na etapa i redistribua toda a carga para p 1(1). Mostre que nosso algoritmo coincide com o “algoritmo de referência” nas etapas 1, 2, ..., N0, onde Deixe ser a carga no servidor j na etapa i do o algoritmo de referência. é um martingale. Um martingale contém Use a desigualdade de Azuma. Nenhum servidor fica sobrecarregado. 6-5 MIT 18.996 Aula 6 | 13 de março de 2002 Segundo Trimestre 2002 _______________________________________________________________________________ 6.8 Questões em Aberto 1. Melhore a vinculação inferior em N no teorema 2. Trabalhe com capacidades distintas ?s. 3. Trabalhe com gráficos de duas partes não completos. 4. Use capacidades e cargas multidimensionais. 5. Encontre outras instâncias de algoritmos cujos resultados sejam quase independentes da entrada. 6-6