Je voudrais implementer l'algorithme du "backrank" que voila.

http://www2005.org/cdrom/docs/p1122.pdf

Je suis donc partie de la lib Algorithm:ageRank et j'ai effectué deux modif que voila

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
# ajout du paramètre $b_factor
our $d_factor = undef; # dampening factor
my  $b_factor = undef;
 
sub factor
{
  $d_factor = $_[1]; # dampening factor
  $b_factor = $_[2]; # back button dampening factor
}



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
sub _iterate
{
  my $self = shift;
  my $iter = shift || 100;
  my $normal_factor = $d_factor/$self->{size};
  # j'ai ajouté sa aussi
  my $inv_d_factor = 1 - ($d_factor + $b_factor);
  print $self->{prvect}->slice(":");
  print $self->{graph}->slice(":");
  
  foreach (1..$iter)
  {
      # Original pagerank
      $self->{prvect} = $inv_d_factor * $self->{prvect} x $self->{graph} + $normal_factor * $self->{prvect};
      
      #$self->{prvect} = $inv_d_factor * $self->{prvect} x $self->{graph} + $normal_factor * $self->{prvect};
      #print $self->{prvect}->slice(":");
      #print sdump (($d_factor/$self->{size}) * $self->{prvect});
   }
}

Ma question est l'algo est il bien implémenté ?

merci d'avance