problem czy ktoś może pomóc ?

Własne projekty oraz implementacje.

Moderator: xxSlayeRxx

Sponsor

Sponsor
 

Postprzez peterpfff » So lis 08, 2008 9:30 pm

Witam wszystkich!

Odrazu na wstępie powiem że jestem początkujący jeżeli chodzi o programowanie i póki co zielony z tego. :(

Dostałem zadanie a właściwie zadania do zrobienia i nie bardzo wiem jak sobie z nimi poradzić, tzn nie wiem jak to oprogramować :/ gdyby ktoś był taki miły to prosiłbym o pomoc bo leże i kwicze nad tym :/

konkretnie pierwsze zadanie wygląda tak, z tego co zrozumiałem od prowadzącego zajęcia, który i tak w małym stopniu go wytłumaczył :/ reszte rozkminiłem sam

Problem P2 | | CMax algorytm wygląda mniej więcej tak:
na wejściu: czasy dla "n" zadań na 2 procesorach
1. wybrać szybsze (o krótszym lub równym czasie) zadania na 1 procesorze
i szybsze zadania na 2. procesorze (porównując czas poszczególnych
zadań)
2. Szybsze zadania na 1. procesorze posortować niemalejąco
3. Szybsze zadania na 2. procesorze posortować nierosnąco
4. Scalić oba wyniki najpierw z 1, później z drugiego - i to jest
właściwe uszeregowanie.

drugie zadanie to:

Problem P3 | P2, no-bottl | Cmax algorytm jest taki:
na wejściu: czasy dla n zadań na 3 procesorach
1. dodać do siebie czasy dla procesora 1 + dla procesora 2
i procesora 2 + procesora 3, w ten sposób zredukowany problem
zostanie do 2 procesorów (zadania o czasach z 1+2 i 2+3)
2. zastosować algorytm dla problemu P2 CMax.

i trzecie w sumie najważniejsze to :

Problem 1 | dj | LMax alg to :
na wejściu: czas dla zadań, oczekiwany maksymalny czas opóźnienia (deadline), czyli sumaryczny czas po którym zadanie powinno się wykonać
algorytm: (ten co w pierwszych zadaniach)
1. sortujemy niemalejąco po deadline'ach

Czyli całość opiera się na jednym algorytmie tylko trzeba go modyfikować :/ Kombinowałem coś z tablicami ale nic mi z tego nie wyszło :/ może mi ktoś pomóć ?
peterpfff
New member
 
Posty: 6
Dołączył(a): So lis 08, 2008 9:15 pm

Postprzez mykhaylo » So lis 08, 2008 9:56 pm

Aby rozwiązać te zadania musisz najpierw je zrozumieć. Więc może poproś prowadzącego o dokładne wytłumaczenie ;)
Strasznie zagmatwanie opisałeś te algorytmy.
Może skoncentrujmy się na pierwszym.
peterpfff napisał(a):Problem P2 | | CMax algorytm wygląda mniej więcej tak:
na wejściu: czasy dla "n" zadań na 2 procesorach

Wejście jest dla obu procesów, czy każdy proces ma swój ciąg wejściowy?
peterpfff napisał(a):1. wybrać szybsze (o krótszym lub równym czasie) zadania na 1 procesorze
i szybsze zadania na 2. procesorze (porównując czas poszczególnych
zadań)

Czyli z n zadań wybieramy k(k <= n) najkrótszych zadań dla każdego procesu ?
peterpfff napisał(a):2. Szybsze zadania na 1. procesorze posortować niemalejąco
3. Szybsze zadania na 2. procesorze posortować nierosnąco

Co znaczy: "szybsze zadania na 1/2" - wydzielamy jakąś podgrupę "szybszych zadań" i je sortujemy ?
Avatar użytkownika
mykhaylo
Member
 
Posty: 1475
Dołączył(a): Pn cze 09, 2008 5:53 pm
Lokalizacja: Warszawa

Postprzez peterpfff » So lis 08, 2008 10:08 pm

Dzięki za zainteresowanie :) ciężko się z gościem rozmawia bo generalnie ma w nosie studentów :/

Jeżeli chodzi o Twoje pytania to :

1. algorytm jest na podstawie alg. johnsona czyli:
"Algorytm Johnsona służy oczywiście do optymalnego (ze względu na kryterium długości uszeregowania) szeregowania zadań na dwóch maszynach w tzw. systemie przepływowym (Flow-Shop, w skrócie FS).

