mathematical-optimization

___ tag123algorithm ___ Ein Algorithmus ist eine Folge wohldefinierter Schritte, die eine abstrakte Lösung für ein Problem definieren. Verwenden Sie dieses Tag, wenn sich Ihr Problem auf den Algorithmusentwurf bezieht. ___ tag123dynamicprogramming ___ Dynamische Programmierung ist eine algorithmische Methode zur effizienten Lösung von Problemen mit einer rekursiven Struktur, die viele überlappende Teilprobleme enthält. ___ qstnhdr ___ Wie finden Sie die optimale Zuordnung von Schülern in Klassen? ___ tag123mathematische Optimierung ___ Die mathematische Optimierung befasst sich mit der Maximierung oder Minimierung einer Zielfunktion, indem Werte aus einem zulässigen zulässigen Satz möglicher Werte ausgewählt werden. Mathematische Optimierung wird oft auch als mathematische Programmierung oder einfach als Optimierung bezeichnet. ___ answer17014617 ___

Die grundlegende Schwierigkeit besteht darin, dass Sie ein Problem mit mehreren Zielen haben. Sie haben drei Dinge, an denen Sie interessiert sind, dass Sie entweder Ziele oder "weiche Einschränkungen" in Betracht ziehen können:

  1. Ähnliche Klassengrößen erhalten
  2. Minimale Anzahl der Ebenen pro Klasse
  3. genügend Schüler von einem Niveau in einer Klasse haben, wenn es Schüler in einer Klasse gibt.

Beachten Sie, dass ich dafür ein Optimierungsmodell in AMPL geschrieben habe. Da Sie Python verwenden, gibt es ähnliche Optimierungsmodellierungssprachen für Python wie PuLP und pyomo, die Sie verwenden könnten. Das Modell sollte nicht zu schwer zu übersetzen sein.

Hier ist ein Integer-Programmiermodell und eine Datendatei, die das Ziel Nummer 1 betont, während das Problem (integer) linear bleibt. Mit diesem Ziel findet das Optimierungsproblem dieselbe Lösung, die Sie in Ihrem Beispiel angegeben haben. Hoffentlich können Sie darauf aufbauen und weitere Einschränkungen und / oder objektive Begriffe hinzufügen und bessere Lösungen erhalten.

Ziel ist es, die größte Klassengröße zu minimieren. Die Variable von Interesse ist y [i, j]. y [i, j] für i in LEVEL, j in CLASS ist die Anzahl der Schüler von Level i, die der Klasse j zugeordnet sind. Es geht davon aus, dass Sie für die Mindestanzahl von Schülern aus jedem Level in jeder Klasse eine Eingabe gemacht haben, wenn sie diesem Level zugewiesen sind.

Die Zielfunktion ist möglicherweise nicht das, was Sie wollen, aber es ist eine Möglichkeit, die Klassengröße auszugleichen, die linear ist. Ich verspreche auch nicht, dass dies der effizienteste Weg zur Lösung des Problems ist. Möglicherweise gibt es einen besseren benutzerdefinierten Algorithmus für das Problem, aber ich musste nur die Einschränkungen und das Ziel ausdrücken und keinen Algorithmus schreiben. Es ist wahrscheinlich gut genug für Sie.

Mit dem Solver Gurobi auf neos-server.org (Sie könnten lpsolve oder einen anderen Open-Source-Optimierungslöser verwenden), habe ich die Lösung

%Vor%

Modell:

%Vor%

Datendatei für Ihr Beispiel:

%Vor%     
___ tag123combinatorics ___ Behandelt Kombinationen von Entitäten, die zu einer endlichen Menge gehören. ___ qstntxt ___

23 Schüler von Stufe A, 24 von Stufe B und 30 von Stufe C müssen in drei Klassen eingeteilt werden. Die Klassen müssen fast exakt gleich groß sein. Verschiedene Ebenen können in eine einzelne Klasse gemischt werden, es ist jedoch besser, wenn es vermieden werden kann. In jedem Fall sollten 0 Schüler einer Klasse oder mehr als 6 Schüler sein.

Können Sie mir helfen, dieses kombinatorische Optimierungsproblem zu lösen? Im Folgenden finden Sie eine Beispieleingabe und -ausgabe. Bonuspunkte, wenn Sie mir zeigen können, wie Sie das allgemeine Problem lösen können!

Eingabe:

%Vor%

Beispielausgabe (nicht sehr gut!)

%Vor%

