Skip to content

Latest commit

 

History

History
101 lines (91 loc) · 2.88 KB

README.md

File metadata and controls

101 lines (91 loc) · 2.88 KB

Comment visualiser le projet ?

Plusieurs methodes :

  • En allant sur le site que j'ai heberge sur GitHub.
  • A l'aide de l'extension LiveServer de Visual Studio Code
  • A l'aide de Apache dans repertoire var/www

Fonctionnement de la modelisation

A Savoir

Le site ajoute / supprime en permanence des liens. Si vous le demarrer en local, vous pouvez modifier l'interval vous-meme.

const timingInterval = 40 // >= 0

Toutes les pertinences fixe sont attribuer dans le main.js

export default class Page {
    /**
     * @param {number} id Identifiant de la page.
     * @param {string} name Nom du site.
     * @param {number} relevance Pertinence du site definit a la main.
     */
    constructor(id, name, relevance) {
        this.id = id
        this.name = name
        this.position = {x: 0, y: 0} // Position du cercle sur le graphe
        this.pagerank = 0.0
        this.relevance = relevance

        this.out = [] // Liens sortants
        this.in = [] // Liens entrants
    }
}
const PGS = [
    new Page(0, "Instagram", 1/9),
    new Page(1, "Snapchat", 1/8),
    new Page(2, "Discord", 1/7),
    new Page(3, "X", 1/7),
    new Page(4, "Reddit", 1/6),
    new Page(5, "BeReal", 1/5),
    new Page(6, "Facebook", 1/5),
    new Page(7, "Skype", 1/3),
    new Page(8, "MSN", 1/2),
    new Page(9, "MySpace", 1/2)
]; 

L'iteration aleatoirement une page x et une page y.

const page_x = 3 // Compris entre 1 et le nombre de page N.
const page_y = 5 // Compris entre 1 et le nombre de page N mais different de page_x.

Si la page x trouve la page y interessante, elle creer un lien vers elle.

const page_x = {
    ...
    this.id = 3
    this.relevance = 1/9
    this.out = [
        {page: /*page y*/}
    ]
    ...
}

const page_y = {
    ...
    this.id = 3
    this.relevance = 1/6
    this.in = [
        {page: /*page x*/}
    ]
    ...
}

Le page rank est calcule dans cette fonction

await gr.pagerank()

Tableau des scores

Une fois le page rank de toutes les pages calcule, je genere le graphe

await gr.generateGraph()

Tableau des scores

J'actualise les scores dans le tableau a l'aide de

await gr.generateRanking()

Tableau des scores

À chaque itération, choisir aléatoirement une nouvelle page x. Identifie la moins pertinente parmi ses sorties (page o). Lance une probabilité basée sur la pertinence de la page o. Si la probabilité est favorable, supprime le lien ; sinon, ne fait rien.

await gr.randomRemove()

Membre

Bilal Boudjemline