• Aucun résultat trouvé

The conversion of such consensual unions into legal marriages takes a number of forms. In traditional marriages, recognition of the marriage comes when the bridewealth has

Poverty prevents many young people from making the marital payments or bridewealth to secure a wife according to customary requirements. Given the difficult economic

85. The conversion of such consensual unions into legal marriages takes a number of forms. In traditional marriages, recognition of the marriage comes when the bridewealth has

Partindo da observação de que uma escala cíclica pode ser particionada em programações, o modelo set covering foi proposto, de maneira que cada coluna da matriz de coeficientes represente uma programação alternativa. Cada programação é codificada em um vetor de 0 e

1, e que cada linha da matriz represente uma atividade diária. Gera-se, então, uma grande quantidade de programações legais e resolve-se o problema set covering através de alguma técnica (heurística ou exata). O modelo possui a seguinte expressão:

M Minimizar CjXj j=i M Sujeito a Xaüxy- 1 para/= 1, 2, (4*1) j=i X; — 1 ou 0 paraj = 1, 2, ... , M onde Cj = custo da programaçãoy;

Í1 se a atividade / faz parte da programação j;

iJ[0 caso contrário;

Xj é a variável de decisão binária que diz se a programação j é ou não utilizada; Méo número de programações.

Cada coluna da matriz (atJ) representa uma programação viável. A restrição do modelo garante

que cada atividade será coberta por alguma programação. Quando as restrições de desigualdade são substituídas por restrições de igualdade o modelo é denominado de set

partitioning. Estes dois modelos têm sido amplamente utilizados para a solução do problema

de alocação (crew scheduling). Ambos são problemas de otimização combinatória NP-completo. Existe uma grande quantidade de técnicas específicas para resolver estes tipos de problema, que vão desde métodos enumerativos que garantem a solução ótima, até técnicas heurísticas mais sofisticadas que garantem pelo menos uma solução próxima da ótima.

Em problemas práticos o modelo set covering é gerado para milhares de programações legais através de algum processo a ser definido (por exemplo: enumeração completa). Para os objetivos deste trabalho uma programação é considerada viável as restrições legais forem satisfeitas. Além disso, algumas recomendações também são estabelecidas a fim de melhorar a qualidade da escala, são elas:

1. critério de progressividade: a progressividade entre duas atividades consecutivas é observada se a hora de início da segunda ocorrer após 24 horas do início da primeira. Sempre que possível esse critério é obedecido. Este também é um critério ergonômico recomendado.

2. Intercalar viagem de trem de minério com manobra. Viagem de trem de minério é uma atividade mais difícil, enquanto que a manobra é realizada perto de seu domicílio.

3. Não atribuir 2 cargueiros na mesma programação. Como existem poucos trens cargueiros no conjunto de atividades diárias, então, sugere-se distribui-los ao longo do tempo.

Como já foi dito anteriormente, estas restrições e recomendações podem variar em função das características do problema real. Somente a partir das definições acima pode-se dar início ao processo de geração das programações, e então, montar o modelo matemático.

O processo de geração das programações é feito de maneira enumerativa. Teoricamente seria necessário gerar todas as programações legais possíveis de 5 dias de trabalho. Porém, se forem consideradas todas as permutações possíveis, o esforço computacional requerido para este processo cresce excessivamente (pois o comportamento é não polinomial). Logo, uma alternativa para resolver os problemas reais é a utilização de heurísticas que reduzam o processo de geração das programações. As heurísticas devem explorar as características do problema, como por exemplo, explorar as restrições citadas anteriormente.

Para os exemplos deste trabalho foram utilizadas as seguintes heurísticas.

1. Gerar somente as programações legais com extensão de 5 dias de trabalho. Se for possível produzir uma escala de trabalho composta somente de programações com esta extensão, então, a escala resultante terá um comportamento semelhante ao da Figura 4-1. As folgas serão distribuídas na diagonal da tabela, ou seja, um mesmo condutor terá suas folgas em diferentes dias da semana. Este comportamento regular seria o ideal, sendo inclusive uma recomendação ergonômica, porém, isto nem sempre é alcançado.

2. Não sequenciar duas tarefas se o período de folga entre elas for muito longo. Por exemplo, se a primeira atividade iniciar às 18 horas e a segunda iniciar às 09 horas, ambas com duração de 6 horas, então, não será possível sequenciar nesta ordem se o período mínimo de descanso entre as duas atividades for, por exemplo, de 10 horas. De fato, a primeira atividade encerrará à 0 hora, portanto, a próxima atividade deverá iniciar após às 10 horas para que o empregado cumpra seu período mínimo de descanso. Assim, qualquer atividade que inicia antes das 10 horas só poderá ser executada em sequência se for atribuída para o dia seguinte, resultando, assim, num intervalo de descanso superior a 24 horas. Partindo do pressuposto que se deseja minimizar o tempo da escala total, a heurística impede que duas atividades sejam sequenciadas se o período entre elas for maior que um dia.

4. No máximo uma vez a regra de progressividade poderá ser violada dentro de uma programação.

5. Finalmente, esta heurística está relacionada com o problema de continuidade das atividades quando uma nova escala de trabalho for atribuída para cada condutor. No processo de geração das programações, somente serão aceitas as programações que puderem ser continuadas por algum condutor se elas forem truncadas em uma posição1 i qualquer,

(1 <i <k). Um melhor entendimento desta heurística pode ser visto na seção 4.4.

A partir das regras estabelecidas acima são produzidas as programações e o modelo matemático (set covering) é resolvido, resultando num conjunto de programação que cobre todas as atividades diárias. Então, uma escala cíclica é montada unindo as programações resultantes.

Devido às suas restrições de desigualdade, o modelo matemático set covering permite que uma atividade seja coberta mais de uma vez, ou seja, pode acontecer que alguma atividade participe de duas ou mais programações da solução final. Estas ocorrências são naturalmente muito pequenas. Na maioria dos casos reais isto não ocorre. Quando há este tipo de ocorrência na solução, diz-se que a solução possui cobertura extra. A ocorrência de coberturas extras devem ser eliminadas da solução.