diff --git a/argus/statement/tutorial.tex b/argus/statement/tutorial.tex index e69de29..dc27c95 100644 --- a/argus/statement/tutorial.tex +++ b/argus/statement/tutorial.tex @@ -0,0 +1,11 @@ +Para resolver o problema, utilizaremos uma \textbf{fila de prioridade (min-heap)} que armazenará os instantes em que cada medicamento deve ser tomado novamente, juntamente com o nome do medicamento. Dessa forma, sempre poderemos determinar facilmente qual é o próximo medicamento a ser administrado. + +Inicialmente, inserimos na fila todos os medicamentos com o tempo de sua \textit{primeira dose}. Em seguida, repetimos o seguinte processo até listar todas as doses necessárias: +\begin{enumerate} + \item Remover da fila o medicamento com o menor tempo de administração (isto é, o que deve ser tomado mais cedo). + \item Imprimir o nome do medicamento e o tempo. + \item Calcular o próximo instante em que esse medicamento deverá ser tomado, somando o seu intervalo de tempo ao instante atual. + \item Inserir novamente o medicamento na fila com o novo instante calculado. +\end{enumerate} + +Esse método garante que os medicamentos sejam listados em ordem cronológica, respeitando os intervalos de cada um e evitando que qualquer dose seja esquecida. \ No newline at end of file diff --git a/breakdown-desastroso/statement/tutorial.tex b/breakdown-desastroso/statement/tutorial.tex index e69de29..b7e948f 100644 --- a/breakdown-desastroso/statement/tutorial.tex +++ b/breakdown-desastroso/statement/tutorial.tex @@ -0,0 +1,17 @@ +Para resolver o problema, utilizaremos uma \textbf{fila de prioridade (min-heap)} para armazenar o \textbf{instante em que cada servidor ficará livre} para ser utilizado novamente. Além disso, manteremos uma variável para registrar o \textbf{número máximo de servidores ativos} em um dado momento da simulação. + +A cada nova requisição, verificamos o elemento no topo da fila, isto é, o servidor que ficará disponível mais cedo. +\begin{itemize} + \item Se o tempo armazenado nesse elemento for \textbf{menor que o instante da requisição atual}, significa que o servidor já está livre e pode ser reutilizado, então o removemos da fila. + \item Caso contrário, o servidor ainda está ocupado, e portanto \textbf{precisaremos ativar um novo servidor} para atender à requisição. +\end{itemize} + +Em ambos os casos, inserimos na fila um novo valor correspondente a $(instante\_requisição + 1000)$, indicando que o servidor recém-utilizado permanecerá ocupado pelos próximos $1000$ milissegundos. + +Durante o processo, atualizamos continuamente a variável que armazena o \textbf{maior tamanho alcançado pela fila}, representando o pico de servidores simultaneamente ativos. + +Ao final da simulação, o número mínimo de servidores necessários será dado por: +\[ +\left\lceil \frac{n_{\text{máx}}}{K} \right\rceil +\] +onde $K$ é o número de requisições que cada servidor consegue processar simultaneamente.