Vai alla freccia - Homepage - BlogRoom - Mappa
Visualizza Messaggi.


Nick: AntScardi
Oggetto: re:non è vero
Data: 19/3/2007 20.15.36
Visite: 38

Grande D'Alessio!
Cmq io l'ho implementato l'anno scorso... se ti serve eccotelo!

function siteOrder = pageRank(G, itermax, tol);
%
%
% ORDINAMENTO DI UN INSIEME DI PAGINE WEB ATTRAVERSO
% L'ALGORITMO PAGERANK DI GOOGLE
%
%
% siteOrder = pageRank(G,itermax,tol)
%==========================================================================
%SCOPO
% La routine ordina un insieme di pagine web in base alla loro importanza
% utilizzando l'algoritmo del PageRank che costituisce il cuore del motore
% di ricerca Google
%==========================================================================
%USO
% siteOrder = pageRank(G,itermax,tol)
%==========================================================================
%PARAMETRI DI INPUT
% G -> Matrice delle adiacenze dell'insieme delle pagine Web da ordinare
% piena o sparsa
% itermax -> Numero massimo di iterazioni consentite
%
% tol -> Tolleranza richiesta in termini di cifre significative
%
%==========================================================================
%PARAMETRI DI OUTPUT
%
% siteOrder -> Matrice che contiene gli indici delle pagine Web ed il
% relativo Rank ordinati dalla meno importante alla più
% importante in base al Rank stesso
%==========================================================================
%TABELLA CODICI DI ERRORE
% ERR SIGNIFICATO
% 1 Numero di parametri in ingresso non corretto:
% inserire in ingresso una matrice, il numero max di iterazioni e la
% tolleranza richiesta
% 2 Errore di dimensioni:
% la matrice G inserita non è quadrata
% 3 Matrice di adiacenza non valida:
% gli elementi di G devono essere tutti 0 o 1
%
%==========================================================================
%ESEMPI
% siteOrder = pageRank(G,itermax,tol)
%==========================================================================
%
%==========================================================================

%==========================================================================


%Controllo sui parametri di input
if(nargin ~= 3)
error(['Numero di parametri in ingresso non corretto',10,...
'Errore: 1, consultare la tabella degli errori']);

% Controllo sulle dimensioni della matrice in ingresso
elseif(size(G,1) ~= size(G,2))
error(['Errore di dimensioni',10,...
'Errore: 2, consultare la tabella degli errori']);

% Controllo sui singoli elementi di G (devono essere 1 o 0)
elseif (length(find(G > 1 | G < 0)))
error(['Matrice di adiacenza non valida',10,...
'Errore: 3, consultare la tabella degli errori']);
end

%Controllo su eventuali pagine che si autoreferenziano ed eliminazione
%dei link di autoreferenza
if(length(find(diag(G))) ~= 0 )
disp('Eliminzione dei link delle pagine che si autoreferenziano');
G=G-diag(diag(G));
end

%Controllo sulla presenza di eventuali "pagine trappola" ed inserimento
%delle uscite di sicurezza
L = length(G);
c=sum(G);
z=find(c==0);
if (length(z) ~= 0)
disp('Eliminzione delle trappole');
for i=1:length(z)
G(:,z(i))=ones(L,1);
end
%Rimetto a posto eventuali link di autoreferenza ottenuti involontariamente
%con l'operazione precedente
G=G-diag(diag(G));
end


%Costruzione della matrice A e del vettore b ed applicazione del metodo di Jacobi
c=sum(G);
C=spdiags(1./c',0,L,L);
I=speye(L,L);
A= I - 0.85*G*C;
[R C I] = msparsa(A);
b=0.15/L*ones(L,1);
xin=ones(L,1)/L;
[sol,niter] = jacob(R, C, I, b, xin,0,itermax,tol); %Calcolo dei Rank


%Ordinamento delle pagine in base al Rank ottenuto dal più piccolo al più grande
siteOrder =[ [1:L]',sol];
siteOrder = sortrows(siteOrder,2);

%Pulizia della memoria prima di terminare
clear z A c C I b xin R C I L;



return



Rispondi al Messaggio | Indietro | Indice topic | Quota Testo | Vai su| Segnala ad un amico|Successivo


Google Time   19/3/2007 19.53.14 (162 visite)   Forssell
   re:spiegazione   19/3/2007 19.58.6 (55 visite)   FoggyPunk
   re:Google Time   19/3/2007 19.58.28 (47 visite)   |Xanadu|
   Uah   19/3/2007 20.0.0 (69 visite)   DarkSa|nt
      re:Uah   19/3/2007 20.5.20 (43 visite)   Forssell
         re:Uah   19/3/2007 20.6.34 (38 visite)   |Xanadu|
         non è vero   19/3/2007 20.7.18 (41 visite)   DarkSa|nt
            re:non è vero   19/3/2007 20.9.20 (38 visite)   Forssell
            re:non è vero   19/3/2007 20.15.36 (37 visite)   AntScardi
               re:non è vero   19/3/2007 20.16.22 (35 visite)   Forssell
                  re:non è vero   19/3/2007 20.17.48 (35 visite)   AntScardi
                     re:non è vero   19/3/2007 20.18.41 (37 visite)   Forssell
                     Collega   19/3/2007 20.22.5 (34 visite)   DarkSa|nt
                        re:Collega   19/3/2007 20.23.15 (36 visite)   AntScardi (ultimo)

Nick:
Password:
Oggetto:
Messaggio:

vai in modalità avanzata
                 


Rimani nel thread dopo l'invio


Ricerca libera nel sito by Google (Sperimentale, non sono ancora presenti tutti i contenuti)

Google
 



Clicca per leggere le regole del forum



Imposta IRCNapoli come homepage

Clicca per andare sul forum di prova.
IRCNapoli "Un racconto a più mani".
Mappa del forum

Visualizza tutti i post del giorno 19/03/2007
Visualizza tutti i post del giorno 22/07/2025
Visualizza tutti i post del giorno 21/07/2025
Visualizza tutti i post del giorno 20/07/2025
Visualizza tutti i post del giorno 19/07/2025
vai in modalità avanzata