Algoritmo de PageRank no MatLab
O algoritmo PageRank classifica páginas web a partir do princípio de ligações entre elas. Se diversas páginas apontam para uma página X, por exemplo, a partir do algoritmo um número PR é atribuído a ela tomando em conta essa relevância. Este número PR é maior que zero e menor que 1, o que influencia e facilita a classificação que é feita em ordem decrescente do maior para o menor, sendo que a soma do número PR de todas as páginas encontradas equivale a 1.
O algoritmo PageRank adota o seguinte método:
Onde:
- PR(p0) = PageRank da página p0
- PR(pi) = PageRank da página pi que aponta para a página p0
- c(pi) = é o número de ligações de saída (páginas que p0 aponta)
- n = número de páginas
- p = fator de amortecimento (0 < p < 1) - o Google usa 0.85
A seguir encontrasse o código de MATLAB junto com seus comentários do ranqueamento de 5 páginas. Como retorno a sua execução, um grafo ilustrando as conexões é criado, assim como uma tabela mostrando os valores obtidos.
%%%%% Algoritmo de PageRank no MATLAB %%%%% %%% marco / 2019 %%% % Calculo Numerico e Computacional % % @iojoaomarcos % %Etapa 0: limpando o prompt do MATLAB clc; %1a etapa: definir s ---> t % Definindo vertices (paginas) de saida s = {'joro.com' 'joro.com' 'joro.com' 'chameleon.net' 'chameleon.net' ... 'fridge.org' 'iojoaomarcos.blogspot.com' 'iojoaomarcos.blogspot.com' ... 'iojoaomarcos.blogspot.com' 'math.io'}; % Definindo vertices (paginas) de entrada t = {'chameleon.net' 'fridge.org' 'iojoaomarcos.blogspot.com'... 'iojoaomarcos.blogspot.com' 'joro.com' ... 'chameleon.net' 'fridge.org' 'joro.com' 'math.io' 'joro.com'}; % 2a etapa: Criar o grafo e formata-lo % O grafo eh definido pela variavel 'G' G = digraph(s,t); % Nomeando rotulos labels = {'joro.com/3' 'joro.com/3' 'joro.com/3' 'chameleon.net/2' ... 'chameleon.net/2' 'fridge.org' 'iojoaomarcos.blogspot.com/3' ... 'iojoaomarcos.blogspot.com/3' 'iojoaomarcos.blogspot.com/3' ... 'math.io'}; % Plotando o grafo e associando a 'p' p = plot(G,'Layout','layered','EdgeLabel',labels); % Formatacao do grafo highlight(p,[1 1 1],[2 3 4],'EdgeColor','g') highlight(p,[2 2],[1 4],'EdgeColor','r') highlight(p,3,2,'EdgeColor','m') title('Grafo do PageRank') % Define importancia dos nos pelo metodo 'pagerank' com % probabilidade de escolha de no sucessor de 0.85 pr = centrality(G,'pagerank','FollowProbability',0.85); % Salvando em variaveis os predecessores e sucessores ia = join(predecessors(G, 'joro.com')); ib = join(predecessors(G, 'chameleon.net')); ic = join(predecessors(G, 'fridge.org')); id = join(predecessors(G, 'iojoaomarcos.blogspot.com')); ie = join(predecessors(G, 'math.io')); predecessores = [ia;ib;ic;id;ie]; oa = join(successors(G, 'joro.com')); ob = join(successors(G, 'chameleon.net')); oc = join(successors(G, 'fridge.org')); od = join(successors(G, 'iojoaomarcos.blogspot.com')); oe = join(successors(G, 'math.io')); sucessores = [oa;ob;oc;od;oe]; % Define Colunas e imprime na tela a tabela do PageRank G.Nodes.PageRank = pr; G.Nodes.Entradas = predecessores; G.Nodes.Saidas = sucessores; G.Nodes %%% END %%%
Comentários
Postar um comentário