我正在研究最大獨立集問題的二次鬆弛(第22頁here),並且發現FindMaximum
對於我嘗試的每個圖都會失敗,除非我以最優解作爲出發點。這些二次方程式有10-20個變量,所以我期望它們是可以解決的。Mathematica中的二次規劃
- 有沒有辦法讓Mathematica解決這樣的二次方案?
- 在Mathematica中是否有一些易於調用的二次編程包?
這裏的失敗FindMaximum
的例子,其次是工作FindMaximum
在解決
setupQuadratic[g_Graph] := (
Ag = AdjacencyMatrix[g];
A = IdentityMatrix[[email protected]@g] - Ag;
cons = And @@ Table[0 <= x[v] <= 1, {v, [email protected]}];
vars = x /@ VertexList[g];
indSet = [email protected];
xOpt = Array[Boole[MemberQ[indSet, #]] &, {[email protected]@g}];
);
g = GraphData[{"Cubic", {10, 11}}];
setupQuadratic[g];
FindMaximum[{vars.A.vars, cons}, vars]
FindMaximum[{vars.A.vars, cons}, Thread[{vars, xOpt}]]
這裏初始化其他圖表我試圖
{"DodecahedralGraph", "FruchtGraph", "TruncatedPrismGraph", \
"TruncatedTetrahedralGraph", {"Cubic", {10, 2}}, {"Cubic", {10,
3}}, {"Cubic", {10, 4}}, {"Cubic", {10, 6}}, {"Cubic", {10,
7}}, {"Cubic", {10, 11}}, {"Cubic", {10, 12}}, {"Cubic", {12,
5}}, {"Cubic", {12, 6}}, {"Cubic", {12, 7}}, {"Cubic", {12,
9}}, {"Cubic", {12, 10}}}
您鏈接的文件是非常好的。謝謝! – 2011-03-01 12:19:22