Wyznaczanie optymalnego zapełnienia danego pola

Wyznaczanie optymalnego zapełnienia danego pola
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam, chciałbym napisać aplikację do mojej firmy, która rozplanowywałaby mi najlepsze z możliwych rozłożenie obiektów tak, aby zapełnić dane pole powierzchni było zapełnione możliwie największą ilością mniejszych pól. Jednakże program obsługiwałby jedynie prostokąty i kwadraty.

Przykładowo: Mam duże pole powierzechni (obszar roboczy) o wymiarach: 300 cm x 200 cm i kształcie prostokąta. Chcę go wypełnić małymi prostokątami o wymiarach 17x8 cm(przykładowo). Teraz zadaniem programu byłoby znalezienie najbardziej optymalnego rozłożenia małych prostokątów na obszarze roboczym w taki sposób, że obszar roboczy powinien pomieścić jak największą ilość małych prostokątów.
Oczywiście program miałby być dużo bardziej zaawansowany to znaczy

  • wprowadzanie dowolnej ilości prostokątów o różnych rozmiarach
  • wprowadzenie liczby minimalnej, maksymalnej na danym obszarze itp.

Do tej pory wpadłem na pomysł aby po prostu badać różne położenia obiektów i za każdym razem liczyć pole powierzchni zajmowane przez obiekty. Jeżeli w danym położeniu pole będzie większe od poprzedniego to to położenie zostanie tymczasowo zapisane jako najlepsze i będzie porównywał pola innych położeń, każde większe pole to lepsza optymalizacja.

Jeśli ktoś potrzebuje zwizualizowania problemu załączam przykładowy obrazek:

title

hurgadion
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: www
  • Postów: 259
0

Hej,
generalnie zagadnienie nie jest proste... jest to przykład dwuwymiarowego zagadnienia plecakowego... pogooglaj z hasłem "two-dimensional cutting stock problem", jest sporo artykułów z algorytmami, aproksymacyjnymi... ponieważ jest to zagadnienie z półki NP... :)

MarekR22
  • Rejestracja: dni
  • Ostatnio: dni
0

ten problem na nazwę: problem optymalnego rozkroju
pogooglaj

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.