2017-07-05 7 views
0

長時間の読者初回ポスター。 私は自分自身を修正するようなNetLogoの問題について助けが必要です:NetLogo:近傍および固有ベクトル

私はカメのネイバーとネイバーネイバーを数えて、固有ベクトル中心性を計算する方法を見つけ出したいと思います。私はNWを得ることができません:仕事の延長と私の専門はどちらもありません。自分で方法を作ることを考えました。プレゼンテーションの最初のラウンドまではそれほど時間がかからないので、隣人と隣人のカメを数えるだけの努力をしています。 私はすべての隣人を数え、すべての隣人と隣人を合計するカメの所有をすることに決めました。しかし、私は頭の中で立ち往生し、それを働かせることはできません。 設定近隣人数(リンクネイバー)

誰でもアイデアはありますか? また、固有ベクトルの中心を機能させるための最終的な方法は非常に高く評価されます。

ThxをTizian

+2

私は現在NW拡張のメンテナーです。あなたはそれでどんな問題を抱えていますか? 'nw:eigenvector-centrality'は、切断されたネットワークでは動作しませんでしたが、最新バージョンではうまく動作するはずです。あなたが見ている問題は何ですか?どのバージョンのNetLogoを使用していますか? –

答えて

3

まず、私の主な勧告は、NWが働いて得ることです。私はそれを手伝ってうれしいです。

これを除いて、以下は、あなたが無向のネットワークで作業していることを前提としています。それがキャストじゃないなら、私に知らせてください。

あなたが記述する方法の問題は、いくつかの近隣隣接者を複数回カウントすることです。代わりに、あなたは隣人・オブ・隣人のエージェントセットを取得することができ、その後、それを数える:

to-report neighbors-of-neighbors 
    report turtle-set [ link-neighbors ] of link-neighbors 
end 

その後、[ count neighbors-of-neighbors ] of turtle 0turtle 0の隣人の隣人の数を与えます。今

、いくつかのポイント:

亀は常にそのリンクネイバーのリンクネイバーであるので、これは、カメ自体が含まれます。あなた自身がカメを入れたくない場合はother[ count other neighbors-of-neighbors ] of turtle 0に投げてください。

to-report turtles-in-link-radius [ n ] 
    let result turtle-set self 
    repeat n [ 
    set result (turtle-set result [ link-neighbors ] of result) 
    ] 
    report result 
end 

このは、このような手順を検討するかもしれない、それらを中に追加するには亀0のリンク隣人ですが、亀0の任意の他の隣人にリンクされていないカメは含まれません

これは、例えば、以下のように使用することができます:[ count turtle-in-link-radius 2 ] of turtle 0は、すべてのカメをタートル0から最大2ホップカウントします。このレポーターは、かなり遅くなりますが、nw:turtles-in-radiusと同じ動作をします。

今、私は最初にあなたのアイデアはいくつかのカメを数えると指摘しました。あなたが固有ベクトル中心性のようなものに興味があることを考えれば、これはあなたが望むものかもしれません。その場合、あなたはこれを行うことができます:[ sum [ count link-neighbors ] of link-neighbors ] of turtle 0亀の所有者を気にすることなくそれを得るために。固有ベクトル中心性すべてのカメを計算する

turtles-own [ 
    ... 
    next-ec ;; helper variable for iteratively computing eigenvector-centrality 
    eigenvector-centrality 
    ... 
] 

to calculate-eigenvector-centralities 
    ask turtles [ 
    set eigenvector-centrality 1 
    ] 
    repeat 100 [ ;; the higher this number, the more accurate the value. NW uses 100 
    ask turtles [ 
     set next-ec sum [ eigenvector-centrality ] of link-neighbors 
    ] 
    let max-ec max [ next-ec ] of turtles 
    ask turtles [ 
     set eigenvector-centrality next-ec/max-ec ;; normalize 
    ] 
    ] 
end 

コールcalculate-eigenvector-centralities:あなたはカメ-自身が、あなたが実際に固有ベクトル中心性自体を計算することができます使用しない場合には、言いました。カメの固有ベクトルの中心は、eigenvector-centralityに格納されます。このコードは、接続されていないネットワークではで動作しません。各コンポーネントはNWとは独立して正規化する必要がありますが、NWを使用しないでNetLogoで簡単に行うことはできません。

関連する問題