Hunger Games - The story so far

We have completed a number of games, each with between 1000 and 3000 rounds. We are currently in the process of contacting those who will be interviewed, verifying our results, etc. While we do so, we thought the community might like to see some of the aggregate results about how the game turned out.

The below graph shows the number of surviving players vs. round for some of our games. Initially, there were 350 good submissions (submissions that had the right syntax, did not freeze or break, had the appropriately defined classes etc.). As you can see, the initial food bank keeps everyone alive for a while and then quite a few people start to die very quickly. Eventually a new population equilibrium composed of survivors is reached, which is where the tails flatten out. Since this equilibrium is stable that's an indication that there are enough semi-hunting algorithms to offset the continual food loss of the population. This is good: you Brilliant members have given us reason to believe that there is hope for the human race, as not only are you smart, but apparently you are not all mean slackers too.

Who did survive all the games? Below is a graph of the reputation vs. round death. In other words, when a player died we recorded the round of death and the player's reputation at death. As you can see, those who hunted all the time died very quickly. However, those who slacked all the time did as well. This was by design - we hoped that people would realize that there were strategies that beat the always slack strategy and many people did pick up on this fact. Hence the players who lasted the longest but still died did actually cooperate some.

Additionally, the end-of-game reputations of those who survived every game are plotted below (remember every game ends after a certain randomized number of rounds). As you can see, the survivors had reputations clustered around 0.5, in fact the survivor reputation average worked out to be 0.54. I'm curious about the possible spike near the reputation of 0.2. My suspicion is that these slacking players built up a big buffer of food in the early game, but after most of the other algorithms died out these mostly slackers were slowly starved out by the remaining players. I have not explored this yet, however.

#ComputerScience #BrilliantCompetitions

Note by David Mattingly
7 years, 9 months ago

No vote yet
30 votes

  Easy Math Editor

This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.

When posting on Brilliant:

  • Use the emojis to react to an explanation, whether you're congratulating a job well done , or just really confused .
  • Ask specific questions about the challenge or the steps in somebody's explanation. Well-posed questions can add a lot to the discussion, but posting "I don't understand!" doesn't help anyone.
  • Try to contribute something new to the discussion, whether it is an extension, generalization or other idea related to the challenge.
  • Stay on topic — we're all here to learn more about math and science, not to hear about your favorite get-rich-quick scheme or current world events.

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold

- bulleted
- list

  • bulleted
  • list

1. numbered
2. list

  1. numbered
  2. list
Note: you must add a full line of space before and after lists for them to show up correctly
paragraph 1

paragraph 2

paragraph 1

paragraph 2

