Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki od 1 do 10 z 12
Like Tree2Likes

Wątek: Optytmalne dzielenie odcinków

  1. #1
    Zarejestrowany Awatar proklin
    Dołączył
    Jan 2008
    Posty
    288

    Domyślnie Optytmalne dzielenie odcinków

    Witam wszystkich, dawno Was tu nie odwiedzałem ale czasami jak widać trzeba :P


    Potrzebuję pomocy a dokładniej jakiegoś nakierowania na rozwiązanie problemu, głowię się nad tym i nie mogę wymyślić żadnego odpowiedniego rozwiązania...


    Potrzebuję systemu, który będzie miał za zadanie optymalne podzielenie odcinków, na inne mniejsze odcinki, tak aby pozostały kawałek był jak najmniejszy.

    Dokładniej, mam odcinki 600cm i z nich muszę jak najbardziej optymalnie wyciąć mniejsze odcinki, mogą one być różnych długości itp. tak aby niewykorzystany, pozostały fragment pozostały z tego dużego odcinka był jak najmniejszy.

    Bąbelkowo nie będzie optymalnie...
    Myślałem o obliczeniu każdej możliwości i porównania sumy (do wyniku mniejszego od 600) tak aby wybrać najmniejszą resztę, to dawałoby optymalne ułożenie dla pierwszego odcinka i następnie wykonanie tego samego dla tablicy mniejszych odcinków, z której wycinamy te wyniki które wybraliśmy przed chwilą i tak z każdym kolejnym odcinkiem dużym, aż skończą się te mniejsze...
    Jednak taka metoda byłaby strasznie ciężka dla serwera...

    Czy ktoś z Was ma może jakąś lepszą wizję na wykonanie tego, lub chociaż jakieś rady, coś aby mnie nakierować w dobrą stronę?


    Przepraszam jeśli coś jest ciężkie do zrozumienia lub jeśli wybrałem zły dział.
    Pozdrawiam i z góry dziękuję za pomoc!

  2. #2
    Programista Awatar Aravorn
    Dołączył
    Apr 2011
    Posty
    343

    Domyślnie

    Zainteresuj się problemem plecakowym oraz problemem wydawania reszty
    proklin likes this.

  3. #3
    Zarejestrowany Awatar proklin
    Dołączył
    Jan 2008
    Posty
    288

    Domyślnie

    o widzisz, dzięki Ci bardzo!

    RivFox (chyba dobrze pisze) mnie do Ciebie odsyłał ale uznałem, że grzeczniej będzie napisać na forum

  4. #4
    Zarejestrowany Awatar proklin
    Dołączył
    Jan 2008
    Posty
    288

    Domyślnie

    Nie jestem pewny czy teraz napiszę prawdę ponieważ nie mam czasu dzisiaj dokładniej się w tym zagłębić jednak po chwili namysłu,
    chyba nie do końca o to mi chodziło,
    problem plecakowy jest przystosowany do dobierania przedmiotów o największej wartości a mi chodzi tylko o rozmiar...
    Problem wydawania reszty nie jest dobrym rozwiązaniem mojego problemu ponieważ jest niedokładny...

  5. #5
    Zasłużony Awatar karer
    Dołączył
    Apr 2008
    Posty
    2,554

    Domyślnie

    Wez napisz dokladniej o co ci chodzi bo sam niebardzo rozumiem. Piszesz o odcinku a nie wiem nawet czym jest odcinek. Jakies przyklady?

  6. #6
    Zarejestrowany Awatar proklin
    Dołączył
    Jan 2008
    Posty
    288

    Domyślnie

    dokładniej to jest firma budowlana, dostają parapety w odcinkach po 6metrów i z tego wycinają odpowiednie fragmenty pod okna i potrzebują skryptu, który będzie wybierał najlepiej te parapety z jednego dużego, ponieważ ten kawałem, który zostaje i ma np. metr jest już zazwyczaj do wyrzucenia, dlatego chcą aby zostawało jak najmniej.

  7. #7
    Aktywny Awatar CarN
    Dołączył
    May 2010
    Posty
    190

    Domyślnie

    Dokładniej, mam odcinki 600cm i z nich muszę jak najbardziej optymalnie wyciąć mniejsze odcinki, mogą one być różnych długości itp. tak aby niewykorzystany, pozostały fragment pozostały z tego dużego odcinka był jak najmniejszy.
    Czyli ze zbioru zamówionych długości na parapety trzeba wybrać takie, których suma będzie jak najbardziej zbliżona i mniejsza od 6 metrów, dobrze rozumiem?

    Na pewno jest do tego jakiś algorytm, ale nie znam/nie pamiętam go.
    Ostatnio edytowane przez CarN ; 29-07-2013 o 23:32
    Kod php:
    ++$posts
    dawny nick:carnageon

  8. #8
    Programista
    Dołączył
    Sep 2007
    Posty
    622

    Domyślnie

    Jak dużo jest tych parapetów? Może brutalne rozwiązanie przejdzie w tym przypadku? Po prostu symulujesz wszystkie możliwe podziały (nawet te nieprawidłowe) i wybierasz ten o najmniejszej wadze (najmniejszej ilości zmarnowanego materiału). Dla nieprawidłowego podziału (np. długość kawałków wyciętych z jednej blachy przekracza długość tej blachy) wartość wynosi nieskończoność (max wartość int'a). I po problemie.

    Jeżeli rozmiar problemu będzie duży, to wtedy trzeba faktycznie zastanowić się nad optymalnym rozwiązaniem. Nie wydaje mi się jednak, żeby to była tak duża firma, że ma ponad 100 parapetów do wycięcia na jeden raz..
    http://orodlin.pl/ - Orodlin.pl Team Member
    http://blog.albitos.eu - Albi's Jogger - Z pamiętnika młodego programisty
    http://wsosnowski.pl - wizytówka

    Mam do wynajęcia miejsce na serwerze dedykowanym. Ktoś zainteresowany?

  9. #9
    Zasłużony Awatar karer
    Dołączył
    Apr 2008
    Posty
    2,554

    Domyślnie

    Aravorn dobrze podpowiedzial. Idealnie pasuje to do problemu plecakowego moim zdaniem.

  10. #10
    Zarejestrowany Awatar proklin
    Dołączył
    Jan 2008
    Posty
    288

    Domyślnie

    ogólnie tych parapetów ma być 20, do 30.

    Co do problemu plecakowego, ja tu nie mam żadnej wartości, każdy parapet ma tą samą wartość, a właściwie to wartość parapetu to jego wielkość... czyli będą jakby dwie takie same tablice.
    Problem wydawania reszty nie robi tego optymalnie, po prostu ustala co się może zmieścić ale nie ustawia tego optymalnie...

Strona 1 z 2 12 OstatniOstatni

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Problem z chatem do gry(dzielenie chatu na iframe i emotikony)
    Przez GibonZiom w dziale Problemy przy tworzeniu własnej gry
    Odpowiedzi: 0
    Ostatni post / autor: 06-10-2010, 19:20
  2. [php]dzielenie i wynik z przecinkiem.
    Przez haxigi w dziale PHP / MySql
    Odpowiedzi: 11
    Ostatni post / autor: 08-05-2010, 23:02
  3. Dzielenie rekordów na strony
    Przez Veter w dziale Budowa gry via www
    Odpowiedzi: 5
    Ostatni post / autor: 28-04-2010, 19:06
  4. Dzielenie bez reszty
    Przez mordeto w dziale PHP / MySql
    Odpowiedzi: 5
    Ostatni post / autor: 04-11-2007, 22:46

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •