Dziwne, ale praktyczny pojemnik 2D optymalizacji pakowania
Próbuję napisać aplikację, która generuje rysunek na przedziały Panelu.
Mam N kabin (2D prostokąty) (N < = 40). Dla każdej klatki minimalna wysokość (minHighight [i]) i minimalna szerokość (minWidth [i]) są powiązane. Sam panel ma ograniczenie MAXIMUM_HEIGHT.
Te kabiny N muszą być rozmieszczone w taki sposób, aby powyższe ograniczenia były spełnione dla każdej kabiny.
Ponadto, szerokość każdej kolumny jest określona przez maksymalną liczbę minimalną szerokości każdej klatki w tej kolumnie.
Wysokość każdej kolumny powinna być taka sama. To decyduje o wysokości panelu. Możemy dodać zapasowe szafy w pustej przestrzeni w dowolnej kolumnie lub możemy zwiększyć wysokość/szerokość jakiejkolwiek szafki poza określone minimum. Jednak nie możemy obrócić żadnej z kabin.
OBJECTIVE: TO MINIMIZE TOTAL PANEL WIDTH.
Obecnie zaimplementowałem go po prostu ignorując szerokości kabin w mojej optymalizacji. Właśnie wybieram kabinę z największą minHeight i próbuję dopasować ją do mojego panelu. Nie gwarantuje jednak optymalnego rozwiązania.
Czy mogę uzyskać lepszy wynik?
EDIT 1: MAXIMUM_HEIGHT panelu = 2100 mm, zakres MinWidth (350mm do 800 mm), 225 mm (zakres minheight do 2100 mm)
Edycja 2. PROBLEM CEL: zminimalizowanie płyty szerokość (nie jest to obszar wieczka).
Próbuję zawinąć mój umysł wokół wysokości części problemu. Układasz szafki? Czy musisz zapewnić schody lub drabinę do szafek na górze? –
Tak, boksy są ułożone jeden na drugim, tworząc "kolumnę". Może istnieć jedna lub więcej takich kolumn umieszczonych obok siebie. Każda kolumna powinna mieć taką samą wysokość (tj. <= MAXIMUM_HEIGHT). MAXIMUM_HEIGHT ma 2100 mm, więc nie potrzeba żadnych schodów ani drabin. Przykro mi, że nie rozumiem tej części Twojego zapytania. –
Jest to problem 2d, nie ma elementu 3d. –