[example link](https://brilliant.org)example link
> This is a quote
This is a quote
    # I indented these lines
    # 4 spaces, and now they show
    # up as a code block.

    print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
MathAppears as
Remember to wrap math in \( ... \) or \[ ... \] to ensure proper formatting.
2 \times 3 2×3 2 \times 3
2^{34} 234 2^{34}
a_{i-1} ai1 a_{i-1}
\frac{2}{3} 23 \frac{2}{3}
\sqrt{2} 2 \sqrt{2}
\sum_{i=1}^3 i=13 \sum_{i=1}^3
\sin \theta sinθ \sin \theta
\boxed{123} 123 \boxed{123}

Comments

If we survived should we have received an email by now?

Phillip Harris - 7 years, 9 months ago

Log in to reply

we're working on emails, most likely today or tomorrow

David Mattingly Staff - 7 years, 9 months ago

So here's my take on how it played out:

Many people wrote algorithms that:

--emulated the average behavior of the tribe, and/or

--punished bots with a lower reputation.

People call these strategies "tit-for-tat," but unlike real tit-for-tat, the bots in this competition are anonymous* and thus not accountable from one turn from the next. So rather than enforcing cooperation, these tit-for-tats bots slowly dragged each other into a downward spiral. A bot that punishes uncooperativeness, or matches other bot's uncooperativeness, will lower its own reputation in the process, resulting in a feedback loop.

Anyway, I looked through the strategies thread and counted, and it turns out Emulator/Punisher strategies are actually a lot rarer than strategies which put the question of what reputation to maintain first. So maybe this is all wrong....

*except to bots that implement tracking, but those are a tiny minority, and even then tracking doesn't work until late in the game when most bots are already dead or stable and game is effectively over.

Phillip Harris - 7 years, 9 months ago

Kudos to the people who organized this awesome game. Thank you for providing so many of us with entertainment, challenge, and curiosity.

I hope all of the non-survivors get to find out, at the very least, on which round they starved. It would be totally awesome though if everyone got to see a graph of their food and reputation over time.

avi newman - 7 years, 9 months ago

I just knew I should have submitted Random(0.55)!

Christopher Johnson - 7 years, 9 months ago

I'd be interested in seeing graphs about how m effected the field.

William Ebeling - 7 years, 9 months ago

Hi, can I know my rank? I just wanna know if my program executed correctly or not... because I was very sure that I'm going to be at least a survivor, now that I'm not, I want to know good the program was... Thanks.

Pedram Shakerinava - 7 years, 9 months ago

Log in to reply

Ranks for everyone will be published once interviews (scheduled for tomorrow, this weekend and early next week) are complete.

David Mattingly Staff - 7 years, 9 months ago

Log in to reply

I survived but I wasn't able to schedule an interview, I tried emailing and didn't get a response.

Alex Wice - 7 years, 9 months ago

So if you didn't get an email by now you didn't survive?

edit: apparently my teammate got an email and i didn't. hm.

Phillip Harris - 7 years, 9 months ago

Log in to reply

@Phillip Harris No, they'll send you an e-mail either you survived or not... As they told me I didn't! :O

Pedram Shakerinava - 7 years, 9 months ago

Log in to reply

@Pedram Shakerinava Oh yeah, we survived but my teammate was the one who submitted the code, so that's probably why.

Phillip Harris - 7 years, 9 months ago

It's amazing how nobody died between reputations 0.5 and 0.6.

Ante Qu - 7 years, 9 months ago

Log in to reply

Probably because the terrible ones died too quickly.

Taehyung Kim - 7 years, 9 months ago

should i have received an e-mail? because i didn't

Leonardo Daher - 7 years, 9 months ago

Excellent!

Joshua Nathaniel - 7 years, 9 months ago

This is fantastic! Could you also post a graph of how many hunts happened per round, and color-coding the points by whether the cooperation threshold was acheived or not?

Tanishq Aggarwal - 7 years, 9 months ago

Log in to reply

Is there also a transcript available (text file) of the games, if your engine did spit out any human-readable statistics of the game as it was in progress?

Tanishq Aggarwal - 7 years, 9 months ago

Will I see my stats?

Kelvin Azevedo Santos - 7 years, 9 months ago

Excuse me, but I haven't receive any email to confirm if I survive or not. What does that mean? Is my algortihm rejected or I didn't survive?

Oktabani Hong - 7 years, 9 months ago

What should I do if I haven't received any email yet, although I had submitted the code?

Toms Bergmanis - 7 years, 9 months ago

Beautiful! I was waiting for something like this.

Justin Wong - 7 years, 9 months ago

Well, I have a feeling I died pretty soon, since I never saw anything that said playerreputations and huntdecisions were in the same order.

Will I at least get to learn my average reputation/how many rounds I survived?

On a completely unrelated note, I wonder why so many more people died in Run 3...

Nicholas Tomlin - 7 years, 9 months ago

Log in to reply

Yes, you'll get to learn how you did.

David Mattingly Staff - 7 years, 9 months ago

Log in to reply

On the submission page? Or on another email? Because the one I've received offered no educative information, it was just a 0/1 (you are (not) a finalist) instead of giving detailed info, at least on the lines of what Nicholas suggested above.

Mihai Maruseac - 7 years, 9 months ago

Who will win the t-shirt? those who survived on all simulations only?

Kelvin Azevedo Santos - 7 years, 9 months ago

It would be nice if we could find out which of these dots we are.

Greg Hamel - 7 years, 9 months ago

I also have not received an e-mail yet, should I just assume that I did not survive?

Grace Li - 7 years, 9 months ago

UPDATE: Due to requests for more graphs during interviews, we have posted raw game data from one of our games here. This should allow everyone to display the graph they want! Put it up in the moar data! discussion if you think it's interesting to the community.

David Mattingly Staff - 7 years, 9 months ago

It looks like a lot of people died around the 300th round. Any one care to guess why so many people with repuations in the range of 0 to 0.4 all died at the same time? It is making me wonder if I understand the definition of "Round". If someone dies at round = 300, did that person have 300 TOTAL opportunities to hunt, or 300 opportunities to hunt with EVERYONE?

avi newman - 7 years, 9 months ago

Log in to reply

With everyone.

Tim Vermeulen - 7 years, 9 months ago

Log in to reply

So then, what's your theory about why so many people died around the 300th round? And why nobody died before then? It must have something do do with the number if times the group failed to exceed M.

avi newman - 7 years, 9 months ago

Log in to reply

@Avi Newman I think I have an idea. First, there's a baseline: assuming an equal 50/50 chance of hunting and slacking by all players, loss/gain would average out to -1 food per opponent, per round.(With possible individual hunt outcomes of 0, -3, 1 and -2 food.) This would mean death for an individual player in 300 rounds.

It appears that deviations from this equal probability case, influenced by the award factor and the benefits of slacking, have cancelled each other out for the overly slacking/hunting players.

Christopher Dyer - 7 years, 9 months ago

@Avi Newman It stands to reason that a lot of losing strategies will burn food at close to the same rate. Everyone starts with a lot of food so even losing strategies will last a little while.

Chad Miller - 7 years, 9 months ago

Log in to reply

@Chad Miller 300 food does not seem like a lot of food to me. If you're a staunch hunter, if 100 people slack against you and M was not reached, you would starve immediately.

While M is being reached, it's a zero sum game with food getting redistributed amongst the players. The fact that people with a reputation of 1 lived until the 300th round indicates that M was pretty consistently reached for the first 300 rounds.

avi newman - 7 years, 9 months ago

Log in to reply

@Avi Newman

If you're a staunch hunter, if 100 people slack against you and M was not reached, you would starve immediately.

Unless you mean "if 100% of your opponents slack against you" this is completely wrong. Regardless, it's beside the point; you start with enough food for 100 rounds in an impossible worst case (no one hunts against you, m is never reached, you always hunt), which means it goes further if conditions are any better.

The fact that people with a reputation of 1 lived until the 300th round indicates that M was pretty consistently reached for the first 300 rounds.

That would be why the worst strategies died near round 300 instead of round 100.

Chad Miller - 7 years, 9 months ago

Log in to reply

@Chad Miller I have a completely different opinion. There were many slackers which died out early, so there is no way m was consistently reached. What happened is that many codes rewarded high reputation and hunted with them. As there were more extreme slackers than extreme hunters, the selection against unbalanced players increased the average hunting. When this average became larger than 50%, M was reached often enough to offset slacking losses, reducing starvation.

Kelvin Azevedo Santos - 7 years, 9 months ago

@Chad Miller What was the amount of starting food again? I thought it was merely 300 units?

avi newman - 7 years, 9 months ago

Log in to reply

@Avi Newman It's a multiple of the number of players.

Chad Miller - 7 years, 9 months ago

@Avi Newman 300(P1)300(P-1) where PP is the number of players in the first round.

Tanishq Aggarwal - 7 years, 9 months ago

Log in to reply

@Tanishq Aggarwal The slacked and maybe hunt with the wrong persons. They died all together because the ran out of the initial food. (Not been able to produce more food)

Andrei Ionescu - 7 years, 9 months ago

About the spike near 0.2, I wonder if it has to do with players changing their strategy mid-game. Or it could be a strategy that gets gradually more selfish over time.

My strategy was to hunt just enough that if people are hunting X% of the time, I would be within the top X% of reputations among remaining players. Also, hunger leads me to being selfish. When my food reserve falls below 25% of what they were at their highest point, I take that as an indicator that my hunting efforts are not panning out, and I choose to slack instead. The idea is to spend the reputation capital I have amassed in exchange for short-term food. If this gets me back above the hunger threshold, I return to reputation seeking mode.

It looks like there were a lot of low reputations and not so many high ones. If I estimate the average overall hunting percentage [with the assumption that reputation does not change over time, I calculate the SumOfAll (reputation * highestsurvivedround_number)], it looks like the population was hunting ~30% of the time overall. If that is the case, I would be shooting for a 70th percentile reputation for the duration of the game. That means I was probably targeting a reputation of 0.3 to 0.4 in the early rounds and then trying to climb to a higher reputation after round 500 (when the slackers die off and allow the median reputation to rise substantially). But that is only IF I managed to survive beyond the 500th round. I could easily be one of the many poor starved souls.

avi newman - 7 years, 9 months ago

Log in to reply

I did something very similar. My algorithm also gets selfish, but I added a limit that doesn't allow the reputation to go below 0.6 or above 0.8. Because the perfect reputation was 0.5 (lower than my limits) I guess that my algorithm did something that was not intended to do: lowered his reputation below the limit. Looking at the 2-nd graph. So either I suvived, either I'm one of those blue dots between 0.6 and 0.75

Andrei Ionescu - 7 years, 9 months ago

Log in to reply

My guess is that a lot more hunting took place in the second half of the game (after all the selfish people died out). Therefore, in the middle-game the survivors probably had a reputation around 0.4 to 0.5, and then it went up gradually towards the game's end. Remember, the later rounds have far fewer players though, so even if they were hunting 100% for the second half of the game, they would only have a limited opportunity for reputation improvement.

avi newman - 7 years, 9 months ago

I think all interested people should email a certain email to receive every single detail about their personal code so that mass data won't need to be posted on Brilliant and clog up the page.

Justin Wong - 7 years, 9 months ago

Cool! I'm very excited to see the results.

Kelvin Azevedo Santos - 7 years, 9 months ago

I would also like to see what happens if you let the simulation run it's course over tens of thousands of rounds. It looked like once the mostly hunters were left they were still gradually dying, just at a much slower rate. I'm also of the assumption that if we haven't been contacted by now, we did not win or survive?

Anthony Perez - 7 years, 9 months ago

Log in to reply

I doubt they contacted people who survived but were not in the running for finalist.

Chad Miller - 7 years, 9 months ago

Log in to reply

Well, I just looked back at the rules and realized that "finalist" is everyone who survived. I didn't realize they were interviewing all surviving algorithms. lol me.

Chad Miller - 7 years, 9 months ago

Ugh, I just know i'm going to be in that 54 that had not working code. Sitting here all excited for the results only to find out I did something dumb. It ran with chads simulator at least.

Cory Metzbower - 7 years, 9 months ago

How can I know if my code was chosen to compete or how well it performed? Also can you tell us which type of algorithm performed best and which worst?

Ibraheem Moosa - 7 years, 9 months ago

I misunderstood the game at first, so I thought the strategy was to always hunt. The day before submissions closed, I was writing a good algorithm, but before I finished, it was too late. D'oh! D'oh! D'oh! D'oh! D'oh!

m c - 7 years, 9 months ago

Me and my teammate's strategy was like bellow. I would be happy to know the weak points of it, so can anyone please tell me the these weak points? Thanks.

We were always trying to reach the medium of the player reputations in each round. Thereby, we first of all found it from the "playerreputations" list, and depending on that, the number of hunts and slacks which we were going to do in that round, would be found: << the (R) we wanted to reach after the round * total (H + S) after this round = total (H) after this round >> And the number of slacks after this round would be: << total (S) after this round = total (H + S) after this round - total (H) after this round >> Then we wanted to slack with those reputations from the most and the less reputations(which were closer to those who are just hunting or slacking and it's better for us to slack with them as we calculated). For this we took a 2D array of the player reputations with the name "kplaces" which in this array: << kplaces[i][0] = playerreputation[i] , kplaces[i][1] = i >> the reason which we took a 2D array and saved the (i)'s was that we were going to sort it, and if we didn't do that the(i)'s would be lost... After we sorted it, from the beginning and the end of this array, we started to slack with the reputations which are most close to either 1 or 0 and saved the answer in huntdecisions. And after this, because we didn't want to cooperate with any reputation which is 0 or 1 (because they are almost surely just repeating something and the best result with them would be to slack) we iterate on k_places and find the 1's and the 0's and get sure that the answer relating to them is 's'

Sorry if it was boring!!

Pedram Shakerinava - 7 years, 9 months ago

Log in to reply

Given what actually happened, my best guess is that after the excessive hunters died off, you ended up with a low enough reputation that the colluding bots lumped you in with the slackers.

In a population split between collusive and slacking strategies, the median reputation is actually the worst place to be because you're spending more food than slackers while not reaping the benefits of collusion.

Chad Miller - 7 years, 9 months ago
×

Problem Loading...

Note Loading...

Set Loading...