200 likes | 343 Views
Distributed Multi-Agent Systems in Dynamic Networks with Scala. KangChon Kim and Sophia Goreczky Advisor: Dr. Yu Zhang. Multi Agent Systems. Imagine a system of robots. Multi Agent Systems. Imagine a system of robots. Multi Agent Systems. Imagine a system of robots. Multi Agent Systems.
E N D
Distributed Multi-Agent Systems in Dynamic Networks with Scala KangChon Kim and Sophia Goreczky Advisor: Dr. Yu Zhang
Multi Agent Systems Imagine a system of robots
Multi Agent Systems Imagine a system of robots
Multi Agent Systems Imagine a system of robots
Multi Agent Systems Imagine a system of robots
Multi Agent Systems Imagine a system of robots
Multi Agent Systems 1 • “Build a model as realistic as possible for a specific scenario” • “Building an abstract model that captures the essence of human activities and can be used to model many different social networks of the same kind.” 2
Jason Leezer • Highest Rewarding Neighborhood (HRN) • Selfish agents • Reward-maximizing strategy • All past interactions are equally weighted • Java
Wayne Wu • Highest Weighted Reward (HWR) • Based on Leezer’s code • Allows agents to use a discount factor to devalue past interactions with neighbors • Not distributed • No visual representation • C++
Wayne Wu • Occurs every timestep. • Pure coordination game (c, d)
Related Research • Social Norm • Kittock, J.E. “Emergent conventions and the structure of multi-agent systems.” • Toivonen, Liitta, LauriKovanen, MikkoKivela, Jukka-PekkaOnnela, JariSaramaki, and KimmoKaski. “A comparative study of social network models: Network evolution models and nodal attribute models." • Distribution • Logan, Brian, GeorgiosTheodoropoulos. The Distributed Simulation of Multi-Agent Systems. In Proceedings of the IEEE. Special Issue on Agent-Oriented Software Approaches in Distributed Modelling and Simulation, 2000.
Sorter val sorters=friendAgents.collect({case sd:SorterData => sd}) val choices=Map() ++ (sorters.map(a=>(a.id,a.value)) ++ sorters.flatMap(_.friendValues)).filter(a=>(a._1!=id)) val sorted=choices.toList.sortWith((a,b) => (a._2-value).abs<(b._2-value).abs)
Scala Distributed computing Visual representation of algorithms (GUIs) Extensibility of simulation Efficient coding
Scala void sort(int[] xs) { sort(xs, 0, xs.length -1 ); } void sort(int[] xs, int l, int r) { int pivot = xs[(l+r)/2]; int a = l; int b = r; while (a <= b) while (xs[a] < pivot) { a = a + 1; } while (xs[b] > pivot) { b = b – 1; } if (a <= b) { swap(xs, a, b); a = a + 1; b = b – 1; } } if (l < b) sort(xs, l, b); if (b < r) sort(xs, a, r); } void swap(int[] arr, inti, int j) { int t = arr[i]; arr[i] = arr[j]; arr[j] = t; } def sort(xs: Array[Int]): Array[Int] = if (xs.length <= 1) xs else { val pivot = xs(xs.length / 2) Array.concat( sort(xs filter (pivot >)), xs filter (pivot ==), sort(xs filter (pivot <))) }
What we are doing • Translating Wayne Wu’s code into Scala • Distributing the system • Expanding the strategy code
Translating to Scala CaseSim modifiable classes
Wu’s 7 Experiments 1. Two-Cluster Stable Clustering State A smaller neighborhood size will give us two clusters within a population because the agents have less incoming influence due to fewer neighbors. 2. One-Cluster Stable Clustering State A larger neighborhood size will give agents more incoming input, making them more likely to cluster into one group. 3. Pattern Possibilities with Various Network Sizes Here we have more flexibility with the results because we will be able to run large enough simulations to see and analyze patterns.
Wu’s 7 Experiments 4. Threshold and Broken Connection Peak A higher threshold correlates with a lower tolerance. We have no concrete model for tolerance but hopefully Kristen’s research will help us understand tolerance by the end of the summer. 5. Scalability Small networks converge faster than larger networks. 6. Comparison with Static Networks A dynamic network converges faster than a static network because changing neighbors is beneficial to an agent. 7. Tolerance The Fourth Experiment and the Seventh Experiment are very similar and have the same conclusion: A higher threshold gives a lower tolerance.
Extending the Strategy Code • Give agents personality characteristics • Have qualities such as Mean, Nice, Proud, Timid, etc. • When anti-characteristics meet, they are less likely to form a connection. • Have personality arise from social behavior • Quantizing qualitative traits (ie. Someone who does not maintain relationships for very long might be labeled Mean or Unreliable). • Main concern: Not enough time to get to this point.