2017-12-07 1 views
1

(フランチャイズ)スーパーマーケットに場所を割り当てるときに問題があります。私はスーパーマーケットブランドごとにリストを持っています。スーパーマーケットブランドは、その都市でスーパーマーケットブランドが持つコンセントの数倍の回数繰り返されています。Netlogo:既存の(文字列)リストから変数に値を割り当てる方法

しかし、私が使用しているコードでは、リストにある都市の正確な量を割り当てることはできません。毎回ランダムに変化しています。私は上記のリストがあれば、私は次のことを試みた

;to create coop franchisees 
    create-Fs 32 [ 
    set HQ-brand "Coop" 
    set fcoop-location-outlet ["Zuidlaren" "Zuidlaren" "Nijmegen" "Nijmegen" "Nijmegen" "Nijmegen" "Nijmegen" "Nijmegen" "Nijmegen" "Nijmegen" "Nijmegen" "Nijmegen" "Ba neveld" "Barneveld" "Doetinchem" "Doetinchem" "Doetinchem" "Zutphen" "Huissen" "Amstelveen" "Amstelveen" "Amstelveen" "Zwolle" "Zwolle" "Rotterdam" "Rotterdam" "Rotterdam" "Rotterdam" "Rotterdam" "Rotterdam" "Rotterdam" "Rotterdam"] 
] 

試験1

ask Fs with [(HQ-brand = "Coop") and (location-outlet = 0)] [ set location-outlet one-of fcoop-location-outlet ] 

試験2

(ブランドごとに)各加盟店に都市出口を割り当てます
ask Fs with [(HQ-brand = "Coop") and (location-outlet = 0)] [ foreach fcoop-location-outlet [set location-outlet one-of fcoop-location-outlet] ] 

トライアル3

ask Fs with [(HQ-brand = "Coop") and (location-outlet = 0)] [ set location-outlet n-of 32 fcoop-location-outlet ] 

私は、1つのCoopロケーションリストを32個のCoopアウトレットのそれぞれに割り当てることを考えましたが、それはランダムです。それがうまくいかず、foreachがうまくいくかもしれないと思ったのですが、コーディングの方法と同じです。

Coopの店舗の1つに割り当てられた都市のリストのすべてのアイテムを取得するたびに、このコードを作成するにはどうすればよいですか?これを行う簡単な方法が必要ですが、私はそれを見つけ出すことはできません。

(これは他の8つのスーパーマーケットで行っています)

+0

私はあなたが何をしようとしているのか不明です。 32の拠点と32の拠点を持ち、ペアを割り当てようとしていますか?あなたの店舗の可能性はリストにありますが、あなたの場所の可能性もリストにありますか? – JenB

+0

ええ、この場合、私は32の店舗に割り当てる必要がある32の店舗を持っています。アウトレットは私の代理店(Fs)で、私が持っている32の場所のすべてがすべて1つのアウトレットに割り当てられていることを確認したい。 私のアウトレットはエージェントなので、リストにはありません。私の所在地はリスト(fcoop-location-outlet)にあり、そのリストから私はあなたの助けを借りて – Cristina

答えて

1

私は方法を見つけました!友人は店のすべての場所を持っているリスト最初なので、この

で私を助けた:

fcoop-location-outlet 

代わりに各コンセントの変数のグローバルとすることが必要です。

そして、コードは次のようになります

ask Fs with [(HQ-brand = "Coop") and (location-outlet = 0)] [ 
set location-outlet item 0 fcoop-location-outlet 
set fcoop-location-outlet remove-item 0 fcoop-location-outlet 
] 

をそのようにして、それがないように、位置出口変数に追加されるアイテム(位置)は、メインリストから削除されます繰り返される。

1

実際に動作するものを書くには十分なコードがありません。リストを変更したくないので、イテレータを作成してください。このようなものはうまくいくはずです。 askはランダムな順序であるため、リストの順序をランダム化する必要はありません。私は-1から始めましたので、割り当ての前に増やすことができました(最後のカメのリストの最後から外れません)。

to assign-locations 
    let iterator -1 
    ask turtles 
    [ set iterator iterator + 1 
    set my-location item iterator fcoop-location-outlet 
    ] 
end 
+0

というコンセント(私の店舗)の変数に追加する1つの場所を選択したいと考えています!私はちょうど別の方法を見つけました、私はちょうど同様に投稿しました。 私がコードしなければならない次の部分については助けてくれると言ってもいいと思います。 – Cristina

関連する問題