Wyznaczanie optymalnego zapełnienia danego pola

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

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... :)

0

ten problem na nazwę: problem optymalnego rozkroju
pogooglaj

1 użytkowników online, w tym zalogowanych: 0, gości: 1