{
  "id": 154308,
  "title": "20th place solution",
  "content": "<p>I guess you are interested in TOP solutions, yeah me too! <br>\nBut please let me write here, as I spent mush energy for this challenge.  </p>\n\n<p>My Solution is DSL plus search. <br>\n<a href=\"https://github.com/k-harada/abstraction-and-reasoning-challenge\">https://github.com/k-harada/abstraction-and-reasoning-challenge</a> <br>\nMy DSL applied like this.  </p>\n\n<p><code>\ndef test_58():\n    p = Runner(58, verbose=True)\n    p.run(\"mesh_split\")\n    p.run(\"n_cell\")\n    p.run(\"keep_max\")\n    p.run(\"max_color\")\n    p.run(\"paste_color_full\")\n</code></p>\n\n<p>I tried some kinds of search, and simple BFS significantly improved my score, 0.970 -&gt; 0.931. <br>\nNo idea for probing.  </p>\n\n<p>Solved: \nTrain: 146 / 416 <br>\nEvaluation: 94 / 419  </p>",
  "comments": [
    {
      "id": 865296,
      "author_name": "Andy Penrose",
      "author_url": "",
      "post_date": "2020-05-28T14:33:25.443000",
      "content": "<p>Thanks for sharing. I went for a DSL approach as well (also after some experiments with overfitting decision trees!). Yes, I found it helpful to search with split operations at the start of the program, transforms at the end.</p>\n\n<p>I think 20th as a solo entry in this competition is a strong result. Congratulations!</p>",
      "votes": 1,
      "replies": [
        {
          "id": 865317,
          "author_name": "Kei Harada",
          "author_url": "",
          "post_date": "2020-05-28T14:49:01.743000",
          "content": "<p>Thank you! I've missed the gold medal, but I'm very happy that many have come up with a similar idea. <br>\nI have no doubt about private sharing, sometimes people reach the same point, which often happens when clever people tackle the problems of mathematics and algorithms. It's a great moment. </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 865072,
      "author_name": "Jan Bre",
      "author_url": "",
      "post_date": "2020-05-28T11:17:47.977000",
      "content": "<p>Congratulations. \nGot a bit scared when you got to 0.931 with ~ 10 submissions. </p>",
      "votes": 1,
      "replies": [
        {
          "id": 865292,
          "author_name": "Kei Harada",
          "author_url": "",
          "post_date": "2020-05-28T14:31:21.583000",
          "content": "<p>Congratulations on your gold medal and Master Tier. <br>\nIt was when I applied BFS and extended search time to 36 seconds for each problem that I got 0.931, I myself was very surprised and I dreamed solo gold... \nBut I cannot understand why people submit so many times like this, I could locally evaluate my solution, and  the only information I could get from leaderboard score was \"I was lucky today\".  </p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 864366,
      "author_name": "Froggy McFrogson",
      "author_url": "",
      "post_date": "2020-05-28T00:56:00.990000",
      "content": "<p>Good job. I think weeding out the wrong answers is important in because you only have 3 tries on each one.  Did you \nlearn any new insights into AI from this competition?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 864378,
          "author_name": "Kei Harada",
          "author_url": "",
          "post_date": "2020-05-28T01:06:42.010000",
          "content": "<p>Thanks, I evaluated answers (around 10,000 for each problem) using simple distance in training pairs, and output top 3. <br>\nI could not make use of ML, but some say DecisionTreeClassifier solved some many, this is very interesting to me. I could only overfit! </p>",
          "votes": 3,
          "replies": []
        }
      ]
    },
    {
      "id": 864374,
      "author_name": "higepon",
      "author_url": "",
      "post_date": "2020-05-28T01:01:55.083000",
      "content": "<p>I also would like to learn how you skipped some branches when do BFS search. I used python exception if some pre-condition doesn't met. But still there are too many combinations to try in my case.</p>",
      "votes": 2,
      "replies": [
        {
          "id": 864393,
          "author_name": "Kei Harada",
          "author_url": "",
          "post_date": "2020-05-28T01:24:58",
          "content": "<p>Great point. I used python exception, too. <br>\nMake use of numpy and numba, sometimes 10 times faster, . <br>\nAs for branches, I grouped operators int map, transform, solve, final_solve and so on. \nLimited operations, for example, map operators(for instance, split by color, split by connection) can only applied first, final_solve operators(such as replace 3*3 seeing train outputs, rotations, bitwise operations). <br>\nAround 700 branches per second, 36 seconds for each problem in submissions(36 * 8 did not help in my case).  </p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 864424,
          "author_name": "higepon",
          "author_url": "",
          "post_date": "2020-05-28T02:00:58.037000",
          "content": "<p>Thank you. I makes a lot sense to group them. I should have done that too.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 864677,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-05-28T06:01:06.313000",
      "content": "",
      "votes": 1,
      "replies": []
    }
  ],
  "comment_count": 10,
  "messages": [
    {
      "id": 864356,
      "postDate": "2020-05-28T00:49:22.820Z",
      "content": "<p>I guess you are interested in TOP solutions, yeah me too! <br>\nBut please let me write here, as I spent mush energy for this challenge.  </p>\n\n<p>My Solution is DSL plus search. <br>\n<a href=\"https://github.com/k-harada/abstraction-and-reasoning-challenge\">https://github.com/k-harada/abstraction-and-reasoning-challenge</a> <br>\nMy DSL applied like this.  </p>\n\n<p><code>\ndef test_58():\n    p = Runner(58, verbose=True)\n    p.run(\"mesh_split\")\n    p.run(\"n_cell\")\n    p.run(\"keep_max\")\n    p.run(\"max_color\")\n    p.run(\"paste_color_full\")\n</code></p>\n\n<p>I tried some kinds of search, and simple BFS significantly improved my score, 0.970 -&gt; 0.931. <br>\nNo idea for probing.  </p>\n\n<p>Solved: \nTrain: 146 / 416 <br>\nEvaluation: 94 / 419  </p>",
      "rawMarkdown": "I guess you are interested in TOP solutions, yeah me too!  \nBut please let me write here, as I spent mush energy for this challenge.  \n\nMy Solution is DSL plus search.   \nhttps://github.com/k-harada/abstraction-and-reasoning-challenge  \nMy DSL applied like this.  \n\n```\ndef test_58():\n    p = Runner(58, verbose=True)\n    p.run(\"mesh_split\")\n    p.run(\"n_cell\")\n    p.run(\"keep_max\")\n    p.run(\"max_color\")\n    p.run(\"paste_color_full\")\n```\n\nI tried some kinds of search, and simple BFS significantly improved my score, 0.970 -&gt; 0.931.  \nNo idea for probing.  \n\nSolved: \nTrain: 146 / 416  \nEvaluation: 94 / 419  ",
      "votes": 17
    },
    {
      "id": 865296,
      "postDate": "2020-05-28T14:33:25.443Z",
      "content": "<p>Thanks for sharing. I went for a DSL approach as well (also after some experiments with overfitting decision trees!). Yes, I found it helpful to search with split operations at the start of the program, transforms at the end.</p>\n\n<p>I think 20th as a solo entry in this competition is a strong result. Congratulations!</p>",
      "rawMarkdown": "Thanks for sharing. I went for a DSL approach as well (also after some experiments with overfitting decision trees!). Yes, I found it helpful to search with split operations at the start of the program, transforms at the end.\n\nI think 20th as a solo entry in this competition is a strong result. Congratulations!",
      "votes": 1,
      "replies": [
        {
          "id": 865317,
          "postDate": "2020-05-28T14:49:01.743Z",
          "content": "<p>Thank you! I've missed the gold medal, but I'm very happy that many have come up with a similar idea. <br>\nI have no doubt about private sharing, sometimes people reach the same point, which often happens when clever people tackle the problems of mathematics and algorithms. It's a great moment. </p>",
          "rawMarkdown": "Thank you! I've missed the gold medal, but I'm very happy that many have come up with a similar idea.  \nI have no doubt about private sharing, sometimes people reach the same point, which often happens when clever people tackle the problems of mathematics and algorithms. It's a great moment. "
        }
      ]
    },
    {
      "id": 865072,
      "postDate": "2020-05-28T11:17:47.977Z",
      "content": "<p>Congratulations. \nGot a bit scared when you got to 0.931 with ~ 10 submissions. </p>",
      "rawMarkdown": "Congratulations. \nGot a bit scared when you got to 0.931 with ~ 10 submissions. ",
      "votes": 1,
      "replies": [
        {
          "id": 865292,
          "postDate": "2020-05-28T14:31:21.583Z",
          "content": "<p>Congratulations on your gold medal and Master Tier. <br>\nIt was when I applied BFS and extended search time to 36 seconds for each problem that I got 0.931, I myself was very surprised and I dreamed solo gold... \nBut I cannot understand why people submit so many times like this, I could locally evaluate my solution, and  the only information I could get from leaderboard score was \"I was lucky today\".  </p>",
          "rawMarkdown": "Congratulations on your gold medal and Master Tier.  \nIt was when I applied BFS and extended search time to 36 seconds for each problem that I got 0.931, I myself was very surprised and I dreamed solo gold... \nBut I cannot understand why people submit so many times like this, I could locally evaluate my solution, and  the only information I could get from leaderboard score was \"I was lucky today\".  ",
          "votes": 1
        }
      ]
    },
    {
      "id": 864366,
      "postDate": "2020-05-28T00:56:00.990Z",
      "content": "<p>Good job. I think weeding out the wrong answers is important in because you only have 3 tries on each one.  Did you \nlearn any new insights into AI from this competition?</p>",
      "rawMarkdown": "Good job. I think weeding out the wrong answers is important in because you only have 3 tries on each one.  Did you \nlearn any new insights into AI from this competition?",
      "votes": 1,
      "replies": [
        {
          "id": 864378,
          "postDate": "2020-05-28T01:06:42.010Z",
          "content": "<p>Thanks, I evaluated answers (around 10,000 for each problem) using simple distance in training pairs, and output top 3. <br>\nI could not make use of ML, but some say DecisionTreeClassifier solved some many, this is very interesting to me. I could only overfit! </p>",
          "rawMarkdown": "Thanks, I evaluated answers (around 10,000 for each problem) using simple distance in training pairs, and output top 3.  \nI could not make use of ML, but some say DecisionTreeClassifier solved some many, this is very interesting to me. I could only overfit! ",
          "votes": 3
        }
      ]
    },
    {
      "id": 864374,
      "postDate": "2020-05-28T01:01:55.083Z",
      "content": "<p>I also would like to learn how you skipped some branches when do BFS search. I used python exception if some pre-condition doesn't met. But still there are too many combinations to try in my case.</p>",
      "rawMarkdown": "I also would like to learn how you skipped some branches when do BFS search. I used python exception if some pre-condition doesn't met. But still there are too many combinations to try in my case.",
      "votes": 2,
      "replies": [
        {
          "id": 864393,
          "postDate": "2020-05-28T01:24:58Z",
          "content": "<p>Great point. I used python exception, too. <br>\nMake use of numpy and numba, sometimes 10 times faster, . <br>\nAs for branches, I grouped operators int map, transform, solve, final_solve and so on. \nLimited operations, for example, map operators(for instance, split by color, split by connection) can only applied first, final_solve operators(such as replace 3*3 seeing train outputs, rotations, bitwise operations). <br>\nAround 700 branches per second, 36 seconds for each problem in submissions(36 * 8 did not help in my case).  </p>",
          "rawMarkdown": "Great point. I used python exception, too.  \nMake use of numpy and numba, sometimes 10 times faster, .    \nAs for branches, I grouped operators int map, transform, solve, final_solve and so on. \nLimited operations, for example, map operators(for instance, split by color, split by connection) can only applied first, final_solve operators(such as replace 3*3 seeing train outputs, rotations, bitwise operations).  \nAround 700 branches per second, 36 seconds for each problem in submissions(36 * 8 did not help in my case).  \n",
          "votes": 2
        },
        {
          "id": 864424,
          "postDate": "2020-05-28T02:00:58.037Z",
          "content": "<p>Thank you. I makes a lot sense to group them. I should have done that too.</p>",
          "rawMarkdown": "Thank you. I makes a lot sense to group them. I should have done that too."
        }
      ]
    },
    {
      "id": 864677,
      "postDate": "2020-05-28T06:01:06.313Z",
      "rawMarkdown": "",
      "votes": 1,
      "isDeleted": true
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T22:05:40Z",
  "competition_id": 18329,
  "competition_slug": "abstraction-and-reasoning-challenge",
  "team_id": 4395135,
  "solution_url": "/competitions/abstraction-and-reasoning-challenge/writeups/20th-place-solution"
}