Dúvida no número de ligações que cada cliente deve fazer

Dúvida no número de ligações que cada cliente deve fazer

por Rodrigo Luiz Marques Flores -
Número de respostas: 12
Olá

Se eu entendi bem o enunciado, o cliente faz o seguinte:

liga para o atendente
espera tempo aleatório
liga para o atendente
espera tempo aleatório
liga para o atendente

E assim vai.

Minha dúvida é: quantas vezes ele deve ligar para o atendente?

Abraços

Em resposta à Rodrigo Luiz Marques Flores

Re: Dúvida no número de ligações que cada cliente deve fazer

por Alberto Ueda -
Flores, nossa idéia foi de gerar um número aleatório de telefonemas que cada cliente irá fazer. Quando todos já tiverem feito suas reclamações, o programa acaba.
Isso vale?
Em resposta à Alberto Ueda

Re: Dúvida no número de ligações que cada cliente deve fazer

por Ricardo Cillo -
Eu fiquei na dúvida se pode.

Qnd k = 30, temos que rodar o programa 30 vezes pra gerar dados para as estatísticas, né? Se o número de ligações for aleatório, como ficariam as estatísticas?

E talvez uma das idéias de contar as ligações que cada atendente recebeu é ver se não tem um processo fominha que por causa do escalonador ta atendendo muito mais. Não sei!
Em resposta à Ricardo Cillo

Re: Dúvida no número de ligações que cada cliente deve fazer

por Hugo Corbucci -
Para vocês gerarem as estatísticas estabelecer algns comportamentos "padrão" para poderem comparar as coisas certas.

Quanto ao programa para entregar, eu diria que deixa rodando ad infinitum. Ctrl+C mata sorriso
Em resposta à Hugo Corbucci

Re: Dúvida no número de ligações que cada cliente deve fazer

por Atol Fortin de Oliveira -
O ideal no EP é tentar garantir algum tipo de justiça, onde tenha uma boa distribuição de ligações atendidas para cada atendente 'n' ?

Se sim :

Para isso, podemos incluir nas nossas heurísticas a quantidade de clientes e atendendentes, ou a "boa distribuição" deve ser válida sempre e independentemente dos valores de 'n' e 'm'?

Acho meio estranho deixar fazer ligações infinitas (foi oque entendi do post acima), e parar as ligações apenas com um Crt+C, principalmente para poder rodas nossos testes de forma automatizada. Não só a automatização, mas de certa forma estaremos fazendo um número "aleatório" de ligações também, se fizermos dessa forma. Caso possamos definir um número de ligações de alguma forma, esse número também pode ser considerado nas heurísticas?

E outro problema que venho tendo é que para que haja tal boa distribuição, estou precisando perder muito tempo com "sleeps" e coisas do tipo, parece razoável?
Em resposta à Atol Fortin de Oliveira

Re: Dúvida no número de ligações que cada cliente deve fazer

por Hugo Corbucci -
Hmmm... pelo que EU entendi (o Eduardo que escreveu o EP, ele sabe melhor que eu), não existe "justiça". O que você quer é atender as ligações o mais rápido possível. Se isso significar passar todas elas para o atendente 1 e deixar os outros fazendo nada, tá valendo! (Acho que isso é impossível né mas só de exemplo).

Imagine que você está implementando um servidor web. Você recebe requisições e quer passar elas para uma thread que monte a página que foi pedida e a devolva o mais rápido possível. Você não está nem aí se a thread 58 nunca recebe trabalho. Desde que todo mundo seja atendido o mais rápido possível, ÓTIMO!

Quanto ao número infinito, eu disse que vocês podem entregar assim. Mas obviamente para fazer os testes vocês vão precisar estabelecer algumas coisas fixas (pode ser o número de ligações, pode ser o tempo que vocês deixam rodando, pode ser o número de atendentes e o número de clientes, etc...). Tudo depende de como vocês pretendem avaliar suas implementações.
Em resposta à Hugo Corbucci

Re: Dúvida no número de ligações que cada cliente deve fazer

por Atol Fortin de Oliveira -
Se queremos fazer algo que minimize o tempo, eu não entendi muito bem pra que serve "esperar um tempo aleatório" :

"A vida de um cliente é muito monótona: ele liga para o call center para fazer uma reclamação, espera ser atendido, faz a reclamação, faz outras coisas menos
importantes (ou seja, espera um tempo aleatório), depois liga novamente para o call center."

Um problema é que a função sleep() que tinha no exemplo deixado no PACA aparentemente "trunca" o valor passado, e então ele o programa acaba sendo forçado a esperar no mínimo 1 segundo. (Não é possível dar um sleep(0.1) por exemplo, ele simplesmente ignora essa chamada.)


Ainda outra dúvida relacionada à "otimização". Podemos então fazer qualquer coisa no código para melhorar o desempenho, a "velocidade de atendimento"?
Isso parece que torna mais interessante do que o que eu tinha pensado antes.
Em resposta à Atol Fortin de Oliveira

Re: Dúvida no número de ligações que cada cliente deve fazer

por Hugo Corbucci -
O "esperar um tempo aleatório" é para vocês não terem que fazer alguma coisa que seja complicada e diferente para cada chamada. Da mesma forma que no seu web server cada página tem uma complexidade para ser gerada, atender a ligação do cliente pode precisar de um procedimento ou outro.
Pra vocês não terem que ficar implementando vários procedimentos inúteis só para os tempos de atendimento serem diferentes, a gente pede pra vocês esperarem um tempo aleatório (finge que o atendente está fazendo o tal procedimento). Imagine que esse tempo aleatório na verdade é tempo de trabalho em outra coisa.

Sleep recebe um inteiro que é o número de segundos a esperar. Até tem um nanosleep bem mais complicado que dorme menos. Mas vocês não precisam ir procurar isso. Segundos está bom.

A idéia de usar concorrência é para atender essas requisições (ligações) de forma mais eficiente. Não vejo muita otimização possível no algoritmo mantendo a aleatoriedade do momento das ligações e da duração delas. O programa de vocês DEVE ser concorrente e vocês não podem conseguir prever quando virá uma ligação ou quando vocês serão liberados dela. Fora isso, acho que podem se divertir otimizando :P (Eduardo, por favor, fale se eu estiver errado).
Em resposta à Hugo Corbucci

Re: Dúvida no número de ligações que cada cliente deve fazer

por Atol Fortin de Oliveira -
Ahhh outra coisa, com relação a boa distribuição de ligações.
Ela deve valer só para ligações atendidas, ou também deve valer para ligações feitas?
Em resposta à Atol Fortin de Oliveira

Re: Dúvida no número de ligações que cada cliente deve fazer

por Eduardo Teruo Katayama -
Oi Atol, você não precisa se preocupar com a boa distribuição de ligações, note que o que queremos no ep é que a pessoa seja atendida o mais rápido possível, não importando qual atendente faça isso. Dependendo do tipo do escalonamento do processador, pode ocorrer de um atendende atender bem menos que os outros, isso você não precisa se preocupar ;)

Abraços,
Eduardo