Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
naldi@dc.ufscar.br
Agradecimentos
●
Aos professores Mário Felice e Diego Furtado por ceder
parte do material utilizado.
●
Material inspirado nas aulas do prof. Tim Roughgarden
Lembrando…
●
Qual produto recomendar para um cliente a partir de uma
compra anterior?
– Mais semelhante(s)
3
Agrupamento
●
Seres inteligente categorizam “coisas” naturalmente
– Usando diferença/semelhança entre elas
4
Representação
●
Objetos podem ser representados como vetores d
dimensionais de características
– Assim, são como pontos em um espaço de d-
dimensões
ID Proprietário E. Civil Renda Investe
●
Problema de agrupamento em k grupos com
espalhamento máximo
●
Entradas:
– Um conjunto de pontos S
– Uma função de distância/dissimilaridade entre
os pontos
– Um inteiro positivo k
Solução
●
Agrupar os pontos de S em k grupos de modo a
maximizar a distância entre os grupos
●
Ou seja, construir grupos que maximizem a função:
min d ( p , q), ∀ i≠ j
p∈C i , q∈C j
●
Nesse problema, devemos separar os k grupos o mais
longe possível, ou seja, maximizar a menor distância
entre os grupos escolhidos.
– A menor distância entre dois grupos é a menor das
distâncias entre todos os pares de pontos que
pertencem a grupos distintos
●
Por isso, a estratégia gulosa é unir, a cada iteração, o par
de vértices separado mais próximo.
– A cada união, funde-se dois grupos. Como
começamos com cada ponto em um grupo isolado e
queremos terminar com k clusters, o algoritmo termina
depois de unir os n – k pares de pontos separados
mais próximos.
Exemplo: Algoritmo Agrupamento
●
Começando pelo agrupamento trivial, onde cada objeto
é um grupo (categoria)
9
Idade
Algoritmo Agrupamento
●
Aglomeramos os dois
grupos mais próximos
10
Idade
Algoritmo Agrupamento
●
Continuamos aglomeramos
os dois grupos mais próximos
11
Idade
Algoritmo Agrupamento
●
Continuamos aglomeramos
os dois grupos mais próximos
12
Idade
Algoritmo Agrupamento
●
Continuamos aglomeramos
os dois grupos mais próximos
Nesse
caso,
houve
empate
na
distância
!
13
Idade
Algoritmo Agrupamento
●
Continuamos aglomeramos
os dois grupos mais próximos
14
Idade
Algoritmo Agrupamento
●
Continuamos aglomeramos
os dois grupos mais próximos
15
Idade
Algoritmo Agrupamento
●
Continuamos até que o
número de grupos procurado
seja satisfeito!
16
Idade
Algoritmo Agrupamento
●
Número de grupos
atual k = 7
17
Idade
Algoritmo Agrupamento
●
Número de grupos
atual k = 6
18
Idade
Algoritmo Agrupamento
●
Número de grupos
atual k = 4
19
Idade
Algoritmo Agrupamento
●
Número de grupos
atual k = 3
20
Idade
Algoritmo Agrupamento
●
Número de grupos
atual k = 2
21
Idade
Algoritmo Agrupamento
●
Número de grupos
atual k = 1
22
Idade
Agrupamento e Kruskal
●
Note que o este algoritmo corresponde a uma
variante do algoritmo de Kruskal em que
– Pontos são vértices
– Pares de pontos são arestas
– Distâncias entre pares são custos das
arestas
●
O algoritmo para quando obtém k componentes
conexos (que correspondem aos grupos)
Algoritmo Agrupamento Distância Mínima
●
Qual é a eficiência do algoritmo?
Eficiência Computacional
●
Qual é a eficiência do algoritmo?
– A mesma que Kruskal sobre grafo
completamente conexo
●
O(m log n)
– Como m é aproximadamente n² em grafo
conexo, temos algo como:
●
O(n² log n)
Prova de Corretude
●
Se P e P’ são iguais, então elas tem o mesmo
espaçamento e o resultado segue (Caso 1)
Prova de Corretude
●
Se P e P’ são iguais, então elas tem o mesmo
espaçamento e o resultado segue (Caso 1)
●
(Caso 2) Se as soluções são diferentes, sejam p
e q um par de pontos que está no mesmo grupo
na solução gulosa P e em grupos diferentes na
solução arbitrária P’
– Note que um par assim deve existir para
validar o caso
Prova de Corretude
●
Agora temos um subcaso fácil e um difícil
– (fácil) p e q foram unidos diretamente pelo
algoritmo guloso. Note que, com o algoritmo
guloso une sempre o par separado mais
próximo, neste caso o espaçamento da
solução gulosa (e) é pelo menos d(p,q), i.e.,
●
e >= d(p,q), pois para chegar a unir p e qo
algoritmo guloso certamente já uniu todos
os pares mais próximos que p e q.
Prova de Corretude
●
Mas, como p e q estão em grupos diferentes na
outra solução P’, temos que o espaçamento dela
é no máximo e, i.e.,
– espaçamento de C’1, …, C’k <= d(p,q) <= e
●
o que conclui o caso fácil.
Prova de Corretude
●
(difícil) No caso difícil, p e q não foram fundidos
diretamente, quer dizer, eles acabaram no
mesmo grupo porque algum elemento do grupo
de p foi fundido com algoritmo elemento do
grupo em que estava q
– Observe que, como todo elemento começa
isolado, podemos descreve um caminho das
fusões que levaram p e q a terminarem juntos.
Prova de Corretude
●
No desenho, cada aresta indica uma fusão
direta. Observe que, como p e q estão em
grupos distintos em P’, em algum momento o
caminho que começa em p vai deixar o grupo
C’i, para algum i, a qual ele pertença
Prova de Corretude
●
Para concluir, basta observar duas coisas:
1.ar, as foram fundidos diretamente na solução
gulosa. Portanto, d(ar, as) <= e (pelos mesmos
motivos que argumentamos para p e q no
caso fácil)
2.ar, as estão em grupos distintos em P’.
Portanto, espaçamento C’1, …, C’k <= d(ar, as)
●
Juntando 1 e 2 concluímos a prova.