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

L1 eingeschränkte Regression in C

Ich brauche Lasso / L1 Constrained Regression Library in C. AFAIK, NAG unterstützt es nicht. R hat ein Paket, um es zu tun, aber ich muss es in C tun. Irgendeine Idee?     
05.04.2011, 13:36
1
Antwort

Wie benutze ich die Übertrag-lose Multiplikation (PCLMULQDQ) in zlib CRC32?

Ich habe kürzlich mit CloudFlares optimiertem zlib gespielt und die Ergebnisse sind wirklich beeindruckend. Leider scheinen sie angenommen zu haben, dass die Entwicklung von Zlib aufgegeben wurde, und ihre Gabel brach ab. Ich war schließlic...
22.05.2016, 11:30
3
Antworten

Wie führt man eine diskrete Optimierung von Funktionen über Matrizen durch?

Ich möchte über alle 30 mal 30 Matrizen mit Einträgen, die 0 oder 1 sind, optimieren. Meine Zielfunktion ist die Determinante. Eine Möglichkeit wäre eine stochastische Gradientenabsenkung oder simuliertes Annealing. Ich habe mir scipy.optim...
09.07.2015, 18:04
1
Antwort

Auffinden der lokalen Maxima / Peaks und Minima / Täler von Histogrammen

Ok, also habe ich ein Histogramm (repräsentiert durch ein Array von Ints), und ich suche nach dem besten Weg, lokale Maxima und Minima zu finden. Jedes Histogramm sollte 3 Peaks haben, einer von ihnen (der erste) wahrscheinlich viel höher als di...
04.12.2012, 01:03
7
Antworten

Welche Optimierungsprobleme möchten Sie gelöst haben?

Ich liebe es, an AI-Optimierungssoftware zu arbeiten (Genetische Algorithmen, Partikelschwarm, Ameisenkolonie, ...). Leider habe ich keine interessanten Probleme mehr zu lösen. Welches Problem hätten Sie gerne gelöst?     
22.12.2008, 14:03
6
Antworten

Optimierungspakete für R

Kennt irgendjemand Optimierungspakete für R (ähnlich wie NUOPT für S +)?     
11.12.2008, 14:02
4
Antworten

System.Math nicht identifiziert

%Vor% Ich habe das Gefühl, dass in diesem Code alles klar ist, aber dieser Code führt zu Kompilierungsfehlern: Eine using-Namespace-Direktive kann nur auf Namespaces angewendet werden. 'System.Math' ist ein Typ kein Namespace Wie benutzt ma...
23.02.2010, 05:52
1
Antwort

Wie finden Sie die optimale Zuordnung von Schülern in Klassen?

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...
09.06.2013, 17:56