Wolfram Language

Floorplanning-Optimierungsproblem

Befassen Sie sich mit dem Problem der Platzierung von kleineren Rechtecken innerhalb eines größeren Rechtecks mit minimalem Umfang und Einschränkungen in Bezug auf die relative Platzierung, das Seitenverhältnis, den Abstand und die Fläche der kleineren Rechtecke.

Dieses Beispiel veranschaulicht den Einsatz der Wolfram Language zur Definition einer Funktion, die NMinimize zur Lösung von Floorplanning- und Partionierungsproblemen verwendet. Die Funktion nutzt Vektorungleichungen, einschließlich einer semidefiniten Ungleichung.

Beschreiben Sie das größere Rechteck durch Rectangle[{0, 0}, {H, W}] und jedes der kleineren durch ri=Rectangle[{xi, yi}, {xi+wi, yi+hi}], i=1 n .

Die relative Platzierung kann durch zwei gerichtete Graphen beschrieben werden, einer für die horizontale und einer für die vertikale Platzierung. Wenn es eine Kante ij gibt, dann sollte ri links (oder unterhalb) von rj sein.

Der Einfachheit halber nehmen wir an, dass alle Rechtecke ein Seitenverhältnis zwischen und für haben und dass der Abstand zwischen den Rechtecken ist.

Mit diesen Eingaben und einer Liste der Bereiche der kleineren Rechtecke können Sie eine Funktion planFloor definieren, die den minimalen Umfang des größeren Rechtecks findet.

Den kompletten Wolfram Language-Input zeigen

Erstellen Sie Graphen für die relative Platzierung von 10 kleineren Rechtecken.

Stellen Sie die Bedingung auf, dass die Flächen aller kleineren Rechtecke 100 betragen, mit Ausnahme eines, das die Fläche 400 hat.

So wird die Partitionierung optimiert.

Visualisieren Sie den optimierten Grundriss.

Dies zeigt, dass die Flächenbedingung erfüllt ist.

Vergleichen Sie Layouts von zufällig ausgewählten Flächen.

Verwandte Beispiele

en es fr ja ko pt-br zh