Correct me if I’m wrong, but this sounds ridiculously overcomplicated. The trick to thinking about Asset imo is to treat it like an honest Plurality election for the voters, and a strategic Plurality election for the candidates, but with the added twist of having multiple votes. Following this logic, the voter would always give their vote to their favorite. After that, in the single winner case:

- The candidates multiply the utility they get from every other candidates’ election by the number of votes they have.
- Add up this utility times votes for every candidate
- The top two candidates are frontrunners, and all the candidates give their votes to one of the two
- (Optional) The two frontrunner converge towards the median candidate on the distribution of views

Hard to define what the median candidate is, exactly. We know that in real world Plurality elections, the candidates try to appeal to the swing/median voter. If Asset is just like Plurality, but some of the “voters” have more votes than others, then I think it makes sense for the candidates to appeal to the median candidate. To calculate what that looks like in a distribution of views space, perhaps you use the same calculation for finding the median voter, but here you multiply each “voter”'s views by the amount of votes they have. This includes the frontrunners themselves. So the median candidate may or may not be an actual candidate, but rather, a weighted composite of all candidate’s views. I’m not sure if this is right, so let me know if you have a better idea. I’m essentially trying to capture how frontrunners would offer concessions through the negotiations; going to the median or mean candidate or view is my first thought for what it would look like, since it’s at the median that a majority is won.

I think you want it to be like a strategic Plurality election, because giving all your votes to one other candidate in the single winner case is most similar to voting for one candidate. It’s Cumulative Voting, which we know reduces to Plurality under strategy, right? Now for the multi winner case, I’m actually not too sure. I would say most peoples’ doubts are on the single winner case, though I’d like to hear from those who are unsure in the multi as well. Perhaps the multi simulation would be something like:

- Calculate utility times votes for all candidates
- The top (number of possible winners + 1) candidates are frontrunners, with candidates figuring out how to reapportion their vote to elect their personal favorite (number of possible winners) set out of the frontrunners.

Here, as before, you want all the frontrunners to converge on the median, but crucially, there have to be multiple medians. I have no clue how to do that, though I suspect you’d have to maybe put all the candidates in (number of possible winners) groups, then find the median within each of those groups. But I’m not sure how you find those groups, or what do if a candidate overlaps between groups. I think finding the groups is a matter of calculating all the candidates’ utility for each other, then putting them in groups so that each group has at least a Hare or Droop quota of votes between its candidates. If a candidate has an excess of votes for their group, perhaps they can be part of the next closest group and so on until they no longer have enough to exceed the group quota. Considering how complicated this step is, you probably ought to scrap it, lol. I anyways don’t think there would be a huge difference between median adjusted winners and non median adjusted winners in a multi winner context, since there’s already lots of diversity.

Again, totally unsure whether this is right or not, but if multi winner Asset negotiations look anything like bloc Plurality, then this should be it.

To conclude, I’d recommend only simulating single winner Asset, but if anyone is doubtful about the multi case, consider doing that as well. Personally, I think if 30% of the vote goes to Square candidates, it would be trivial for the Square candidates to ensure 30% of the winners are Squares, but I would be curious to see a counterexample in a simulation or elsewhere.