"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Summary\n",
"\n",
"This notebook showed how to find the highest-scoring honeycomb, with a baseline and three key ideas:\n",
"\n",
"1. **Brute Force Enumeration**: Compute game score for every honeycomb; return the highest-scoring.\n",
"2. **Pangram Lettersets**: Compute game score for honeycombs that are pangram lettersets (with all 7 centers).\n",
"3. **Points Table**: Precompute score for each letterset; for each candidate honeycomb, sum 63 letter subset scores.\n",
"4. **Branch and Bound**: Try all 7 centers only for lettersets that score better than the top score so far.\n",
"\n",
"The key ideas paid off in efficiency improvements:\n",
"\n",
"\n",
"|Approach|Honeycombs|Reduction|`game_score` Time|Speedup|Overall Time|Overall Speedup|\n",
"|--------|----------|--------|----|---|---|---|\n",
"|1. **Brute Force Enumeration**|3,364,900|——|9000 microseconds|——|8.5 hours (est.)|——|\n",
"|2. **Pangram Lettersets**|55,902|60×|9000 microseconds|——|500 sec (est.)|60×|\n",
"|3. **Points Table**|55,902|——|22 microseconds|400×|1.5 seconds|20,000×|\n",
"|4. **Branch and Bound**|8,084 |7×|22 microseconds|——|0.31 seconds|100,000×|\n",
"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}