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. ___
2
Antworten

Finde effizient jede Kombination von kleineren Bins zu größeren Bins

Nehmen wir an, ich habe 7 kleine Behälter, jeder Behälter hat die folgende Anzahl an Murmeln: %Vor% Ich weise diese kleinen Behälter zwei großen Behältern zu, die jeweils die folgende maximale Kapazität haben: %Vor% Ich möchte JEDE Kombi...
27.08.2015, 23:57
1
Antwort

Nicht-monotone Ausgabe von Constrained Optimization in R

Problem Die constOptim Funktion ist R gibt mir eine Reihe von Parameterschätzungen. Diese Parameterschätzungen geben Werte an 12 verschiedenen Punkten im Jahr aus und sollten monoton abnehmen. Ich brauche sie monoton und für die Lücken zwi...
19.05.2014, 14:49
4
Antworten

Am effizientesten lexikographischer Index

Kann jemand potenziell effizientere Algorithmen finden, um die folgende Aufgabe zu erfüllen?: Geben Sie für jede gegebene Permutation der ganzen Zahlen 0 bis 7 den Index zurück, der die Permutation lexikographisch beschreibt (indexiert von 0,...
31.05.2014, 01:08
2
Antworten

Vorhersage der Anzahl der Stellen einer Multiplikation

Ich muss die Anzahl der Stellen sehr großer Multiplikationen finden (jeweils etwa 300 Stellen). Ich habe mich gefragt, ob es einen Trick gibt, um die Anzahl der Ziffern vorherzusagen, ohne dass die Berechnung durchgeführt wird.     
03.07.2011, 23:25
4
Antworten

Matrixvervollständigung in Python

Sagen wir, ich habe eine Matrix: %Vor% Und dass ich mit np.NaN , z. B.: , ein paar Löcher in ihn bohre %Vor% Ich möchte die nan -Einträge unter Verwendung von Informationen aus den übrigen Einträgen der Matrix ausfüllen. Ein Beispiel...
31.07.2013, 23:47
2
Antworten

Verwendung der opencv Bundle-Anpassung

Ich habe 5 Kameramatrizen berechnet ( c1, ... c5 ), Kameramatrizen werden berechnet, indem ein 3D-Objekt an 5 verschiedenen Positionen platziert wird und für jede Position habe ich die Kameramatrix berechnet (und die Kamera ist konstant). Die...
13.07.2016, 18:17
4
Antworten

Wie kann man eine Funktion mit Deap minimieren?

Ich muss eine Funktion mithilfe eines genetischen Algorithmus und PSO minimieren. Verschiedene Beiträge schlagen vor, DEAP zu verwenden (ich benutze Python), aber ich verstehe nicht einmal, wie ich anfangen soll. Wir können zum Beispiel...
14.03.2014, 11:40
3
Antworten

Nichtlineare Programmierbibliothek in C ++

Ich suche nach Empfehlungen für C ++ - Bibliotheken für nicht-lineare Programmierung ( nicht nur für ganze Zahlen! ). Bevorzugt sind aktiv gepflegte F / OSS-Lösungen, aber aktiv gehaltene kommerzielle Lösungen, die kostenlose Testversionen an...
20.04.2012, 09:24
4
Antworten

Eine multivariable Funktion mit scipy minimieren. Derivat nicht bekannt

Ich habe eine Funktion, die eigentlich ein Aufruf an ein anderes Programm ist (etwas Fortran-Code). Wenn ich diese Funktion ( run_moog ) aufruft, kann ich 4 Variablen analysieren und es gibt 6 Werte zurück. Diese Werte sollten alle nahe bei 0...
24.04.2015, 19:25
7
Antworten

Algorithmusoptimierung - Kürzeste Route zwischen mehreren Punkten

Problem: Ich habe eine große Sammlung von Punkten. Jeder dieser Punkte hat eine Liste mit Referenzen zu anderen Punkten, deren Abstand bereits berechnet und gespeichert wurde. Ich muss die kürzeste Route bestimmen, die von einem Ausgangspunkt be...
02.10.2009, 20:16