{"id":29358174,"url":"https://github.com/average-user/busybeaver","last_synced_at":"2025-07-24T13:41:19.850Z","repository":{"id":303191507,"uuid":"282969162","full_name":"Average-user/BusyBeaver","owner":"Average-user","description":"Implementation of \"Generating Candidate Busy Beaver Machines (Or How to Build the Zany Zoo)\" (https://arxiv.org/abs/1610.03184)","archived":false,"fork":false,"pushed_at":"2020-07-30T23:35:25.000Z","size":2875,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-06T08:44:00.064Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Average-user.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-27T17:32:24.000Z","updated_at":"2020-07-30T23:35:29.000Z","dependencies_parsed_at":"2025-07-06T08:44:03.404Z","dependency_job_id":"4f0dcf6f-865a-4ad8-9d82-2afbfea561f2","html_url":"https://github.com/Average-user/BusyBeaver","commit_stats":null,"previous_names":["average-user/busybeaver"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Average-user/BusyBeaver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Average-user%2FBusyBeaver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Average-user%2FBusyBeaver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Average-user%2FBusyBeaver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Average-user%2FBusyBeaver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Average-user","download_url":"https://codeload.github.com/Average-user/BusyBeaver/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Average-user%2FBusyBeaver/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264403827,"owners_count":23602623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-09T06:08:55.140Z","updated_at":"2025-07-09T06:08:58.370Z","avatar_url":"https://github.com/Average-user.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Generating Candidates for the Busy Beaver function\n\nImplementation of the algorithm showed in the paper \"Generating Candidate Busy Beaver Machines (Or How to Build the Zany Zoo)\",\nwhich can be found in [arXiv](https://arxiv.org/abs/1610.03184), to generate candidates\nfor the Busy Beaver function.\n\n## The Basics\nThere are several ways to define the `BB(n,m)` of an n-state m-symbols Turing\nMachine, the choices here (as in the paper) are the following:\n\nFirst, we adopt the model of quintuple machines. That is transition rules are\nof the form\n\n```\n(state,symbol,new_symbol,direction,new_state)\n```\nwhere direction can be either `l` or `r`. They also label\nthe halting state as `z`, and other states as `a,b,c ...`. The blank\nsymbol is always `0` and the rest of them are taken in order\nfrom `1,2 ...`. Worth noting `z` can't be in the first entry of the tuple. And thus\nwhen we say n-state machine we men n-states apart from the halting one. A machine\nis also considered halting if and only if at some point reaches the halting state.\n\nThus, given `n` and `m` a single machine can be specified as a list\nof `n*m` blocks of three symbols. For example, the 3-states 2-symbols Turing\nMachine found in examples of [Busy Beaver Wikipedia](https://en.wikipedia.org/wiki/Busy_beaver)\nwhich is specified as:\n\n|  | A | B | C |\n|--|---|---|---|\n|0 |1RB|0RC|1LC|\n|1 |1RH|1RB|1LA|\n\nwe would specify as\n\n```\n1rb 1rz 0rc 1rb 1lc 1la\n```\n\nNote that we changed 'H' by 'z'. Once agreed on the model, they\ndefine the productivity of a halting machine as the amount of\nnon-`0` symbols that are in the final tape configuration. And\nthe `BB(n,m)` to be the productivity of the n-states m-symbols\nhalting Turing Machine with higher productivity.\n\n## Results\nThe following results were all obtained with a bound of\n`200` in a `i5-4300U CPU @ 1.90GHz` using [LuaJIT](https://luajit.org/).\nBy running the following command `time luajit main.lua n m 200`.\n\n\n| Size (n x m) | Machines Generated | Time counting (s) | Output File Size (kB) |\n|:------------:|-------------------:|------------------:|----------------------:|\n| 2x2          |                 36 |              0.00 |                     1 |\n| 3x2          |              3,508 |              0.02 |                    67 |\n| 2x3          |              2,764 |              0.01 |                    53 |\n| 4x2          |            511,162 |              2.79 |                12,780 |\n| 2x4          |            342,532 |              1.93 |                 8,564 |\n| 3x3          |         26,816,046 |            126.04 |               750,850 |\n| 5x2          |        102,598,955 |            549.96 |             3,180,568 |\n| 2x5          |         75,406,519 |            370.40 |             2,337,603 |\n\nThe compressed file with all of these outputs weights \"only\" `496MB`.\n\nWhile for dimensions `2x2`, `3x2`, `2x3` this programs\noutputs the exact same machines as theirs. For `4x2` the\noutput of this program is a superset of theirs, whit difference:\n\n```\n1rb --- 1rc 1rz 1ld 0lb 0la 0lc\n1rb 1rz 1rc 0la 1ld 0lb 0la 0lc\n1rb 1rz 1rc 0lb 1ld 0lb 0la 0lc\n1rb 1rz 1rc 0lc 1ld 0lb 0la 0lc\n1rb 1rz 1rc 0ld 1ld 0lb 0la 0lc\n1rb 1rz 1rc 0ra 1ld 0lb 0la 0lc\n1rb 1rz 1rc 0rb 1ld 0lb 0la 0lc\n1rb 1rz 1rc 0rc 1ld 0lb 0la 0lc\n1rb 1rz 1rc 0rd 1ld 0lb 0la 0lc\n1rb 1rz 1rc 1la 1ld 0lb 0la 0lc\n1rb 1rz 1rc 1lb 1ld 0lb 0la 0lc\n1rb 1rz 1rc 1lc 1ld 0lb 0la 0lc\n1rb 1rz 1rc 1ld 1ld 0lb 0la 0lc\n1rb 1rz 1rc 1ra 1ld 0lb 0la 0lc\n1rb 1rz 1rc 1rb 1ld 0lb 0la 0lc\n1rb 1rz 1rc 1rc 1ld 0lb 0la 0lc\n1rb 1rz 1rc 1rd 1ld 0lb 0la 0lc\n```\nAnd something similar for `2x4`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faverage-user%2Fbusybeaver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faverage-user%2Fbusybeaver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faverage-user%2Fbusybeaver/lists"}