Integration des GLPK-Solvers in ein C#-Programm (Teil 2) Frameworks 

Integration des GLPK-Solvers in ein C#-Programm (Teil 2)

Nachdem ich im ersten Teil des Tutorials das Einbinden und Aufrufen des GLPK-Solvers in ein C#-Programm beschrieben habe, möchte ich nun auf die weiteren Schwierigkeiten eingehen, denen man speziell bei der Nutzung des MIP-Solvers aus einem C#-Programm gegebenübersteht. Der GLPK-MIP-Solver arbeitet mit Branch-and-Cut-Algorithmen, deren Abarbeitung vom Anwendungsprogramm über eine callback-Methode gesteuert werden kann. An dieser Stelle sei wieder auf die GLPK-Webseite zu genauen Details über diese Verfahren verwiesen. Im Folgenden ist der Ausschnitt einer solchen Callback-Funktion zu sehen, die sich nicht von einer entsprechenden C-Funktion unterscheidet. Die Verwendung von Zeigern…

Read More
Integration des GLPK-Solvers in ein C#-Programm (Teil 1) Frameworks 

Integration des GLPK-Solvers in ein C#-Programm (Teil 1)

Im ersten Teil dieser Serie wird das Einbinden und Aufrufen des Solvers behandelt. Da es sich bei der glpk-dll um nicht verwalteten C-Code handelt, der aus verwaltetem C#-Code heraus aufgerufen wird, muss zunächst folgender Namespace eingebunden werden: using System.Runtime.InteropServices; Des Weiteren ist der Pfad zur glpk-dll in einer konstanten String-Variable abzulegen. Der Pfad kann also nicht zur Laufzeit gesetzt werden: const string glpkLibrary = “C:\…\glpk_4_34.dll” Das DllImport-Attribut wird vor die Funktionsdeklaration jedes verwendeten glpk-Einstiegspunktes, d.h. jeder verwendeten glpk-Funktion, gesetzt. Die Signatur jeder Funktion muss dem Namen einer von der DLL…

Read More