# Welcome to mini ai cups

For five years now, we have been holding the Russian ai cup, the largest annual artificial intelligence championship in the CIS (or, if simpler, writing bots for games). And for seven years now, the participants in this championship have been asking either to leave the sandbox to work all year, or to launch a platform where it would be possible to play similar contests all year, only a little less in size.

We thought and decided to try out the second option - we opened a new platform with mini-competitions related to artificial intelligence and writing bots for games. Meet the new championship class for us -http://aicups.ru/ .

And immediately we offer to take part in the first test championship.

And do not beat us, please, for the design of the site. We really ran into the quality of the competition itself, so we simply did not have time to design. We will pretend that we see so;)

## Essence of the task

Since this is the first championship on a new venue, we didn’t really bother with the complexity of the task and took on a fairly simple topic - delivering passengers to floors using an elevator. To diversify the task, several factors have been added to it that affect the passenger transport algorithm:

- Each passenger has a weight.
- The more passengers we drive, the slower we go
- Upon reaching a certain (critical) number of passengers, we drive even slower

In addition, the task is multiplayer. That is, we have two groups of elevators and each player controls his group. Passengers themselves are divided into “friends” and “strangers” - it is more difficult to pick up a stranger from the floor. But if I could, I got 2x points;)

You can read more about all this below in the “Rules” section.

## Championship Stages

The championship opens today, September 15th, and runs until October 9th.

So far, our plan is as follows:

**On September 15,** a playground with a sandbox opens, and participants have the opportunity to upload their strategies and play non-rated games of interest to their other strategies, to other players or to the base line - two fake users live in the sandbox (“good baseline” - always takes only its passengers and “evil baseline” - takes only strangers).

A day you can download no more than 24 new solutions, and play no more than 48 non-rated games.

**September 18,** rating games begin to work in the sandbox (their system creates itself). From time to time, two participants are pseudo-randomly selected (for selection we use TrueSkill, thanks Microsoft for this wonderful algorithm!). From each of them we take the strategy that he had previously chosen to participate in the ranking. These two strategies play with each other, the winner moves up in the leaderboard, the loser down. Thus, the sandbox rating is built.

**On October 9th** we plan to hold the final. A number of top participants from the sandbox will be selected in a separate rating, after which we will launch several waves of games “each with each” and thus find out whose strategy is the coolest, give out prizes, take into account wishes and go get ready for the next such championship!

## Prizes

As has long been accepted in our championships, we award TOP6. The distribution of prizes is the same as in the recent highloadcup:

- Apple iPad Air 2 Cellular 16GB for first place
- WD MyCloud 6TB
- WD MyCloud 6TB
- WD MyPassport Ultra 2TB
- WD MyPassport Ultra 2TB
- WD MyPassport Ultra 2TB

In addition, T-shirts! We will not break this good tradition as well - TOP20 will receive T-shirts with championship symbols from us. Perhaps there will be more T-shirts - in highloadcup we also started with 20 pieces, as a result we give 116 :)

## Task and Rules

So, more about the task.

Description of the building:

- The building contains 2 groups of elevators, each group belongs to one player
- The building contains 2 stairs
- The building has 9 floors, which are numbered from 1 to 9 from bottom to top
- The height of each floor is 1
- The distance from the center of the floor to the elevator group is 60 units
- The distance from the center of the floor to the waiting area for passengers of each group is 20 units

Lifts:

- Each of the two groups contains 4 elevators
- Lifts in the group are 80 units apart
- At the beginning of the game, all elevators are on the 1st floor with open doors and passengers ready for pick-up
- After opening the doors, the elevator stands on the floor for at least 40 ticks
- Door opening lasts 100 ticks
- Door closure lasts 100 ticks
- Maximum lift capacity 20 passengers
- An empty elevator overcomes the floor for 50 ticks
- The elevator travels the slower the more passengers it carries
- If more than 4 passengers travel in the elevator, it loses speed in double volume
- Loss of elevator speed depends on passenger weight

Passengers:

- Passengers appear in pairs every 20 ticks on the first floor up to 2000 ticks
- Each passenger during the game wants to visit from 1 to 5 random unique floors, except for the first (the distribution of the number of floors and the floors themselves is uniform) and return to the first floor closer to the end of the game
- Passengers wait for a lift of 500 ticks, and then go up the stairs
- Passenger climbing stairs - one floor at 200 ticks
- Passenger descent stairs - one floor in 100 ticks
- Passenger horizontal speed 2 units per teak
- The passenger has a random weight of 1 to 1.1
- After leaving the elevator, the passenger goes to his floor exactly 40 ticks
- The passenger spends 500 ticks on the floor, after which he appears on the floor from the side where he left
- Passenger always goes to the nearest lift assigned to him
- You cannot reassign the elevator to the passenger
- If the passenger’s elevator left without him, then the passenger’s assigned elevator is removed and he returns to his starting position
- You can pick up an enemy passenger only with an elevator that has already stood on the floor of 40 ticks
- Moving the elevator hall -> stairs, floor -> elevator hall happen instantly

Scoring:

- For his passenger, the player receives (number of floors) * 10 points
- For an opponent’s passenger, the player receives twice as much as for his

The player with the most points wins.

API and Baseline we posted in the official repository with documentation, here . New issue is being accepted in the same repository, we will definitely review them.

## And what to write on?

We now have an API for the following languages:

- Python 2.7
- Python 3.6
- Cpp11
- Java1.8
- Nodejs
- PHP7

Perhaps this list will be updated. We are trying to connect C # right now.

## And who can participate?

Everyone can participate, without restrictions! Come in, try it! You can participate here , and you can discuss the championship in VK and Telegram . Good luck in the championship!