Mamy dwie maszyny i N zadań. Każde z zadań jest wykonywane na obydwu maszynach, najpierw na pierwszej, potem na drugiej. Dla każdego z zadań znamy czasy ich wykonywania na każdej z maszyn. Zakładamy, że nie ma awarii, a obydwie maszyny są dostępne w początkowej chwili czasu.

Algorytm sprowadza się do wykonania trzech prostych kroków:

1) Podzielenie zadań na dwie grupy. W pierwszej powinny się znaleźć te zadania, dla których czas wykonywania na pierwszej maszynie nie jest dłuższy, niż czas wyknywania na drugiej maszynie. W drugiej grupie - wszystkie pozostałe.

2) Szeregujemy zadania z pierwszej grupy w taki sposób, aby najpierw były wykonywane te zadania, które mają mniejsze czasy na pierwszej maszynie.

3) Zadania z drugiej grupy szeregujemy w taki sposób, aby najpierw były wykonywane te zadania, które mają większe czasy na drugiej maszynie. info z jakiegoś forum"

z tego co ja rozumiem to dwa procesory są aktywne tylko są one uruchamiane wg zadanych czasów.

3. szybsze zadania to te zadania z mniejszym lub równym czasem i tak wydaje mi się że trzeba je po sortować
peterpfff
New member
 
Posty: 6
Dołączył(a): So lis 08, 2008 9:15 pm

Postprzez mykhaylo » So lis 08, 2008 10:18 pm

A jakie są dane wejściowe? Czy dane są już podzielone, na te co wykonują się szybciej na pierwszej maszynie i na te co wykonują się szybciej na drugiej maszynie? Dane są wczytywane z pliku? Podaj przykład danych oraz wynik, jaki ma wygenerować program.
No i najważniejsze pytanie z czym konkretnie masz problem ?? ;)
Avatar użytkownika
mykhaylo
Member
 
Posty: 1475
Dołączył(a): Pn cze 09, 2008 5:53 pm
Lokalizacja: Warszawa

Postprzez peterpfff » So lis 08, 2008 10:43 pm

Dane wejściowe trzeba podać na wstępie, czyli trzeba zrobić do tego jakiś interfejs i później jeszcze funkcję rysującą tzw wykres ganta czyli ten prostokątny wykres z podziałem na maszyny i czasy

przykład takiego zadania, dla trzech maszyn :

Obrazek

a problem jest w tym że nie wiem jak to oprogramować :/ coś czuję że trudne aż tak bardzo to to nie jest ale nie mam pojęcia jak to napisać w C# :/
peterpfff
New member
 
Posty: 6
Dołączył(a): So lis 08, 2008 9:15 pm

Postprzez peterpfff » So lis 08, 2008 10:44 pm

Z - ty to są zadania a P to są procesory
peterpfff
New member
 
Posty: 6
Dołączył(a): So lis 08, 2008 9:15 pm

Postprzez mykhaylo » So lis 08, 2008 10:57 pm

Zadanie zostało całkowicie opisane. Teraz należy przepisać to na C#. Do zrobienia tego zadania wystarczy podstawowa wiedza o C#.
Chcesz zrobić aplikację okienkową, czy konsolową ?
Avatar użytkownika
mykhaylo
Member
 
Posty: 1475
Dołączył(a): Pn cze 09, 2008 5:53 pm
Lokalizacja: Warszawa

Postprzez peterpfff » So lis 08, 2008 11:05 pm

potrzebuję okienkowej
peterpfff
New member
 
Posty: 6
Dołączył(a): So lis 08, 2008 9:15 pm

Postprzez mykhaylo » So lis 08, 2008 11:22 pm

Najwięcej się nauczysz, gdy sam zrobisz to zadanie. Zacznij je robić a jeśli będziesz miał problem to pisz. Jeśli nie wiesz od czego zacząć, to zacznij od zaprojektowania wyglądu oraz funkcjonalności.
Avatar użytkownika
mykhaylo
Member
 
Posty: 1475
Dołączył(a): Pn cze 09, 2008 5:53 pm
Lokalizacja: Warszawa

Postprzez peterpfff » So lis 08, 2008 11:30 pm

Ok dzięki za zainteresowanie :]
peterpfff
New member
 
Posty: 6
Dołączył(a): So lis 08, 2008 9:15 pm

Re: problem czy ktoś może pomóc ?

Postprzez Pianowski » N paź 23, 2011 2:06 pm

nie mam pojęcia jak zrobić schemat blokowy obliczania macierzy transponowanej.

Pomoże ktoś
Pianowski
New member
 
Posty: 1
Dołączył(a): N paź 23, 2011 2:00 pm

Re: problem czy ktoś może pomóc ?

Sponsors

Sponsor
 


Powrót do Projekty i kody źródłowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 gości