[Algorytmy] Ciągłość kopiowania danych

Mondo
Użytkownik
Użytkownik
Posty: 490
Rejestracja: 11 sty 2011, o 19:54
Płeć: Mężczyzna
Podziękował: 261 razy
Pomógł: 7 razy

[Algorytmy] Ciągłość kopiowania danych

Post autor: Mondo »

Witam, mam do rozwiązania taki problem:

Cztery komponenty `A`, `B`, `C` oraz `D` kopiują pomiedzy sobą dane w kierunku \(\displaystyle{ A \rightarrow B \rightarrow C \rightarrow D}\). Komponenta `A` jest generatorem danych i generuje ich \(\displaystyle{ X}\) co dany okres czasu. Komponent `B` wymaga \(\displaystyle{ 2,66(6)X}\) aby rozpocząć kopiowanie do `C`, a ten w każdym okresie kopiuje `X` danych do `D`. I teraz należy tak ustawić system kopiowania poprzez urchamianie poszczególnych komponentów w czasie , aby komponent `D` po swoim starcie zawsze miał `X` danych dostępnych.

Od razu widać, że trzeba wprowadzić buforowanie danych na komponencie `B`, a także wystartować komponenty `C` oraz `D` pózniej. O ile później? No właśnie to jest główny problem. Jeśli wystartujemy \(\displaystyle{ C \rightarrow D}\) po trzech okresach czasu to wygeneruje to tylko \(\displaystyle{ 2,66X}\) co wystarczy na 2 okresy czasu `C` i znów musimy czekać 3 okresy na to aż `B` wygeneruje dane. Tak więc w efekcie przez jeden okres czasu `C` będzie "zagłodzony" (o \(\displaystyle{ X - 0,666X}\)). Jeśli natomiast wystartujemy `C \rightarrow D` po 4 okresach czasu to mamy 2,66 od razu - co ponownie wystarcza na 2 okresy ale teraz w tych 2 okresach komponent `B` gromadzi oczywiście \(\displaystyle{ 2X + 2X}\) (reszta z poprzedniego kopiowania) więc znowu kopiuje dane do `C \rightarrow D` \(\displaystyle{ 2,66X}\). Cały proces się powtarza i system działa poprawnie. Mam tylko jeden problem, mianowcie jak to ładnie opisać równaniem i tym samym wyznaczyć formułę na `Y` (ilośc okresów buforowania). Ktoś ma jakiś pomysł?
Ostatnio zmieniony 1 lis 2020, o 08:33 przez Afish, łącznie zmieniany 2 razy.
Powód: Poprawa wiadomości.
Awatar użytkownika
Dasio11
Moderator
Moderator
Posty: 10211
Rejestracja: 21 kwie 2009, o 19:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 40 razy
Pomógł: 2359 razy

Re: Ciągłość kopiowania danych

Post autor: Dasio11 »

Czym jest ilość okresów buforowania?
Mondo
Użytkownik
Użytkownik
Posty: 490
Rejestracja: 11 sty 2011, o 19:54
Płeć: Mężczyzna
Podziękował: 261 razy
Pomógł: 7 razy

Re: [Algorytmy] Ciągłość kopiowania danych

Post autor: Mondo »

Dasio11, liczba naturalna ktora zapewni ciaglość kopoowania danych - jak opisałem w tym przykładzie bedzie to 4. Tylko teraz staram się wyznaczyć formułę na to.
Awatar użytkownika
Dasio11
Moderator
Moderator
Posty: 10211
Rejestracja: 21 kwie 2009, o 19:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 40 razy
Pomógł: 2359 razy

Re: [Algorytmy] Ciągłość kopiowania danych

Post autor: Dasio11 »

Jeśli chodzi Ci o formułę uzależniającą odpowiedź od jakichś zmiennych, to chyba powinieneś opisać co to za zmienne?
Mondo
Użytkownik
Użytkownik
Posty: 490
Rejestracja: 11 sty 2011, o 19:54
Płeć: Mężczyzna
Podziękował: 261 razy
Pomógł: 7 razy

Re: [Algorytmy] Ciągłość kopiowania danych

Post autor: Mondo »

@Dasio11, problem generalnie przypomina przepływ cieczy w rurociągu a zmiennej objętości więc przygotowałem taki rysunek poglądowy ->

Do punktu `A` co daną jednostkę czasu wpływa `X` danych. Mówimy tutaj o świecie skwantowanym więc to `X` wpływa dokładnie co jednostkę czasu i nic pomiedzy okresami czasu. Gdyby było to klasyczne zadanie z zbiornikiem (czyli dokładnie tak jak na rysunku) i pytanie brzmiało po ilu jednostkach czasu należy otworzyć zawór `B` tak aby ilośc danych wpływające do `A` i wypływajaca z `C` była taka sama to od razu widać, że po czterech okresach czasu. Wtedy w czwartm okresie `B` wyprodukuje `1,34` do `C` ale już poźniej każdy kolejny okres wygeneruje tyle samo danych ile wpływa do `A` czyli `X`. Mój oryginalny problem ma tylko jedną różnicę - zawór `B` po osiągnięciu swojego poziomu zawsze kopiuje `2,66X` do `C`.
Pomimo tej różnicy myślę, że gdyby udało się opisac równaniem sytuację z rysunku to już później da się łatwo zmienić warunek kopiowania w `B`.

Czy sytuacja z rysunku ma dla Ciebie sens @Dasio11? Masz jakiś pomysł jak opisac to równaniami, tak żeby wzynaczyć szukaną ilość okresów po której nalezy otworzyć zawór `B`?
Awatar użytkownika
Dasio11
Moderator
Moderator
Posty: 10211
Rejestracja: 21 kwie 2009, o 19:04
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 40 razy
Pomógł: 2359 razy

Re: [Algorytmy] Ciągłość kopiowania danych

Post autor: Dasio11 »

Jeśli chodzi Ci o dopasowanie do tego konkretnego zadania jakiegoś układu równań, tak żeby później otrzymać odpowiedź \(\displaystyle{ Y=4}\) w sposób czysto rachunkowy, to nie wiem jak to zrobić i nie widzę w tym żadnego sensu. Odpowiedź wynika bezpośrednio z Twojej analizy i takie rozwiązanie jest zupełnie w porządku.

Jeśli zaś masz na myśli ogólniejszy problem, w którym część danych zostaje zastąpiona przez zmienne, i szukasz ogólnego wzoru na \(\displaystyle{ Y}\) w zależności od tych zmiennych, to musisz określić na czym polega uogólnienie.
Mondo
Użytkownik
Użytkownik
Posty: 490
Rejestracja: 11 sty 2011, o 19:54
Płeć: Mężczyzna
Podziękował: 261 razy
Pomógł: 7 razy

Re: [Algorytmy] Ciągłość kopiowania danych

Post autor: Mondo »

@Dasio11 dzieki za wskazówki. Udało mi się rozwiązać ten problem. Generalnie kluczowe jest żeby zrozumieć, że dla węzła B nie jest ważne czy po jego otwarciu kopiujemy to co nad progirem czy pod (pod warunkiem, że dopływam `A` jest równy odpływowi `C`) bo i tak średnia po tym właśnie szukanym okresiecie czasu będzie taka sama.
ODPOWIEDZ