Bearbeiten : Hier ist mein sehr hackischer, völlig undokumentierter Semi-Brute-Force-Code. Es ist hässlich, aber es funktioniert! Ich würde gerne lernen, wie ich eine elegantere Lösung schreiben könnte.

    
___ tag123linearprogramming ___ Eine Optimierungstechnik zur Minimierung oder Maximierung einer Funktion mehrerer Variablen bei Vorhandensein von Abhängigkeiten, bei denen alle Beziehungen linear sind. ___
3
Antworten

Ant Kolonie-Optimierung mit .NET [geschlossen]

Ich bin auf der Suche nach einer .NET-Klassenbibliothek oder einem .NET-Framework, das die Ameisenkolonie-Optimierung implementiert. Können Sie mir Links, Ressourcen usw. zu diesem Thema geben?     
08.10.2009, 17:02
1
Antwort

r - Portfoliooptimierung - solve.QP - Constraints sind inkonsistent

Ich versuche mit solve.QP ein Problem der Portfoliooptimierung zu lösen (quadratisches Problem) Insgesamt 3 Assets Es gibt 4 Einschränkungen: Summe der Gewichte gleich 1 erwartete Portfoliorendite entspricht 5,2% jedes Asset-Gewich...
06.06.2014, 20:20
3
Antworten

Algorithmus zum Finden der kleinsten Sammlung von Komponenten

Ich suche nach einem Algorithmus, um das folgende Problem zu lösen. Ich habe eine Anzahl von Teilmengen (1-n) einer gegebenen Menge (a-h). Ich möchte die kleinste Sammlung von Teilmengen finden, die es mir ermöglichen, alle gegebenen Teilmengen...
07.01.2014, 20:43
1
Antwort

Lineare Fantasy-Football-Programmierung in R mit RGLPK

lange Zeit Hörer erste Zeit Anrufer zu S.O ... Ich stelle eine Frage, die zuvor sehr ähnlich gestellt wurde, aber ich glaube nicht, dass ich intelligent genug bin, um zu entschlüsseln, wie die Lösung implementiert werden soll, dafür entschuldige...
21.10.2014, 19:44
3
Antworten

Quadprog-Optimierung

Hier ist ein interessantes Puzzle. Im Folgenden finden Sie ein R-Snippet , das den Tangentenpunkt einer quadratischen Funktion in Bezug auf eine von diesem Punkt gezogene Linie angibt (0, rf) auf der y-Achse. Für diejenigen, die mit der P...
10.05.2012, 01:05
2
Antworten

Ein selbstgewähltes Team

Aus einem Pool von 1000 Bewerbern soll ein Team von 100 Mitgliedern zusammengestellt werden. Jeder Bewerber bekommt die 99 anderen Bewerber, die er als Teamkollegen haben möchte. Jedes mögliche Team erhält eine Punktzahl, die misst, wie gut e...
11.02.2013, 21:49
3
Antworten

Optimierung einer rekursiven Brute-Force in eine eher mathematisch-lineare Lösung

Ich habe dieses Haskell-Programm geschrieben, um Euler 15 zu lösen (es benutzt eine sehr einfache dynamische Programmierung, um ein bisschen schneller zu laufen, also kann ich es tatsächlich ausführen, aber das Entfernen würde erwarten, dass es...
26.02.2014, 10:35
1
Antwort

Minimieren Sie die Zeit, wenn Sie einen bestimmten Pfad zurücklegen

Diese Frage bezieht sich auf dieses , es wurde von der Optimierung abgeleitet der Weg über eine Reihe von Punkten. Die Situation ist wie folgt: Ein Objekt verfährt einen bestimmten Pfad, der aus einer Liste von 2D-Punkten besteht. (Mehr Ds sind...
04.07.2016, 06:40
3
Antworten

Optimierung mit diskreten Parametern in Matlab

Ich habe 12 Sätze Vektoren (ungefähr 10-20 Vektoren jeder) und ich möchte einen Vektor jedes Satzes so wählen, dass eine Funktion f maximiert wird, die die Summe dieser Vektoren als Argument nimmt. Zusätzlich habe ich Einschränkungen für einige...
25.06.2013, 20:18
3
Antworten

Zuordnen eines Satzes von 3D-Punkten zu einem anderen Satz mit einer minimalen Summe von Abständen

Gegeben sind zwei Sätze von dreidimensionalen Punkten, eine Quelle und eine Zielmenge. Die Anzahl der Punkte in jedem Satz ist beliebig (kann Null sein). Die Aufgabe besteht darin, jedem Zielpunkt einen oder keinen Quellpunkt zuzuweisen, so dass...
09.03.2009, 14:31