public I_Agent Generate(I_Node node, InfoEnum init_op, double g_sigma, double r_sigma, AgentInitMode mode) { var node_id = node.NodeID; var init_weight_list = new Dictionary <int, double>(); foreach (var neighbor in node.NeighborNodeIDList) { init_weight_list.Add(neighbor, 1.0); } double init_belief = 0; var ir = RandomPool.Get(SeedEnum.AgentSeed); switch (mode) { case AgentInitMode.Random: init_belief = ir.NextDouble(r_sigma, g_sigma); break; case AgentInitMode.RandomWeakPulledByOpinion: if (init_op == InfoEnum.Green) { init_belief = ir.NextDouble(0.5, g_sigma); } else { init_belief = ir.NextDouble(r_sigma, 0.5); } break; case AgentInitMode.RandomStrongPulledByOpinion: if (init_op == InfoEnum.Green) { init_belief = ir.NextDouble(g_sigma, 1.0); } else { init_belief = ir.NextDouble(0, r_sigma); } break; case AgentInitMode.Normal: init_belief = ir.NextNormal(0.5, 0.1); break; case AgentInitMode.NormalWeakPulledByOpinion: break; case AgentInitMode.NormalStrongPulledByOpinion: break; default: break; } return(new BaseAgent(node_id, init_belief, init_weight_list, init_op, g_sigma, r_sigma)); }
public SusceptCandidateSet(I_Node node, I_Agent agent, double step_size) { this.NodeID = node.NodeID; this.SingleCandidateList = new List <I_SingleCandidate>(); int max_index = Convert.ToInt32(0.5 / step_size); for (int can_index = 1; can_index <= max_index; can_index++) { this.SingleCandidateList.Add(new SingleSusceptCandidate(can_index, step_size, agent)); } this.SetInitSelectCanIndex(); this.SelectCanIndex = this.InitSelectCanIndex; }
public CandidateSet(I_Node node, I_Agent agent) { this.NodeID = node.NodeID; this.SingleCandidateList = new List <I_SingleCandidate>(); if (node.NeighborNodeIDList.Count == 0) { this.SingleCandidateList.Add(new SingleCandidate(1, agent)); } for (int can_index = 1; can_index <= node.NeighborNodeIDList.Count; can_index++) { this.SingleCandidateList.Add(new SingleCandidate(can_index, agent)); this.SingleCandidateList.Add(new SingleCandidate(-1 * can_index, agent)); } this.SetInitSelectCanIndex(); this.SelectCanIndex = this.InitSelectCanIndex; }