Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (*mathematica*)nn = 12;
- TableForm[A = Table[Table[a[n, k], {k, 1, nn}], {n, 1, nn}]]
- "Constraints"
- TableForm[
- RowSums =
- Table[Table[
- Sum[A[[r, m]], {m, k, k + r - 1}] == If[r == 1, 1, 0], {k, 1,
- nn - (r - 1)}], {r, 1, nn}]]
- TableForm[
- ColumnSums =
- Table[Table[
- Sum[A[[m, r]], {m, k, k + r - 1}] == If[r == 1, 1, 0], {k, 1,
- nn - (r - 1)}], {r, 1, nn}]]
- Constraints = Flatten[{RowSums, ColumnSums}];
- Constraints1 =
- StringJoin[
- Table[StringJoin[ToString[Constraints[[n]]], " && "], {n, 1,
- Length[Constraints]}]];
- Variables1 = Flatten[A];
- Variables2 = ToString[Flatten[A]];
- VariablesAreIntegers =
- StringJoin[
- Table[StringJoin[ToString[Variables1[[n]]],
- " \[Element] Integers ",
- If[n == Length[Variables1], "", " && "]], {n, 1,
- Length[Variables1]}]];
- "KnapsackConstraint"
- KnapsackConstraint =
- ToString[Total[
- Total[Table[
- Sum[Table[
- StringJoin[ToString[If[n >= k, A[[n, k]], 0]]], {k, 1,
- nn}], {n, 1, mm}], {mm, nn, nn}]]]];
- KnapsackConstraint = StringJoin[ToString[KnapsackConstraint], "==1"]
- "VariableBounds"
- "ObjectiveFunction"
- ObjectiveFunction =
- ToString[Total[
- Total[Table[
- Sum[Table[
- StringJoin[ToString[If[n >= k, A[[n, k]], 0]], "/",
- ToString[k]], {k, 1, nn}], {n, 1, mm}], {mm, nn, nn}]]]]
- TableForm[
- Table[Sum[
- Table[If[n >= k, A[[n, k]], 0]/k, {k, 1, nn}], {n, 1, mm}], {mm,
- nn, nn}]]
- ab = StringJoin["FindMaximum[{", ObjectiveFunction, " , ",
- KnapsackConstraint, Constraints1, VariablesAreIntegers, "},",
- Variables2, "]"];
- "Solution"
- Solution =
- ReleaseHold[MakeExpression[RowBox[{ab}], StandardForm]][[2]];
- TableForm[
- Table[Table[Solution[[n]], {n, (k - 1)*nn + 1, k*nn}], {k, 1, nn}]];
- TableForm[
- Table[Table[
- First[Solution[[n]]] /. Solution[[n]], {n, (k - 1)*nn + 1,
- k*nn}], {k, 1, nn}]]
- (*end*)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement