{
  "id": 154319,
  "title": "9th place solution(s)",
  "content": "<p>It's fantastic to see the huge improvement of all teams in the last week of this interesting competition. Like many others, I and my teammates have had a sleepless night to play with the last \"tickets.\" </p>\n\n<p>Here is a short list to sum up our team solutions:</p>\n\n<ul>\n<li>2 DSL: 8/102</li>\n<li>2 Pub: 2/102</li>\n<li>CA: 2/102</li>\n<li>CA + voting: 1/102</li>\n<li>DSL + alignment: 1/102</li>\n</ul>\n\n<hr>\n\n<p><a href=\"/user189546\">@user189546</a>'s DSL and CA, and her own words</p>\n\n<p>My part of our team solution scores 7 points on LB. \nIt consists of 2 approaches:\n- Crop object + symmetry transformations (5 points). It overlapped by 2 tasks with <a href=\"/yukikubo123\">@yukikubo123</a> DSL+search solution.\n- Cellular Automata recurrent CNN public kernel + encoding colors by frequency (2 points, however first time it scored 3 points, didn’t happen again).</p>\n\n<p>1) Crop object</p>\n\n<p>This competition is hard for many reasons and one of reasons is large output space. When I joined the competition  I wanted to get first small win quickly. So  I looked at tasks that have small output space – crop object tasks. First object crop kernel scored 2 points and when I added more object extraction functions and symmetry transformations it scored 5 points.</p>\n\n<p>Kernel uses brute force to find right object extraction function and right symmetry transformation. If number of possible unique crop candidates &gt; 3 it predicts 3 biggest objects. Small objects can be features or noise. Solution runs in 3 min in Python.</p>\n\n<p><em>Pseudocode:</em></p>\n\n<p>```\nbg_color = detect_bg(task) # find background color as color of figure that touches 3 sides of input.\nget_object_funcs = [get_objects_by_color, get_objects_by_connectivity, get_objects_by_color_and_connectivity, get_objects_rectangles_without_noise, ….]</p>\n\n<p>symmetry_funcs = [identity, flip, rotate, tile, zoom, flip_diagonal, …]</p>\n\n<p>for get_object_func in get_object_funcs:\n    for symmetry_func in symmetry_funcs:\n        train_prediction_candidates =  symmetry_func(get_object_func( task_train_examples))\n        if task_train_outputs in crop_candidates:\n            break\ntest_prediction_candidates = symmetry_func(get_object_func(task_test_examples))\ntest_predictions = unique(sort_by_size(test_prediction_candidates))[:3]\n```</p>\n\n<p><a href=\"https://www.kaggle.com/user189546/5-crop-tasks-by-brute-force\"><strong>Sample Notebook</strong></a></p>\n\n<p>2) CA + ColorFreqEncoder</p>\n\n<p>Thanks to <a href=\"/teddykoker\">@teddykoker</a> we had wonderful CA kernel: <a href=\"https://www.kaggle.com/teddykoker/training-cellular-automata-part-ii-learning-tasks\">https://www.kaggle.com/teddykoker/training-cellular-automata-part-ii-learning-tasks</a>. It solved plenty of various tasks in train and eval however didn’t score on LB. I added encoding colors by frequency (0 – most common color, 1 – second most common color, 2 - …) and fixed all random seeds. Kernel performance is highly random so without random seeds it is not reproducible. When I submitted first time without fixing all random seeds it scored 0.97, however when I fixed random seeds it scored 0.98.</p>\n\n<p><a href=\"https://www.kaggle.com/user189546/cellular-automata-learning-with-colorfreqencoder\"><strong>Sample Notebook</strong></a></p>\n\n<hr>\n\n<p><a href=\"/yukikubo123\">@yukikubo123</a>'s DSL</p>\n\n<p>I won't post the detail of this solution here because <a href=\"/yukikubo123\">@yukikubo123</a>'s GitLab <a href=\"https://gitlab.com/yuki1020/abstraction-and-reasoning-challenge/\"><em>repo</em></a> alone is enough to show all of his awesome work of art\n-&gt; <a href=\"https://gitlab.com/yuki1020/abstraction-and-reasoning-challenge/\">https://gitlab.com/yuki1020/abstraction-and-reasoning-challenge/</a></p>\n\n<hr>\n\n<p><a href=\"/tarobxl\">@tarobxl</a>'s alignment technique</p>\n\n<p>When observing the data, <a href=\"/tarobxl\">@tarobxl</a> has thought: “Could we ease the learning process of the model(s), simply by rotating the training pairs of a task in the same direction.” I and he have applied this idea to all available solutions/models and luckily it works with <a href=\"/yukikubo123\">@yukikubo123</a>’s DSL and gives us a new solved task in the LB.</p>\n\n<p><a href=\"https://www.kaggle.com/phunghieu/yukikubo123-s-dsl-with-alignment\"><strong>Sample Notebook</strong></a></p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1853329%2F1cbdc8c981bf300dfefdf0dc20745529%2Fimage.png?generation=1590764004017060&amp;alt=media\" alt=\"img_1\"></p>\n\n<hr>\n\n<p><a href=\"/phunghieu\">@phunghieu</a>'s notes [Topic Author]\n- What I’ve tried\n  - Try using CNN to solve ARC’s problem in Deep Learning approach -&gt; failed\n  - Try merging <a href=\"/yukikubo123\">@yukikubo123</a>’s and <a href=\"/user189546\">@user189546</a>’s solutions with 2 public kernels to yield the 0.931 scored solution\n  - Successfully optimize the CA solution to run faster (x2) on GPU accelerator by removing redundancy, duplicate jobs, and trying to use batch-size &gt; 1 whenever possible\n  - Try averaging ensemble technique for CA solution -&gt; failed\n  - (I &amp; <a href=\"/tarobxl\">@tarobxl</a>) Successfully use the voting mechanism to ensemble CA kernel -&gt; 1 more solved task\n  - Try to add augmentation to CA solution -&gt; failed\n  - Successfully apply the alignment technique for <a href=\"/yukikubo123\">@yukikubo123</a>’s DSL solution -&gt; 1 more solved task</p>\n\n<ul>\n<li><p>What I’ve not tried</p>\n\n<ul><li>Modify the CA solution to solve tasks that have differences between the input’s size and output’s size</li>\n<li>Use multi-processing to further improve the CA solution performance, thus we could try more idea within 2 hours limit of a submission uses accelerator (GPU)</li></ul></li>\n<li><p>My main contributions to the team are</p>\n\n<ul><li>Merging all solutions into a big solver</li>\n<li>Improving the performance of all available solutions to fit them into a time-limited submission</li></ul></li>\n</ul>\n\n<p>(*) A few last words: Although not being a big brainer to the team, I have, somehow, tried my best to make use of my programming skills and techniques which I frequently used in the Deep Learning field to support my teammates. I also have taken advice from <a href=\"/tarobxl\">@tarobxl</a> and <a href=\"/ysharma1126\">@ysharma1126</a> to accelerate my “solution-optimization” job.</p>\n\n<hr>\n\n<p>Happy Kaggling!!!</p>",
  "comments": [
    {
      "id": 872106,
      "author_name": "corochann",
      "author_url": "",
      "post_date": "2020-06-02T23:09:49.153000",
      "content": "<p>Conglats! thanks for sharing.</p>",
      "votes": 1,
      "replies": [
        {
          "id": 872115,
          "author_name": "Hieu Phung",
          "author_url": "",
          "post_date": "2020-06-02T23:34:22.313000",
          "content": "<p>Thanks! <a href=\"/corochann\">@corochann</a> </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 865335,
      "author_name": "Somesh Sharma",
      "author_url": "",
      "post_date": "2020-05-28T15:06:49.583000",
      "content": "<p>Congratulations <a href=\"/phunghieu\">@phunghieu</a> and team 👍 </p>",
      "votes": 1,
      "replies": [
        {
          "id": 865870,
          "author_name": "Hieu Phung",
          "author_url": "",
          "post_date": "2020-05-29T00:15:58.343000",
          "content": "<p>Thanks! <a href=\"/somesh24\">@somesh24</a> </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 864406,
      "author_name": "Froggy McFrogson",
      "author_url": "",
      "post_date": "2020-05-28T01:41:12.523000",
      "content": "<p>Cool. I tried a CA which got a few on the training set but didn't get any on the leaderboard. My CA would look at the training set and find rules based on neighbouring cells to get the cell colour of the output. But only use the rules if they didn't contradict other rules. Cells outside the grid would match with anything I think.</p>\n\n<p>Then it would apply these rules to both the test input and the training inputs, then repeat the process for many steps until it couldn't do anymore. Surprisingly this worked on a few cases and nearly on some other seemingly difficult cases.</p>\n\n<p>I think to improve it the CA should consider not only neighbouring cells but what colors it \"sees\" in different directions.</p>",
      "votes": 1,
      "replies": [
        {
          "id": 864414,
          "author_name": "Hieu Phung",
          "author_url": "",
          "post_date": "2020-05-28T01:51:04.223000",
          "content": "<p>Interesting! I'll try your idea with late submissions when I have time. To be honest, Cellular Automata is the solution I like most; maybe, because I'm major in Deep Learning 😆. We should thank <a href=\"/arsenynerinovsky\">@arsenynerinovsky</a> and <a href=\"/teddykoker\">@teddykoker</a> for their awesome notebooks that inspire many other competitors, with Cellular Automata solution.</p>",
          "votes": 4,
          "replies": []
        },
        {
          "id": 864423,
          "author_name": "Teddy Koker",
          "author_url": "",
          "post_date": "2020-05-28T01:59:48.880000",
          "content": "<p>Glad you found my notebook useful! I'm curious how you managed to solve 2 tasks with CA, the best I could get is 1.</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 872340,
          "author_name": "Anastasia Karpovich",
          "author_url": "",
          "post_date": "2020-06-03T05:29:30.710000",
          "content": "<p><a href=\"/teddykoker\">@teddykoker</a> It is based on your kernel + 3 random seeds for 3 predictions + encoding colors by frequency. <a href=\"https://www.kaggle.com/user189546/cellular-automata-learning-with-colorfreqencoder\">https://www.kaggle.com/user189546/cellular-automata-learning-with-colorfreqencoder</a></p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 864445,
      "author_name": "KhanhVD",
      "author_url": "",
      "post_date": "2020-05-28T02:16:43.317000",
      "content": "<p>Congratulations to you and your team! Congratulations on becoming competition master! </p>",
      "votes": 2,
      "replies": [
        {
          "id": 865872,
          "author_name": "Hieu Phung",
          "author_url": "",
          "post_date": "2020-05-29T00:16:28.913000",
          "content": "<p>Thanks! <a href=\"/duykhanh99\">@duykhanh99</a> </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 872497,
      "author_name": "Hieu Phung",
      "author_url": "",
      "post_date": "2020-06-03T08:40:19.260000",
      "content": "<h3>Update</h3>\n\n<p>Add source code</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 867132,
      "author_name": "Hieu Phung",
      "author_url": "",
      "post_date": "2020-05-30T03:09:57.357000",
      "content": "<h3>Update</h3>\n\n<p>Add summarization of all solutions</p>\n\n<h3>Coming soon</h3>\n\n<p>Source code</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 864678,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-05-28T06:03:11.750000",
      "content": "",
      "votes": 1,
      "replies": [
        {
          "id": 865871,
          "author_name": "Hieu Phung",
          "author_url": "",
          "post_date": "2020-05-29T00:16:13.877000",
          "content": "<p>Thanks! <a href=\"/hicoca\">@hicoca</a> </p>",
          "votes": 0,
          "replies": []
        }
      ]
    }
  ],
  "comment_count": 14,
  "messages": [
    {
      "id": 864395,
      "postDate": "2020-05-28T01:30:04.320Z",
      "content": "<p>It's fantastic to see the huge improvement of all teams in the last week of this interesting competition. Like many others, I and my teammates have had a sleepless night to play with the last \"tickets.\" </p>\n\n<p>Here is a short list to sum up our team solutions:</p>\n\n<ul>\n<li>2 DSL: 8/102</li>\n<li>2 Pub: 2/102</li>\n<li>CA: 2/102</li>\n<li>CA + voting: 1/102</li>\n<li>DSL + alignment: 1/102</li>\n</ul>\n\n<hr>\n\n<p><a href=\"/user189546\">@user189546</a>'s DSL and CA, and her own words</p>\n\n<p>My part of our team solution scores 7 points on LB. \nIt consists of 2 approaches:\n- Crop object + symmetry transformations (5 points). It overlapped by 2 tasks with <a href=\"/yukikubo123\">@yukikubo123</a> DSL+search solution.\n- Cellular Automata recurrent CNN public kernel + encoding colors by frequency (2 points, however first time it scored 3 points, didn’t happen again).</p>\n\n<p>1) Crop object</p>\n\n<p>This competition is hard for many reasons and one of reasons is large output space. When I joined the competition  I wanted to get first small win quickly. So  I looked at tasks that have small output space – crop object tasks. First object crop kernel scored 2 points and when I added more object extraction functions and symmetry transformations it scored 5 points.</p>\n\n<p>Kernel uses brute force to find right object extraction function and right symmetry transformation. If number of possible unique crop candidates &gt; 3 it predicts 3 biggest objects. Small objects can be features or noise. Solution runs in 3 min in Python.</p>\n\n<p><em>Pseudocode:</em></p>\n\n<p>```\nbg_color = detect_bg(task) # find background color as color of figure that touches 3 sides of input.\nget_object_funcs = [get_objects_by_color, get_objects_by_connectivity, get_objects_by_color_and_connectivity, get_objects_rectangles_without_noise, ….]</p>\n\n<p>symmetry_funcs = [identity, flip, rotate, tile, zoom, flip_diagonal, …]</p>\n\n<p>for get_object_func in get_object_funcs:\n    for symmetry_func in symmetry_funcs:\n        train_prediction_candidates =  symmetry_func(get_object_func( task_train_examples))\n        if task_train_outputs in crop_candidates:\n            break\ntest_prediction_candidates = symmetry_func(get_object_func(task_test_examples))\ntest_predictions = unique(sort_by_size(test_prediction_candidates))[:3]\n```</p>\n\n<p><a href=\"https://www.kaggle.com/user189546/5-crop-tasks-by-brute-force\"><strong>Sample Notebook</strong></a></p>\n\n<p>2) CA + ColorFreqEncoder</p>\n\n<p>Thanks to <a href=\"/teddykoker\">@teddykoker</a> we had wonderful CA kernel: <a href=\"https://www.kaggle.com/teddykoker/training-cellular-automata-part-ii-learning-tasks\">https://www.kaggle.com/teddykoker/training-cellular-automata-part-ii-learning-tasks</a>. It solved plenty of various tasks in train and eval however didn’t score on LB. I added encoding colors by frequency (0 – most common color, 1 – second most common color, 2 - …) and fixed all random seeds. Kernel performance is highly random so without random seeds it is not reproducible. When I submitted first time without fixing all random seeds it scored 0.97, however when I fixed random seeds it scored 0.98.</p>\n\n<p><a href=\"https://www.kaggle.com/user189546/cellular-automata-learning-with-colorfreqencoder\"><strong>Sample Notebook</strong></a></p>\n\n<hr>\n\n<p><a href=\"/yukikubo123\">@yukikubo123</a>'s DSL</p>\n\n<p>I won't post the detail of this solution here because <a href=\"/yukikubo123\">@yukikubo123</a>'s GitLab <a href=\"https://gitlab.com/yuki1020/abstraction-and-reasoning-challenge/\"><em>repo</em></a> alone is enough to show all of his awesome work of art\n-&gt; <a href=\"https://gitlab.com/yuki1020/abstraction-and-reasoning-challenge/\">https://gitlab.com/yuki1020/abstraction-and-reasoning-challenge/</a></p>\n\n<hr>\n\n<p><a href=\"/tarobxl\">@tarobxl</a>'s alignment technique</p>\n\n<p>When observing the data, <a href=\"/tarobxl\">@tarobxl</a> has thought: “Could we ease the learning process of the model(s), simply by rotating the training pairs of a task in the same direction.” I and he have applied this idea to all available solutions/models and luckily it works with <a href=\"/yukikubo123\">@yukikubo123</a>’s DSL and gives us a new solved task in the LB.</p>\n\n<p><a href=\"https://www.kaggle.com/phunghieu/yukikubo123-s-dsl-with-alignment\"><strong>Sample Notebook</strong></a></p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1853329%2F1cbdc8c981bf300dfefdf0dc20745529%2Fimage.png?generation=1590764004017060&amp;alt=media\" alt=\"img_1\"></p>\n\n<hr>\n\n<p><a href=\"/phunghieu\">@phunghieu</a>'s notes [Topic Author]\n- What I’ve tried\n  - Try using CNN to solve ARC’s problem in Deep Learning approach -&gt; failed\n  - Try merging <a href=\"/yukikubo123\">@yukikubo123</a>’s and <a href=\"/user189546\">@user189546</a>’s solutions with 2 public kernels to yield the 0.931 scored solution\n  - Successfully optimize the CA solution to run faster (x2) on GPU accelerator by removing redundancy, duplicate jobs, and trying to use batch-size &gt; 1 whenever possible\n  - Try averaging ensemble technique for CA solution -&gt; failed\n  - (I &amp; <a href=\"/tarobxl\">@tarobxl</a>) Successfully use the voting mechanism to ensemble CA kernel -&gt; 1 more solved task\n  - Try to add augmentation to CA solution -&gt; failed\n  - Successfully apply the alignment technique for <a href=\"/yukikubo123\">@yukikubo123</a>’s DSL solution -&gt; 1 more solved task</p>\n\n<ul>\n<li><p>What I’ve not tried</p>\n\n<ul><li>Modify the CA solution to solve tasks that have differences between the input’s size and output’s size</li>\n<li>Use multi-processing to further improve the CA solution performance, thus we could try more idea within 2 hours limit of a submission uses accelerator (GPU)</li></ul></li>\n<li><p>My main contributions to the team are</p>\n\n<ul><li>Merging all solutions into a big solver</li>\n<li>Improving the performance of all available solutions to fit them into a time-limited submission</li></ul></li>\n</ul>\n\n<p>(*) A few last words: Although not being a big brainer to the team, I have, somehow, tried my best to make use of my programming skills and techniques which I frequently used in the Deep Learning field to support my teammates. I also have taken advice from <a href=\"/tarobxl\">@tarobxl</a> and <a href=\"/ysharma1126\">@ysharma1126</a> to accelerate my “solution-optimization” job.</p>\n\n<hr>\n\n<p>Happy Kaggling!!!</p>",
      "rawMarkdown": "It's fantastic to see the huge improvement of all teams in the last week of this interesting competition. Like many others, I and my teammates have had a sleepless night to play with the last \"tickets.\" \n\nHere is a short list to sum up our team solutions:\n\n- 2 DSL: 8/102\n- 2 Pub: 2/102\n- CA: 2/102\n- CA + voting: 1/102\n- DSL + alignment: 1/102\n\n---\n@user189546's DSL and CA, and her own words\n\nMy part of our team solution scores 7 points on LB. \nIt consists of 2 approaches:\n- Crop object + symmetry transformations (5 points). It overlapped by 2 tasks with @yukikubo123 DSL+search solution.\n- Cellular Automata recurrent CNN public kernel + encoding colors by frequency (2 points, however first time it scored 3 points, didn’t happen again).\n\n1) Crop object\n\nThis competition is hard for many reasons and one of reasons is large output space. When I joined the competition  I wanted to get first small win quickly. So  I looked at tasks that have small output space – crop object tasks. First object crop kernel scored 2 points and when I added more object extraction functions and symmetry transformations it scored 5 points.\n\nKernel uses brute force to find right object extraction function and right symmetry transformation. If number of possible unique crop candidates &gt; 3 it predicts 3 biggest objects. Small objects can be features or noise. Solution runs in 3 min in Python.\n\n*Pseudocode:*\n\n```\nbg_color = detect_bg(task) # find background color as color of figure that touches 3 sides of input.\nget_object_funcs = [get_objects_by_color, get_objects_by_connectivity, get_objects_by_color_and_connectivity, get_objects_rectangles_without_noise, ….]\n\nsymmetry_funcs = [identity, flip, rotate, tile, zoom, flip_diagonal, …]\n\nfor get_object_func in get_object_funcs:\n\tfor symmetry_func in symmetry_funcs:\n\t\ttrain_prediction_candidates =  symmetry_func(get_object_func( task_train_examples))\n\t\tif task_train_outputs in crop_candidates:\n\t\t\tbreak\ntest_prediction_candidates = symmetry_func(get_object_func(task_test_examples))\ntest_predictions = unique(sort_by_size(test_prediction_candidates))[:3]\n```\n\n[**Sample Notebook**](https://www.kaggle.com/user189546/5-crop-tasks-by-brute-force)\n\n2) CA + ColorFreqEncoder\n\nThanks to @teddykoker we had wonderful CA kernel: https://www.kaggle.com/teddykoker/training-cellular-automata-part-ii-learning-tasks. It solved plenty of various tasks in train and eval however didn’t score on LB. I added encoding colors by frequency (0 – most common color, 1 – second most common color, 2 - …) and fixed all random seeds. Kernel performance is highly random so without random seeds it is not reproducible. When I submitted first time without fixing all random seeds it scored 0.97, however when I fixed random seeds it scored 0.98.\n\n[**Sample Notebook**](https://www.kaggle.com/user189546/cellular-automata-learning-with-colorfreqencoder)\n\n---\n@yukikubo123's DSL\n\nI won't post the detail of this solution here because @yukikubo123's GitLab [*repo*](https://gitlab.com/yuki1020/abstraction-and-reasoning-challenge/) alone is enough to show all of his awesome work of art\n-&gt; https://gitlab.com/yuki1020/abstraction-and-reasoning-challenge/\n\n---\n@tarobxl's alignment technique\n\nWhen observing the data, @tarobxl has thought: “Could we ease the learning process of the model(s), simply by rotating the training pairs of a task in the same direction.” I and he have applied this idea to all available solutions/models and luckily it works with @yukikubo123’s DSL and gives us a new solved task in the LB.\n\n[**Sample Notebook**](https://www.kaggle.com/phunghieu/yukikubo123-s-dsl-with-alignment)\n\n![img_1](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1853329%2F1cbdc8c981bf300dfefdf0dc20745529%2Fimage.png?generation=1590764004017060&amp;alt=media)\n\n---\n@phunghieu's notes [Topic Author]\n- What I’ve tried\n  - Try using CNN to solve ARC’s problem in Deep Learning approach -&gt; failed\n  - Try merging @yukikubo123’s and @user189546’s solutions with 2 public kernels to yield the 0.931 scored solution\n  - Successfully optimize the CA solution to run faster (x2) on GPU accelerator by removing redundancy, duplicate jobs, and trying to use batch-size &gt; 1 whenever possible\n  - Try averaging ensemble technique for CA solution -&gt; failed\n  - (I &amp; @tarobxl) Successfully use the voting mechanism to ensemble CA kernel -&gt; 1 more solved task\n  - Try to add augmentation to CA solution -&gt; failed\n  - Successfully apply the alignment technique for @yukikubo123’s DSL solution -&gt; 1 more solved task\n\n- What I’ve not tried\n  - Modify the CA solution to solve tasks that have differences between the input’s size and output’s size\n  - Use multi-processing to further improve the CA solution performance, thus we could try more idea within 2 hours limit of a submission uses accelerator (GPU)\n\n- My main contributions to the team are\n  - Merging all solutions into a big solver\n  - Improving the performance of all available solutions to fit them into a time-limited submission\n\n(*) A few last words: Although not being a big brainer to the team, I have, somehow, tried my best to make use of my programming skills and techniques which I frequently used in the Deep Learning field to support my teammates. I also have taken advice from @tarobxl and @ysharma1126 to accelerate my “solution-optimization” job.\n\n---\nHappy Kaggling!!!",
      "votes": 31
    },
    {
      "id": 872106,
      "postDate": "2020-06-02T23:09:49.153Z",
      "content": "<p>Conglats! thanks for sharing.</p>",
      "rawMarkdown": "Conglats! thanks for sharing.",
      "votes": 1,
      "replies": [
        {
          "id": 872115,
          "postDate": "2020-06-02T23:34:22.313Z",
          "content": "<p>Thanks! <a href=\"/corochann\">@corochann</a> </p>",
          "rawMarkdown": "Thanks! @corochann "
        }
      ]
    },
    {
      "id": 865335,
      "postDate": "2020-05-28T15:06:49.583Z",
      "content": "<p>Congratulations <a href=\"/phunghieu\">@phunghieu</a> and team 👍 </p>",
      "rawMarkdown": "Congratulations @phunghieu and team 👍 ",
      "votes": 1,
      "replies": [
        {
          "id": 865870,
          "postDate": "2020-05-29T00:15:58.343Z",
          "content": "<p>Thanks! <a href=\"/somesh24\">@somesh24</a> </p>",
          "rawMarkdown": "Thanks! @somesh24 "
        }
      ]
    },
    {
      "id": 864406,
      "postDate": "2020-05-28T01:41:12.523Z",
      "content": "<p>Cool. I tried a CA which got a few on the training set but didn't get any on the leaderboard. My CA would look at the training set and find rules based on neighbouring cells to get the cell colour of the output. But only use the rules if they didn't contradict other rules. Cells outside the grid would match with anything I think.</p>\n\n<p>Then it would apply these rules to both the test input and the training inputs, then repeat the process for many steps until it couldn't do anymore. Surprisingly this worked on a few cases and nearly on some other seemingly difficult cases.</p>\n\n<p>I think to improve it the CA should consider not only neighbouring cells but what colors it \"sees\" in different directions.</p>",
      "rawMarkdown": "Cool. I tried a CA which got a few on the training set but didn't get any on the leaderboard. My CA would look at the training set and find rules based on neighbouring cells to get the cell colour of the output. But only use the rules if they didn't contradict other rules. Cells outside the grid would match with anything I think.\n\nThen it would apply these rules to both the test input and the training inputs, then repeat the process for many steps until it couldn't do anymore. Surprisingly this worked on a few cases and nearly on some other seemingly difficult cases.\n\nI think to improve it the CA should consider not only neighbouring cells but what colors it \"sees\" in different directions.\n\n",
      "votes": 1,
      "replies": [
        {
          "id": 864414,
          "postDate": "2020-05-28T01:51:04.223Z",
          "content": "<p>Interesting! I'll try your idea with late submissions when I have time. To be honest, Cellular Automata is the solution I like most; maybe, because I'm major in Deep Learning 😆. We should thank <a href=\"/arsenynerinovsky\">@arsenynerinovsky</a> and <a href=\"/teddykoker\">@teddykoker</a> for their awesome notebooks that inspire many other competitors, with Cellular Automata solution.</p>",
          "rawMarkdown": "Interesting! I'll try your idea with late submissions when I have time. To be honest, Cellular Automata is the solution I like most; maybe, because I'm major in Deep Learning 😆. We should thank @arsenynerinovsky and @teddykoker for their awesome notebooks that inspire many other competitors, with Cellular Automata solution.",
          "votes": 4
        },
        {
          "id": 864423,
          "postDate": "2020-05-28T01:59:48.880Z",
          "content": "<p>Glad you found my notebook useful! I'm curious how you managed to solve 2 tasks with CA, the best I could get is 1.</p>",
          "rawMarkdown": "Glad you found my notebook useful! I'm curious how you managed to solve 2 tasks with CA, the best I could get is 1.",
          "votes": 2
        },
        {
          "id": 872340,
          "postDate": "2020-06-03T05:29:30.710Z",
          "content": "<p><a href=\"/teddykoker\">@teddykoker</a> It is based on your kernel + 3 random seeds for 3 predictions + encoding colors by frequency. <a href=\"https://www.kaggle.com/user189546/cellular-automata-learning-with-colorfreqencoder\">https://www.kaggle.com/user189546/cellular-automata-learning-with-colorfreqencoder</a></p>",
          "rawMarkdown": "@teddykoker It is based on your kernel + 3 random seeds for 3 predictions + encoding colors by frequency. https://www.kaggle.com/user189546/cellular-automata-learning-with-colorfreqencoder",
          "votes": 1
        }
      ]
    },
    {
      "id": 864445,
      "postDate": "2020-05-28T02:16:43.317Z",
      "content": "<p>Congratulations to you and your team! Congratulations on becoming competition master! </p>",
      "rawMarkdown": "Congratulations to you and your team! Congratulations on becoming competition master! ",
      "votes": 2,
      "replies": [
        {
          "id": 865872,
          "postDate": "2020-05-29T00:16:28.913Z",
          "content": "<p>Thanks! <a href=\"/duykhanh99\">@duykhanh99</a> </p>",
          "rawMarkdown": "Thanks! @duykhanh99 "
        }
      ]
    },
    {
      "id": 872497,
      "postDate": "2020-06-03T08:40:19.260Z",
      "content": "<h3>Update</h3>\n\n<p>Add source code</p>",
      "rawMarkdown": "### Update\nAdd source code"
    },
    {
      "id": 867132,
      "postDate": "2020-05-30T03:09:57.357Z",
      "content": "<h3>Update</h3>\n\n<p>Add summarization of all solutions</p>\n\n<h3>Coming soon</h3>\n\n<p>Source code</p>",
      "rawMarkdown": "### Update\nAdd summarization of all solutions\n\n### Coming soon\nSource code"
    },
    {
      "id": 864678,
      "postDate": "2020-05-28T06:03:11.750Z",
      "rawMarkdown": "",
      "votes": 1,
      "isDeleted": true,
      "replies": [
        {
          "id": 865871,
          "postDate": "2020-05-29T00:16:13.877Z",
          "content": "<p>Thanks! <a href=\"/hicoca\">@hicoca</a> </p>",
          "rawMarkdown": "Thanks! @hicoca "
        }
      ]
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-19T22:05:45Z",
  "competition_id": 18329,
  "competition_slug": "abstraction-and-reasoning-challenge",
  "team_id": 4414005,
  "solution_url": "/competitions/abstraction-and-reasoning-challenge/writeups/deep-magicians-9th-place-solution-s"
}