# Abstraction and Reasoning Challenge — Data

来源：https://www.kaggle.com/competitions/abstraction-and-reasoning-challenge/data

本地 Meta Kaggle 快照；不是本次实时页面。

# Dataset Description

The objective of this competition is to create an algorithm that is capable of solving abstract reasoning tasks. The format is very different than previous competition, so please read this information carefully, and refer to supplementary documentation as needed.

When looking at a task, a "test-taker" has access to inputs and outputs of the demonstration pairs (train pairs), plus the input(s) of the test pair(s). The goal is to construct the output grid(s) corresponding to the test input grid(s), using 3 trials for each test input. "Constructing the output grid" involves picking the height and width of the output grid, then filling each cell in the grid with a symbol (integer between 0 and 9, which are visualized as colors). Only *exact* solutions (all cells match the expected answer) can be said to be correct.

A additional information, as well as an interactive app to explore the objective of this competition is found at the  [Abstraction and Reasoning Corpus](https://github.com/fchollet/ARC) github page. _**It is highly recommended that you download and explore the interactive app, as the best way to understand the objective of the competition**._

## Task file format

The task files are stored in two directories:

- `training`: contains the task files for training (400 tasks). Use these to prototype your algorithm or to train your algorithm to acquire ARC-relevant cognitive priors.
- `evaluation`: contains the task files for evaluation (400 tasks).

The tasks are stored in JSON format. Each task JSON file contains a dictionary with two fields:

- `"train"`: demonstration input/output pairs. It is a list of "pairs" (typically 3 pairs).
- `"test"`: test input/output pairs. It is a list of "pairs" (typically 1 pair).

A "pair" is a dictionary with two fields:
- `"input"`: the input "grid" for the pair.
- `"output"`: the output "grid" for the pair.

A "grid" is a rectangular matrix (list of lists) of integers between 0 and 9 (inclusive). The smallest possible grid size is 1x1 and the largest is 30x30.

**NOTE:** For this competition, we are keeping the language of the ARC dataset, but that creates some ambiguity. The `training` and `evaluation` tasks both contain `train` and `test` pairs of inputs and outputs. The leaderboard will be scored using 100 unseen test tasks. The test tasks will contain `train` pairs of inputs and outputs, but you are only given the tasks `test` input. Your algorithm must predict the `test` output. For the 100 tasks used for leaderboard score, most only have one `test` input that will require a corresponding output prediction, although for a small number of tasks, you will be asked to make predictions for two `test` inputs. The `output_id` shown in the `sample_submission.csv` denotes the task `id` as will as the test input `id`.

## Files

*   **training**: a folder of task files for training (400 tasks). Use these to prototype your algorithm or to train your algorithm to acquire ARC-relevant cognitive priors.
*   **evaluation**: a folder of task files for evaluation (400 tasks). Use these to evaluate your final algorithm. 
*   **test**:
 * the `test` folder on the Data page contains the first 100 tasks copied from evaluation folder, but without the answer; the purpose is so you can use to ensure your code works correctly for the sync re-run.
 * the `test` folder for the sync re-run contains 100 (unseen) tasks that are used to score your model; these same unseen 100 tasks are used for _both_ the Public and Private leaderboard. You won't have access to these tasks, and both your Public/Private score will be calculated during the sync re-run.
*   **sample_submission.csv** - a sample submission file in the correct format; the `output_id` column contains the task and test output `id` that needs to be predicted; the `sample_submission` on this Data page will have different `output_id` list than the notebook sync re-run.