Jest rok 2222. Mieszkasz na księżycu. Ziemia wybuchła, a Ty pracujesz ciężko każdego dnia, jako brygadier/ka w kopalni kamieni szlachetnych w Cratere De la Rousse.
Jest piękny sobotni wieczór. Waga każdego kamienia spowalnia taczkę, którą blaszane roboty muszą przewieźć i załadować do wagonika.
Kiedy załadunek taczki nadchodzi to Ty musisz zdecydować, który miedziany robot ma ją przeładować. Twoja rola jest bardzo ważna, to Ty jesteś planistą całego przedsięwzięcia.
Taczki mogą nadejść w kolejnych minutach. Spiesz się, żeby żadnej nie przegapić! Wczytaj dane wejściowe z plików.
W każdej linii
np.
0 1 gold 1 2
1 2 rubies 3 1 3 agates 1 2
2 4 turquoise 1 2
oznacza że:
Wczytaj dane z plików: Dane 1 i wyświetl na ekranie.
Dobra robota. Już potrafisz rozpoznawać kiedy nadchodzi nowa taczka i wiesz jak długo zajmie jej wyładunek.
W kopalni la Carotte pracuje tylko 1 miedziany robot. W kopalni la Betterave 2 miedziane roboty. W kopalni le Radis jest zawsze dużo roboty, więc może pracować nawet do 6 miedzianych robotów.
W swojej pracy nie rozstajesz się ze swoim kajetem. Zawsze zapisujesz w nim które taczki czekają na swoją kolej i obserwujesz otoczenie aby reagować od razu gdy nowe taczki pojawią się na horyzoncie.
Zaplanuj pracę robotów według następujących zasad:
Wykorzystaj strategię FCFS (First-Come, First-Served):
Dla powyższych danych wejściowych w kopalni la Betterave (2 miedziane roboty) planista wykona następujące operacje:
2 robots in the mine
FCFS:
Moment 0
wheelbarrow arrived <1 gold 1 2 [2]>
[gold 2][ ]
Moment 1
wheelbarrow arrived <2 rubies 3 1 [3]>
wheelbarrow arrived <3 agates 1 2 [2]>
[gold 1][rubies 3]
Moment 2
wheelbarrow arrived <4 turquoise 1 2 [2]>
[agates 2][rubies 2]
Moment 3
[agates 1][rubies 1]
Moment 4
[turquoise 2][ ]
Moment 5
[turquoise 1][ ]
Dla kopalni le Radis wynik szeregowania będzie następujący:
6 robots in the mine
FCFS:
Moment 0
wheelbarrow arrived <1 gold 1 2 [2]>
[gold 2][ ][ ][ ][ ][ ]
Moment 1
wheelbarrow arrived <2 rubies 3 1 [3]>
wheelbarrow arrived <3 agates 1 2 [2]>
[gold 1][rubies 3][agates 2][ ][ ][ ]
Moment 2
wheelbarrow arrived <4 turquoise 1 2 [2]>
[turquoise 2][rubies 2][agates 1][ ][ ][ ]
Moment 3
[turquoise 1][rubies 1][ ][ ][ ][ ]
Brawo masz już zaliczoną listę! Gratuluję. Teraz czas zastosować inną strategię planowania. Niech będzie to RR (Round-Robin). Oddychasz z ulgą - na szczęście na wykładzie z Twojego ulubionego przedmiotu ten algorytm został omówiony!
Zaimplementuj następujący sposób planowania pracy robotów:
Dla tej strategii wynik obliczeń w kopalni dla 2 miedzianych robotów oraz kwantu czasu wynoszącego minutę będzie następujący:
2 robots in the mine
RR with quantum 1:
Moment 0
wheelbarrow arrived <1 gold 1 2 [2]>
[gold 2][ ]
Moment 1
wheelbarrow arrived <2 rubies 3 1 [3]>
wheelbarrow arrived <3 agates 1 2 [2]>
[gold 1][rubies 3]
Moment 2
wheelbarrow arrived <4 turquoise 1 2 [2]>
[agates 2][rubies 2]
Moment 3
[turquoise 2][agates 1]
Moment 4
[rubies 1][turquoise 1]
Dla kwantu czasu o wartości 2 wynik będzie następujący:
2 robots in the mine
RR with quantum 2:
Moment 0
wheelbarrow arrived <1 gold 1 2 [2]>
[gold 2][ ]
Moment 1
wheelbarrow arrived <2 rubies 3 1 [3]>
wheelbarrow arrived <3 agates 1 2 [2]>
[gold 1][rubies 3]
Moment 2
wheelbarrow arrived <4 turquoise 1 2 [2]>
[agates 2][rubies 2]
Moment 3
[agates 1][turquoise 2]
Moment 4
[rubies 1][turquoise 1]
Podane na zajęciach przez prowadzącego.
Więcej przykładowych danych znajdziesz Tutaj.