Следующий код создает диаграмму определенного расчета.Моя проблема в том, что, хотя термины в знаменателе находятся в хорошем порядке, после применения Плюс они произвольно переставляются.Любые предложения, как заставить первоначальный заказ быть сохраненным?
http://yaroslavvb.com/upload/ind-sets-grid.png
r[i_] := Floor[(i - 1)/n] + 1;
c[i_] := Mod[i, n, 1];
adj[a_, b_] := Abs[r[a] - r[b]] + Abs[c[a] - c[b]] == 1;
indsetQ[s_] := Not[Or @@ (adj @@@ Subsets[s, {2}])];
indsets[k_] := Select[Subsets[Range[n^2], {k}], indsetQ];
twoColorGraph[g_, seen_, lbl_] := Module[{radius = .22},
vcoords = # -> {c[#], n - r[#]} & /@ Range[n^2];
fv = Function[{p, v}, {EdgeForm[Thick],
If[MemberQ[seen, v], Pink, White], Disk[p, radius]}];
GraphPlot[g, VertexLabeling -> True, VertexRenderingFunction -> fv,
PlotLabel -> Style[lbl, 20], LabelStyle -> Directive[Bold],
VertexCoordinateRules -> vcoords, ImageSize -> 80]
];
n = 2;
g = Array[Boole[adj[#1, #2]] &, {n^2, n^2}];
weight[set_] := Times @@ (Subscript[\[Lambda], c[#], r[#]] & /@ set);
denominator =
twoColorGraph[g, #, weight[#]] & /@
Join @@ (indsets[#] & /@ Range[2]);
numerator = twoColorGraph[g, {1}, weight[{1}]];
Style[numerator/(Plus @@ denominator), FontSize -> 30]