Brilliant Hunger Games FAQ

This is a FAQ compiled by Brilliant staff with user questions and answers. You will not be able to ask questions here as we are trying to minimize clutter and make this easy to read. You may submit questions in our other discussion, or via email to competitions@brilliant.org.

Edited 7/24 about collusion and ties. Edited 7/29 about algorithms with problems.

Go back to Hunger Games main page

#BrilliantCompetitions

Note by David Mattingly
7 years, 10 months ago

5 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

In hunt_outcomes(food_earnings): is food_earnings a list in the same order as the order of reputations the hunt decision is based on? i.e. player_reputations in hunt_choices()? So you get the outcome of every of your hunt decisions explicitly?

Yes.

Am I right under the assumption that there is no pre-round, or simulation, or any kind of other way of testing your program before the the competitions actually begins?

You can test functionality of your script with our tester script. We are considering releasing an official game host and will make a decision on this soon. In the meanwhile, other users are busily creating hosts (see the our discussion boards) so you may wish to use one of those (with the caveat that your mileage may vary).

David Mattingly Staff - 7 years, 10 months ago

Can you submit more than one solution? (For e.g. I would like to submit one that will play to win and one that will play to survive)

No. One strategy per player/team.

Is it allowed or disallowed to collude with other algorithms (potentially your other submissions, submissions of your friends, etc.) based on agreements outside the game? (e.g. make 1 out of 100 a 'winner' and have the other 99 just help this chosen winner)

Collusion based on agreements outside the game will result in disqualification. If however, your algorithm is smart enough to determine in game that another algorithm is signaling and you wish to respond in a cooperative manner, i.e. collude, this is allowed as it is, by definition, part of the game.

Are we allowed to try to deduce from the information presented who the other players (randomly permuted) are?

Yes. You are permitted to use the information presented to you in the game as you see fit.

Are we allowed to break your PRNG (e.g. assume you use a standard aX+b modulo p) to figure out all future randomness in the game?

No. Algorithms playing the game will be examined before being allowed to play. Attempts to bend the rules by manipulating or gaining knowledge about the host operation beyond what is injected into the algorithm will result in disqualification. This is not a hacking competition. Clever idea though.

Are we allowed to communicate (i.e. broadcast) to all other players before the submissions are made (e.g. make threats/offers or ensure that certain information is common knowledge)?

We encourage discussion about what's the best strategy. However, attempts to influence or coerce other players outside the game will be construed as cheating/collusion and result in disqualification.

David Mattingly Staff - 7 years, 10 months ago

Will numpy or any other libraries be available? Is there any rule against using inspect?

Numpy and scipy will be available. Inspect will not be available. In general, trying to get more information from the host than is fed through the function arguments, inspecting memory for what other users are going to do, etc., is not allowed. This is a game theory/programming challenge and not a hacking challenge (although we may do something in the latter category in the future...)

If you want a library available, send an email to competitions@brilliant.org with the library AND a good explanation and argument for why you want that library. We will discuss if that library will be added.

David Mattingly Staff - 7 years, 10 months ago

I think I'm reading this wrong, but is it true, that the extra food for 100 player game is calculated like this: integer m is chosen from 0 < m < 9900 lets say m is 2 at least 2 people hunt, so every player receives 198 bonus food from the round?

This is correct. Every player can receive lots of bonus food from a round if there are a large number of players.

David Mattingly Staff - 7 years, 10 months ago

