Forum Informatyka UJ forum Strona Główna Informatyka UJ forum
Rocznik 2005 - czyli najlepsze forum w sieci
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Pytanie do algorytmików...

 
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Informatyka
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
SZCZUR
żul



Dołączył: 09 Lis 2005
Posty: 603
Przeczytał: 0 tematów


PostWysłany: Pią 1:25, 16 Lis 2007    Temat postu: Pytanie do algorytmików...

mam takie zadanie:

firma produkuje urządzenia o "n" parametrach (np. kolor, wielkość...), ma ich wyprodukować "m" (każde urządzenie może mieć inaczej ustawione parametry).

problem jest taki ze przestawienie parametru w linii produkcyjnej kosztuje mamy podaną tabelkę "k[n]" z informacja o kosztach przestawienia każdego z parametrów.

jak to posortować żeby koszt tych przestawień był minimalny..

---------

od razu mówię ze posortowanie po najdroższych parametrach..a potem mniejszych nie zadziała bo:

..1..|..2..|..3..|..4.. - numer obiektu
----------------------
..0..|..0..|..1..|..1.. - param 0
..a..|..b..|..a..|..b.. - param 1

wystarczy zamienić obiekt 3 z 4 żeby otrzymać lepsza konfiguracje.

----------

jak ktoś zarzuci pomysłem lub chociażby linkiem do podobnego problemu będę wdzięczny.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Robson
zielony żul



Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów

Skąd: Z Lasu :]

PostWysłany: Pią 2:19, 16 Lis 2007    Temat postu:

A jak wielkich danych sie spodziewasz? I jaki jest oczekiwany czas liczenia?...
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
SZCZUR
żul



Dołączył: 09 Lis 2005
Posty: 603
Przeczytał: 0 tematów


PostWysłany: Pią 9:45, 16 Lis 2007    Temat postu:

ilosc parametrów to ok 5-10 ("n")
ilosc obiektów 10000-100000 ("m")

algorytm nie moze byc wolniejszy niz n*mlog(m), może podawać czasem błędne wyniki ale nie gorsze niz +10% do kosztów.

edit:

jeśli znasz sie na grafice, to jest mi to potrzebne do posortowania obiektów przed wyświetleniem. dla kazdego obiektu znam shadery, textury, VertexDeclaration..., przełączanie każdego parametru kosztuje, wiec warto to posortować.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Robson
zielony żul



Dołączył: 21 Paź 2005
Posty: 1274
Przeczytał: 0 tematów

Skąd: Z Lasu :]

PostWysłany: Pią 10:36, 16 Lis 2007    Temat postu:

A szukałeś na Gamasutrze, albo DevNetcie? Moze juz ktos opisywał taki feature...?

PS. Pomysle nad tym... ale pewnie Rogal ma na to gotowe rozwiazanie :P
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Rogal
Zjeb z kaszanką



Dołączył: 13 Mar 2006
Posty: 1745
Przeczytał: 0 tematów

Skąd: koło podbiegunowe

PostWysłany: Pią 11:40, 16 Lis 2007    Temat postu:

Trochę mocno nieprecyzyjna treść, więc nie wiem czy dobrze rozumiem, ale jeśli tak to to działa w ten sposób:

1. Sortujemy parametry po koszcie, rosnąco.
2. Załóżmy, że znamy sposób w jaki optymalnie wyprodukować produkty korzystając tylko z k parametrów. Wtedy optymalny sposób wyprodukowania korzystając z k+1 parametrów wygląda tak:

Kod:

=algorytm dla k normalnie= =algorytm dla k odwrotna kolejność=
0 0 0 .................. 0 1 1 1 ........................... 1


Jeśli parametr k+1 może przyjmować więcej niż 2 wartości to nad każdą wartością robimy algorytm dla k naprzemiennie, raz w kolejności normalnej, raz w odwrotnej.

Przykładowo, dla 3 parametrów, gdzie pierwszy = {0,1}, drugi = {a,b,c}, trzeci = {A,B} będziemy dostawać
Kod:

k=1:
01
k=2:
011001
aabbcc
k=3:
011001100110
aabbccccbbaa
AAAAAABBBBBB


Dość łatwo udowodnić, że to działa. Po pierwsze dlatego, że zawsze zmieniamy dokładnie 1 parametr, po drugie dlatego, że dbamy o to, by droższe parametry zmieniać rzadziej od tańszych.
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
SZCZUR
żul



Dołączył: 09 Lis 2005
Posty: 603
Przeczytał: 0 tematów


PostWysłany: Pią 14:10, 16 Lis 2007    Temat postu:

dzięki, o to dokładnie mi chodziło.

@Robson szukałem artykułów na ten temat i większość z nich opisuje ten temat pobieżnie nie zdradzając tajemnic:)


do sortowania mam zamiar użyć sortowania kubełkowego, znacie jakiś lepszy lub widzicie jakieś przeciwwskazania do używania kubełków?
(tablica jest duża ~100000, ilość wartości jest mała ~100)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
SZCZUR
żul



Dołączył: 09 Lis 2005
Posty: 603
Przeczytał: 0 tematów


PostWysłany: Sob 12:31, 05 Kwi 2008    Temat postu:

mam taki problem mamy "n" ludzi
wszyscy ludzie sie znaja i maja jakies stosunki miedzy soba (float [-1...1] )
-1 nie lubią sie
1 lubią sie

mamy k ludzi i znaleźć dla tych ludzi jak najlepszego negocjatora czyli kogoś kto będzie miał jak najlepsze relacje z tymi k ludźmi..


poszukał bym w google ale nie mam pomysłu co wpisać...

edit:

jak ktos ma linka do podobnego problemu to mi wystarczy...


Ostatnio zmieniony przez SZCZUR dnia Sob 12:44, 05 Kwi 2008, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Pawel Str.
pijak



Dołączył: 06 Lut 2006
Posty: 429
Przeczytał: 0 tematów

Skąd: Ze starszego roku / Z Gorlic

PostWysłany: Sob 13:03, 05 Kwi 2008    Temat postu:

Jak definiujesz najlepszego? Największa suma?

Jeżeli tak, to da się to banalnie zrobić w (n-k)*k (iterujesz po wszystkich ludziach i liczysz sumę ich krawędzi, czyli jak dobrymi byliby negocjatorami + standardowe podejście do znajdowania maksimum). Chyba da się też łatwo pokazać, że nie da się tego zrobić w mniej niż (n-k)*k, bo nie sprawdzając tego zbioru danych nie jesteśmy w stanie sprawdzić poprawności rozwiązania (dowód przez wyrocznię).
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
SZCZUR
żul



Dołączył: 09 Lis 2005
Posty: 603
Przeczytał: 0 tematów


PostWysłany: Sob 20:13, 05 Kwi 2008    Temat postu:

szkoda

myślałem ze dałoby sie jakoś dane o ludziach przygotować wcześniej (bo te dane sie prawie nie będą zmieniać)
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Pawel Str.
pijak



Dołączył: 06 Lut 2006
Posty: 429
Przeczytał: 0 tematów

Skąd: Ze starszego roku / Z Gorlic

PostWysłany: Sob 20:57, 05 Kwi 2008    Temat postu:

To czegoś tu nie rozumiem. Co się nie będzie zmieniać, a co owszem? Jak będziesz to wywoływał? Trochę za mało informacji dałeś, więc podałem rozwiązanie dla sytuacji jednorazowego szukania optimum.
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum Informatyka UJ forum Strona Główna -> Informatyka Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin