2017-10-27 15 views
1

私のカメはブール値の30以上の属性を持っており、それぞれの属性を個別に比較する必要はなく、類似性に基づいてカメを比較し、それらをランク付けするforeachループを使いたいと思います。私はここに明白な点がないかもしれない、私は属性のリストを持っていることを試みたが、それは働かなかったし、すべてのカメは最大類似点を得た。Netlogoで2つのカメを比較するには、その属性のリストを参照してください。

+1

あなたのメジャーはいったん 'sort-by'を使用しますが、「類似性に基づいて」何にするのでしょうか? 1つの特定のカメには、ハミング距離を使用してください。グループ全体の場合は、http://www.sciencedirect.com/science/article/pii/S0166218X06001909をご覧ください。 – Alan

答えて

3

2つのリスト間のハミング距離を計算するコードです。非常に巧妙なreduceコードは、NetLogo辞書から直接取得されます。

to testme 
    let ll1 (list TRUE TRUE FALSE FALSE) 
    let ll2 (list TRUE FALSE TRUE FALSE) 
    let ll3 (map = ll2 ll1) 
    show ll3 
    show reduce [ [occurrence-count next-item] -> 
    ifelse-value (next-item) [occurrence-count + 1] [occurrence-count] ] (fput 0 ll3) 
end 

あなたはカメのペアの類似性スコアを計算するために欠けていた場合、あなたは、引数として2匹のカメを取る記者にこれを回すことができます。しかし、2つのカメを比較することがあなたがしたいことであることは明らかではないので、私はそのためのコードを書いていません。

関連する問題