今天想做一个拼图自动完成程序,一开始老想着怎么搭建模型,描述输入和损失这些事,套深度学习去解决这个问题,自我对话写了长长的一个 txt 文档

后面一拍脑袋,这事其实没必要搞那么复杂

  • 一块拼图有自己的海岸线,可以按上下左右,分成四份海岸线
  • 每个海岸线按每个“平,凹,凸”的最小变化单元,等分成若干份,然后可以编码成一个 N 位的每个元素在 {-1, 0, 1} 的向量
  • 每块拼图可以用 (朝向,离散横坐标,离散纵坐标) 三个数字表示自己的一个状态
  • 三维空间中,一块拼图的状态对应一个点,100 块拼图就是 100 个点
  • 列一组线性方程,描述这 100 个点的分布必须遵守的各种约束条件
  • 然后定义损失函数,所有拼图相邻的海岸线向量,距离之和最小
  • 最后输入 lingo,让机器解方程,算出这 100 个点最正确的排列就行了