Partage
  • Partager sur Facebook
  • Partager sur Twitter

aide sur netlogo

netlogo simulation

    29 septembre 2016 à 0:48:52

    Salut tt le monde,

    je suis un étudiant en 2ème année de master de recherche en informatique, je suis en train de préparer mon mémoire de recherche. j'utilise netlogo pour la première fois et j'étais bloqué aujourd'hui, voila le modèle qui je le developpe :

    le code est le suivant : 

    ****************************

    turtles-own

    [

      panne?           ;; if true, the turtle is infectious

      veil?          ;; if true, the turtle can't be infected

      network-timer   ;; number of ticks since this turtle's last virus-check

    ]

    breed [agents agent]

    to setup

      clear-all

      ask patches [set pcolor 29.9 ]

      set-default-shape agents "default"

        setup-nodes

      setup-spatially-clustered-network

      ask n-of initial-outbreak-size turtles

        [ become-panne ]

      ask links [ set color gray ]

      reset-ticks

    end

    to setup-nodes

      set-default-shape turtles "circle"

      create-turtles number-of-nodes

      [

        ; for visual reasons, we don't put any nodes *too* close to the edges

        setxy (random-xcor * 0.95) (random-ycor * 0.95)

        become-normal

        set network-timer random panne-frequency

      ]

      ask turtles [

        set size 1.8

      ]

    end

    to setup-spatially-clustered-network

      let num-links (average-node-panne * number-of-nodes) / 2

      while [count links < num-links ]

      [

        ask one-of turtles

        [

          let choice (min-one-of (other turtles with [not link-neighbor? myself])

                       [distance myself])

          if choice != nobody [ create-link-with choice ]

        ]

      ]

      ; make the network look a little prettier

      repeat 10

      [

        layout-spring turtles links 0.3 (world-width / (sqrt number-of-nodes)) 1

      ]

    end

    to go

      if all? turtles [not panne?]

        [ stop ]

      ask turtles

      [

         set network-timer network-timer + 1

         if network-timer >= panne-frequency

           [ set network-timer 0 ]

      ]

      spread-panne

      do-panne-checks

      tick

    end

    to become-panne  ;; turtle procedure

      set panne? true

      set veil? false

      set color red

    end

    to become-normal  ;; turtle procedure

      set panne? false

      set veil? false

      set color green

    end

    to become-veil  ;; turtle procedure

      set panne? false

      set veil? true

      set color gray

    end

    to spread-panne

      ask turtles with [panne?]

        [ ask link-neighbors with [not veil?]

            [ if random-float 100 < panne-spread-chance

                [ become-panne ] ] ]

    end

    to do-panne-checks

      ask turtles with [panne? and network-timer = 0]

      [

        if random 100 < recovery-chance

        [

          ifelse random 100 < gain-resistance-chance

            [ become-normal ]

          [ become-normal ]

        ]

      ]

    end

    **********************
    il me reste que l'ajout d'un nombre des "breeds agents" (déja définis), ces agents se place dans une noeud de reseaau et à chaque détection d'une noeud en panne ( devienne rouge), l'agent le plus proche de noeud se deplace vers cette noeud défaillante pour la réparer ( la rendre vert). pouvez-vous m'aider ? 
    au moins par le code qui me permet de detecter l'agent le plus proche de noeud défaillante. merci en avance.
    • Partager sur Facebook
    • Partager sur Twitter

    aide sur netlogo

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown