Giter VIP home page Giter VIP logo

lalbi94 / pagerank_visualizer Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 835 KB

Simulation de l'algorithme de classement de page, Page Rank. Fais en pure html / js non-responsive (uniquement pour ordis et tablettes). (En cours de dev)

Home Page: https://lalbi94.github.io/PageRank_Visualizer/index.html

License: MIT License

HTML 6.26% JavaScript 86.49% CSS 7.26%
js page-rank-algorithm modelisation-mathematique

pagerank_visualizer's Introduction

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

pagerank_visualizer's People

Contributors

lalbi94 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.