Is it possible to go to negative food? That is, if I have 6 food left in a 3 player game can I still hunt twice (but still die if the other players don't hunt)?

Yes you can go to negative food during a round. If, however, at the end of the round after all the hunts are played and the award (if any) is handed out, you have zero or less food, you will die and be removed from the game.

David Mattingly Staff - 7 years, 10 months ago

If we use an OOP solution, is it expected that our player class be called Player?

Yes.

Is it ok if that class inherits from another class in the same file?

Yes.

Are there any limitations on imports (from the standard library)?

The standard library is available for use for the most part, but using things like open and inspect to try to gain access to information you shouldn't already have access to in memory or on the disk etc, will not be allowed. If you aren't sure about something, you are likely trying to hack something and you probably shouldn't do it. If you really are unsure and you don't think you are "hacking" ask us (by email at competitions@brilliant.org) if it'll be allowed (though code samples and very explicit details will help, if you just ask, "can we use x" without details, we may not be able to give a straight answer).

Will all players be in the same tribe? Or do we stay in one tribe for some rounds, then the survivors get merged with another tribe later? Or is it possible that some players will never be in the same tribe with other players?

Our goal at the moment is to get everyone in the same tribe. If it turns out that this is too resource intensive, we reserve the right to break the game into parallel games, with an award for each winner.

David Mattingly Staff - 7 years, 10 months ago

Are we allowed to use the standard library? The random module in particular?

Yes.

David Mattingly Staff - 7 years, 10 months ago

Can your program preserve state between rounds?

Yes, this example code shows how.

David Mattingly Staff - 7 years, 10 months ago

How much time will our program get before your server decides that it is stuck in a loop and kills it? Along the same vein, what is the ram usage cap?

Do not worry about time limitations or ram usage at the moment. We will try to be very lenient and not implement any hard caps. Algorithms that appear to be taking a long time or using tremendous amounts of ram will be inspected by staff before a decision is made to kill it, and a great algorithm that simply takes a long time/uses lots of memory will not be killed. This is, after all, an analysis competition, not a programming competition for algorithm speed or efficiency.

That said, while we believe that we have the capacity to run all algorithms in a single game, we reserve the right to change this in the future if the number of submissions is dramatically higher than we anticipate. In such a case, we may run parallel games and give a prize to the winner of each game, or give people warning that their algorithm uses too many resources and allow time to modify the algorithm.

In summary, our goal is to not have this be an issue. But, as a courtesy to us and the hamsters that power our servers, please use good practice and minimize the resources you use.

David Mattingly Staff - 7 years, 10 months ago

Do you have a 'simulator' that would allow us to test our hungry programs?

Right now we have a test script that you can use to verify your code is functional. Various users are working on simulators of their own (see the discussion boards) - they may be useful to you or not, use them at your own risk.

David Mattingly Staff - 7 years, 10 months ago

Can we use another programming language other than Python?

No. The focus of this competition is the analysis, so everyone gets to be on an even footing in terms of language. We chose Python because it is easy to learn and so provides a minimal handicap between those starting out and those who have coded in it for years.

David Mattingly Staff - 7 years, 10 months ago

I have been a member of Brilliant for a few months now and I have two friends with whom I'd like to make a team. Unfortunately, they do not have accounts on Brilliant. Am I still allowed to form a team with them and submit my team's code through my account, or do they have to also make accounts (or are they maybe not even allowed to play)?

Your friends can definitely team up and play with you! Anyone with a Brilliant account can participate, and anyone who can beg, borrow, or steal time on a computer can create a Brilliant account. Please have them create accounts on Brilliant. They can do so directly on the Hunger Games page.

If you are logged out or do not have an account when you see that page, hitting the "start playing" button prompts you to a sign up page. Just send your friends the link.

We want teammates to all have accounts on Brilliant, as it provides a layer of verification that the people who submit code, or supposedly submit code, are in fact who they say they are and not impostors, bots, cylons etc... With money prizes on the line this is important. It also provides us a way of informing all members of a team of the status of their algorithm in the competition, as opposed to just you.

David Mattingly Staff - 7 years, 10 months ago

Which version of Python will be supported?

2.7

David Mattingly Staff - 7 years, 10 months ago

Is there a check on ip's of the player who participates to the game? To prevent the creation of many account and that the same player submits more codes...this'll be unfair of course ;)

There will be checks on submissions to ensure the game is being played fairly.

David Mattingly Staff - 7 years, 10 months ago

What happens in the case of a tie?

If the last N players all die in the same round or N players have the same food at the end of the game, then reputation will be used as the tiebreaker, with the highest reputation winning. If there is still a tie, then the winning prize will be split. Note that due to the number of rounds and the randomness of player behavior, a tie is very unlikely.

David Mattingly Staff - 7 years, 10 months ago

*What happens if a program get kicked out of the competition (eg. time-out, or some irregular behaviour)? It will suddenly die (so we should also expect random deaths) or it get substituted by some fixed strategy (eg. "always hunt", "chose at random", or "pick a random player, and replicate his moves for this turn")? Or the competition restart from scratch with that program removed?

Before we run the full competition we will do a brief burn in and algorithm inspection to weed out algorithms that are completely broken, try to hack the game, or are totally error filled. "Bad strategy" will not be weeded out of course. If you pass this initial inspection, but your algorithm hangs or has a problem later in the game, you will not be kicked out. However, if there is a time out or error that prevents your algorithm from returning a properly defined set of choices in a round, then for that round you will be treated as an 'always slacker' by the host but remain in game.

David Mattingly Staff - 7 years, 10 months ago
×

Problem Loading...

Note Loading...

Set Loading...