如何在同一个补丁上对卖家和买家之间的交易进行编码?

时间:2014-12-02 15:46:19

标签: netlogo

我必须在Netlogo中编写SELLERS-BUYERS模型。我已经完成了部分内容。 但是计算交易价格会带来一些麻烦。和其他一些过程。 问题是我不熟悉Netlogo的程序语言,以便编写所有模型。

我必须在卖家和买家之间达成协议 - 他们必须在一个补丁中。每个卖家都有自己的成本,每个买家都有自己的实力。当seller_Price = buyer_Price时,他们有deal_Price。而且这笔交易_Pice必须低于买方的自己的实力和卖方的自己的成本(在同一补丁中)。所有这些都发生在"互动"过程

我这样编码:

    to interaction

      ask sellers [
       set seller_Price 0]

      ask buyers [
      set buyer_Price 0]

      ask buyers [ 
         if buyer_Price > ownUtility [
         set buyer_Price buyer_Price < ownUtility ]]

      ask sellers [
         if seller_Price < ownCosts [
         set seller_Price seller_Price > ownCosts ]]
end

结果买家和卖家(他们在同一个补丁中)必须交易。我试着编码&#34;交易&#34;过程如此:

to deal 

  if thera buyer and seller in one patch (its probably false)

  ask buyers [
     set ownUtility ownUtility + (buyer_Price - deal_Price)]
  ask sellers [
     set ownCosts ownCosts + (seller_Price - deal_Price) ]

end 

这里有我的问题,因为有了这些代码,我的模型没有结果,也没有运行。 有谁可以帮助我?

1 个答案:

答案 0 :(得分:1)

这不是一个单一的问题,而是一堆问题。我会尝试说一些有用的东西,至少解决你所面临的一些问题,但将来,如果你提出具体问题并分别提出问题,情况会更好。如果你能用一句话来概括它,你就会知道它是一个很好的问题。如果您的摘要最终成为&#34;帮助我对此进行编码,那么它可能不是真正的问题。

set buyer_Price buyer_Price < ownUtility会将buyer_price设置为truefalse,具体取决于比较结果。我不认为这是你的意图;你可能打算把它设置成一个数字。不过,我无法从你的问题中告诉你想要什么号码。你写道,“而这笔交易_Preice必须低于买方的自己的实力和卖方的自己的成本之上”。您想要该范围内的随机数,还是什么?

关于你的deal程序,dr_stein在他或她的评论中涵盖了这一点,但是,也许你想要这样的事情:

to deal
  ask patches with [any? buyers-here and any? sellers-here] [
    ask buyers-here [
     set ownUtility ownUtility + (buyer_Price - deal_Price)
    ]
    ask sellers-here [
      set ownCosts ownCosts + (seller_Price - deal_Price)
    ]
  ]
end

尚未完成,因为它不包含任何计算deal_Price的代码,但希望您可以自己提供该部分。

最后,一些更一般的建议。你可能会一次写一个大程序,试图一次学习太多东西。写一个非常小的程序;让它运作;试图对它做一个非常小的改进,并使其工作;等等。如果您遇到困难,请到此处,显示您的代码,并询问有关它的具体问题。