diff --git a/README.md b/README.md index bf554da..7f1142a 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,9 @@ git pull upstream master 1. [交通事故理赔审核预测](report_01_accident_claims/README.md) 2. [Titanic](report_02_Titanic/README.md) 3. [Fashion](report_03_Fashion/README.md) -3. [Tetris](report_04_Tetris/README.md) +4. [Tetris](report_04_Tetris/README.md) +5. [Jigsaw-Puzzle](report_05_Jigsaw-Puzzle) +6. [Sudoku](report_06_Sudoku) diff --git a/report_05_Jigsaw-Puzzle/.ipynb_checkpoints/report_template-checkpoint.ipynb b/report_05_Jigsaw-Puzzle/.ipynb_checkpoints/report_template-checkpoint.ipynb new file mode 100644 index 0000000..1db93a2 --- /dev/null +++ b/report_05_Jigsaw-Puzzle/.ipynb_checkpoints/report_template-checkpoint.ipynb @@ -0,0 +1,58 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Report - 报告题目\n", + "\n", + "* 姓名\n", + "* 学号\n", + "\n", + "\n", + "## 任务简介\n", + "\n", + "这里简述一下任务是什么;最终的目标是什么\n", + "\n", + "## 解决途径\n", + "\n", + "主要包括:\n", + "1. 问题的思考,整体的思路\n", + "2. 选用的方法,以及为何选用这些方法\n", + "3. 所用方法的详细解释,包括理论上的背景、模型、实现的细节\n", + "3. 实现过程遇到的问题,以及如何解决的\n", + "4. 最终的结果,实验分析\n", + "\n", + "要求:\n", + "1. 数据的基本情况介绍\n", + "2. 程序,以及各个部分的解释、说明\n", + "3. 结果的可视化,精度等的分析\n", + "\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.6.9" + }, + "main_language": "python" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/report_05_Jigsaw-Puzzle/README.md b/report_05_Jigsaw-Puzzle/README.md new file mode 100644 index 0000000..c01997a --- /dev/null +++ b/report_05_Jigsaw-Puzzle/README.md @@ -0,0 +1,39 @@ +# Report5 - 拼图游戏 + +## 任务介绍 +拼图游戏是广受欢迎的一种智力游戏,它的变化多端,难度不一。拼图游戏也有置换不变性,不管拼图的顺序是什么,输出总是固定的。下面是一个2x2的网格难题的例子,我们将在这个项目中尝试解决它。 + +![Jigsaw-Puzzle_demo1.png](images/Jigsaw-Puzzle_demo1.png) + +解决一个3x3网格的难题是极其困难的。下面是这些谜题的可能组合。 + +``` +2x2 puzzle = 4! = 24 combinations +3x3 puzzle = 9! = 362880 comb'ns +``` + +为了解决一个3x3的难题,网络必须从362880中预测出一个正确的组合。这也是为什么3x3拼图是一个难题的另一个原因。 + +为了让大家学习如何使用卷积神经网络,首先尝试解决一个2x2的拼图游戏。 + +## 数据 +这个数据集包含2x2和3x3的puzzle。你可以在这里找到它。 + +https://www.kaggle.com/shivajbd/jigsawpuzzle + +下面是一个2x2网格拼图的数据示例。输入是一个200x200像素的图像和标签是一个4个整数的数组,其中每个整数告诉每个片段的正确位置。 + +![Jigsaw-Puzzle_sample-data](images/Jigsaw-Puzzle_sample-data.png) + +## 要求 + +1. 分析拼图游戏的特点,设计实现的方法 +2. 在Kaggle网站上,下载数据 +3. 编写神经网络代码,测试自己算法的效果如何 +4. 测试所研究方法的效果 +5. 分析自己实现的方法的问题,以及如何改进 +6. 深入思考,如何解决3x3的拼图?或者更大的拼图? +7. 按照`report_template.ipynb`撰写自己的报告。 + +## References +* https://www.kaggle.com/shivajbd/jigsawpuzzle \ No newline at end of file diff --git a/report_05_Jigsaw-Puzzle/images/Jigsaw-Puzzle_demo1.png b/report_05_Jigsaw-Puzzle/images/Jigsaw-Puzzle_demo1.png new file mode 100644 index 0000000..85faf1d Binary files /dev/null and b/report_05_Jigsaw-Puzzle/images/Jigsaw-Puzzle_demo1.png differ diff --git a/report_05_Jigsaw-Puzzle/images/Jigsaw-Puzzle_results.png b/report_05_Jigsaw-Puzzle/images/Jigsaw-Puzzle_results.png new file mode 100644 index 0000000..0438c28 Binary files /dev/null and b/report_05_Jigsaw-Puzzle/images/Jigsaw-Puzzle_results.png differ diff --git a/report_05_Jigsaw-Puzzle/images/Jigsaw-Puzzle_sample-data.png b/report_05_Jigsaw-Puzzle/images/Jigsaw-Puzzle_sample-data.png new file mode 100644 index 0000000..28e4fde Binary files /dev/null and b/report_05_Jigsaw-Puzzle/images/Jigsaw-Puzzle_sample-data.png differ diff --git a/report_05_Jigsaw-Puzzle/report_template.ipynb b/report_05_Jigsaw-Puzzle/report_template.ipynb new file mode 100644 index 0000000..1db93a2 --- /dev/null +++ b/report_05_Jigsaw-Puzzle/report_template.ipynb @@ -0,0 +1,58 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Report - 报告题目\n", + "\n", + "* 姓名\n", + "* 学号\n", + "\n", + "\n", + "## 任务简介\n", + "\n", + "这里简述一下任务是什么;最终的目标是什么\n", + "\n", + "## 解决途径\n", + "\n", + "主要包括:\n", + "1. 问题的思考,整体的思路\n", + "2. 选用的方法,以及为何选用这些方法\n", + "3. 所用方法的详细解释,包括理论上的背景、模型、实现的细节\n", + "3. 实现过程遇到的问题,以及如何解决的\n", + "4. 最终的结果,实验分析\n", + "\n", + "要求:\n", + "1. 数据的基本情况介绍\n", + "2. 程序,以及各个部分的解释、说明\n", + "3. 结果的可视化,精度等的分析\n", + "\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.6.9" + }, + "main_language": "python" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/report_06_Sudoku/.ipynb_checkpoints/report_template-checkpoint.ipynb b/report_06_Sudoku/.ipynb_checkpoints/report_template-checkpoint.ipynb new file mode 100644 index 0000000..1db93a2 --- /dev/null +++ b/report_06_Sudoku/.ipynb_checkpoints/report_template-checkpoint.ipynb @@ -0,0 +1,58 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Report - 报告题目\n", + "\n", + "* 姓名\n", + "* 学号\n", + "\n", + "\n", + "## 任务简介\n", + "\n", + "这里简述一下任务是什么;最终的目标是什么\n", + "\n", + "## 解决途径\n", + "\n", + "主要包括:\n", + "1. 问题的思考,整体的思路\n", + "2. 选用的方法,以及为何选用这些方法\n", + "3. 所用方法的详细解释,包括理论上的背景、模型、实现的细节\n", + "3. 实现过程遇到的问题,以及如何解决的\n", + "4. 最终的结果,实验分析\n", + "\n", + "要求:\n", + "1. 数据的基本情况介绍\n", + "2. 程序,以及各个部分的解释、说明\n", + "3. 结果的可视化,精度等的分析\n", + "\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.6.9" + }, + "main_language": "python" + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/report_06_Sudoku/README.md b/report_06_Sudoku/README.md new file mode 100644 index 0000000..ed1c79c --- /dev/null +++ b/report_06_Sudoku/README.md @@ -0,0 +1,57 @@ +# Report6 - 数独 + +## 内容 +数独(shù dú, Sudoku)是源自18世纪[瑞士](https://baike.baidu.com/item/瑞士/131482)的一种数学游戏。是一种运用纸、笔进行演算的[逻辑游戏](https://baike.baidu.com/item/逻辑游戏/12814189)。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。 + +数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。 + +![sudoku_1.jpeg](images/sudoku_1.jpeg) + +是否可以用卷积神经网络(CNN)解决数独问题。数独有空间特征,因为它有特殊的数字排列,而CNN擅长提取空间特征,尝试使用CNN来求解数独。 + + + +## 数据 +这个数据集包含了1百万数独的数据,你可以在这里找到它。 + +https://www.kaggle.com/bryanpark/sudoku + + + +示例的数据如下所示 + +![sudoku_data.png](images/sudoku_data.png) + + + +数据集包含2列。`quizzes`栏目是未解的游戏,`solutions`栏目各自的已解游戏。每场比赛都由81个数字组成的字符串表示。以下是从字符串转换而来的9x9数独。数字0代表未解游戏中的空白位置。 + +``` +[[0 0 4 3 0 0 2 0 9] + [0 0 5 0 0 9 0 0 1] + [0 7 0 0 6 0 0 4 3] + [0 0 6 0 0 2 0 8 7] + [1 9 0 0 0 7 4 0 0] + [0 5 0 0 8 3 0 0 0] + [6 0 0 0 0 0 1 0 5] + [0 0 3 5 0 8 6 9 0] + [0 4 2 9 1 0 3 0 0]] +``` + + + +## 要求 + +1. 分析数独游戏的特点,设计实现的方法 +2. 在Kaggle网站上,下载数据 +3. 编写神经网络代码,测试自己算法的效果如何 +4. 测试所研究方法的效果 +5. 分析自己实现的方法的问题,以及如何改进 +6. 深入思考,如何使用强化学习的方法实现求解数独问题? +7. 按照`report_template.ipynb`撰写自己的报告。 + + + +## References + +* https://www.kaggle.com/bryanpark/sudoku \ No newline at end of file diff --git a/report_06_Sudoku/images/sudoku_1.jpeg b/report_06_Sudoku/images/sudoku_1.jpeg new file mode 100644 index 0000000..75c538d Binary files /dev/null and b/report_06_Sudoku/images/sudoku_1.jpeg differ diff --git a/report_06_Sudoku/images/sudoku_data.png b/report_06_Sudoku/images/sudoku_data.png new file mode 100644 index 0000000..03a5091 Binary files /dev/null and b/report_06_Sudoku/images/sudoku_data.png differ diff --git a/report_06_Sudoku/report_template.ipynb b/report_06_Sudoku/report_template.ipynb new file mode 100644 index 0000000..1db93a2 --- /dev/null +++ b/report_06_Sudoku/report_template.ipynb @@ -0,0 +1,58 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Report - 报告题目\n", + "\n", + "* 姓名\n", + "* 学号\n", + "\n", + "\n", + "## 任务简介\n", + "\n", + "这里简述一下任务是什么;最终的目标是什么\n", + "\n", + "## 解决途径\n", + "\n", + "主要包括:\n", + "1. 问题的思考,整体的思路\n", + "2. 选用的方法,以及为何选用这些方法\n", + "3. 所用方法的详细解释,包括理论上的背景、模型、实现的细节\n", + "3. 实现过程遇到的问题,以及如何解决的\n", + "4. 最终的结果,实验分析\n", + "\n", + "要求:\n", + "1. 数据的基本情况介绍\n", + "2. 程序,以及各个部分的解释、说明\n", + "3. 结果的可视化,精度等的分析\n", + "\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.6.9" + }, + "main_language": "python" + }, + "nbformat": 4, + "nbformat_minor": 2 +}