Wie repliziere ich Excel Solver in R

Ich habe einen Excel-Löser verwendet, um ein Optimierungsproblem zu lösen, und ich versuche, es in R zu replizieren.

Ich habe viele Pakete wie optim, ROI usw. gefunden, aber es scheint, dass alle nur einen Vektor als Objekt zur Optimierung verwenden und es den Variablen ermöglichen, einen stetigen Wert anzunehmen. In meinem Fall habe ich eine Einschränkungsmatrix, die ebenfalls erfüllt sein muss, und meine Variablen können nur Binärwerte annehmen.

Hier ist das Problem, das ich lösen möchte:

A-D sind Maschinen, 1-3 sind Aufgaben und die Zahl in der ersten Matrix ist der Wert, der mit der X-Maschine für die Ausführung von Y-Aufgaben generiert wird. Die Einschränkungen sind: A-D kann und kann nur eine Aufgabe erledigen (kann nicht aufgeteilt werden); Jede Aufgabe kann nur von einer Maschine bearbeitet werden.

Hier ist der Code, den ich verwende:

par = rep(c(0,1),6)

mat <- matrix(c(9,10,11,4,5,10,1,3,5,7,5,4), nrow = 3)

fr <- function(x) {  
  y= matrix(x,nrow = 4)
  sum(mat %*% y)
}

a = optim(par, fr)

Einige Fragen: Wie kann ich maximal optimieren, scheint diese Funktion standardmäßig minimal zu optimieren? Wie kann ich Einschränkungen hinzufügen? Wie kann ich mich auf binäre Variablen beschränken?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage