首先,注意到按灯的次序不会影响结果,且在优化情形下任何位置都不需要按超过两次(包含两次)--也即任意位置仅需考虑按与不按。
设 $x_{ij}=1$ 或 $0$ 表示第 $i$ 行第 $j$ 列位置按或者不按。若该位置初始状态为 $b_{ij}$ ($1$ 亮 $0$ 灭),则该位置最终状态为
$$ x_{ij}+\sum_{(s,t)\in N(i,j)}x_{st}+b_{ij}=0, (\rm mod 2). $$
其中,
$$N(i,j)=\left\{(s,t): |i-s|+|j-t|=1, 且1\le s,t\le5 \right\}$$
是 $(i,j)$ 的相邻位置集合。
由于 $b_{ij}=-b_{ij}\quad(\rm mod 2)$, 该方程也可写为
$$ x_{ij}+\sum_{(s,t)\in N(i,j)}x_{st} = b_{ij}, (\rm mod 2). $$
令 $y_t=y_{(i-1)\times5+j}=x_{ij}$, 则未知的$y$是含有 $25$ 变量的未知向量,上式是$y$的线性代数方程组,计含$25$个方程$25$个变量。
该方程未必有唯一解(对于灯阵的一般尺寸基本没有),可用Gauss消去法求解。
ppt下载: 线性代数的应用, 陈雄达
Matlab程序下载 附带图片 0.gif 1.gif