• Nenhum resultado encontrado

NOSSO MODELO 45 Consideramos que há um intervalo (“recreio”) entre dois horários letivos de um dia se a

O modelo matemático com Programação Linear Inteira

4.2 NOSSO MODELO 45 Consideramos que há um intervalo (“recreio”) entre dois horários letivos de um dia se a

distância em minutos entre estes é maior que 0 e menor que 30 minutos (em geral está entre 10 e 20 minutos), e que há uma mudança de turno se é maior ou igual aos 30 minutos.

4.2.1 Dados Os dados necessários são:

• H, o conjunto de horários letivos;

• D, o conjunto de índices d dos dias de aula da instituição;

• os Hd, ∀d ∈ D, dão uma partição de H em conjuntos de horários diários; • H

d⊆ Hd, o conjunto de horários anteriores a mudanças de turno num dia d;

• C, o conjunto de classes: padrão, subconjunto C, ou turmas especiais, subconjunto C′′;

• M, o conjunto de matérias; • P, o conjunto de professores; • S, o conjunto de salas especiais;

• G, o conjunto de grupos de aulas simultâneas; • A, o conjunto de encontros com alocação estática;

• B, o conjunto de professores que necessitam de substituição;

C′′, S, G, A e B possivelmente vazios;

• ∀c ∈ C, H

c⊆ H o conjunto de horários letivos da classe c;

• ∀p ∈ P, Hp⊆ H o conjunto de horários disponíveis do professor p; • ∀s ∈ S, Hs⊆ H o conjunto de horários disponíveis da sala especial s; • ∀c ∈ C, ∀m de c, são dados:

– rcm, o número dos encontros que a matéria m deve ter na classe c, αcm, o número máximo de encontros diários,

δcm, o número mínimo de aulas geminadas semanais,

– Scm⊆ S, o conjunto de possíveis salas especiais para os encontros de m em c, – Pcm⊆ P, Pcm6= /0, o conjunto de possíveis professores para lecionar os encontros de

• ∀p ∈ P, são dados:

αp, o número máximo de encontros diários,

βpp, os seus mínimo e máximo número de encontros semanais; • ∀p ∈ B,

– Lp, o conjunto de disciplinas das turmas de p que precisam de substituto, e

– fp, a função que determina o professor substituto para cada uma destas disciplinas; • ∀c ∈ C,

– STc, o conjunto de subturmas da classe padrão c,

– U Tc, o conjunto de uniões de turmas que envolvem a classe padrão c,

∀ci∈ STc: UTci, o conjunto de uniões de turmas que envolvem a subturma cide c. Lembramos que não há restrições quanto ao número de classes padrão e (ou) subturmas que formam uma união de turmas. Contudo, uma união de turmas não deve conter uma classe padrão e uma subturma da mesma, uma sobreposição. Daí,

∀ci∈ STc, U Tci∩U Tc= /0.

Quanto ao mais, tudo é permitido, inclusive UTci∩U Tcj6= /0, para algum {ci, cj} ∈ STc. Isto é, alguma união de turmas contendo subturmas de uma mesma turma.

Mantemos aqui a notação usada no Capítulo 3, e acrescentamos mais algumas. A entrada do programa que implementa o modelo não é exatamente assim, uma lista. No momento apro- priado falaremos da implementação. Por hora, informamos que foi usada a linguagem Java, uma linguagem de programação orientada a objetos, e de dentro do projeto nesta linguagem foi chamada a biblioteca Xpress Builder Library BCL e a biblioteca do Xpress-Optimizer, para construir e executar o modelo. Isto nos permitiu aliar programação em alto nível com controle dos dados e a funcionalidade do Xpress-MP.

4.2.2 Variáveis

Os índices d e h correspondem aqui a identificação do dia de um horário letivo e de sua posição na lista de horários do dia, respectivamente. Portanto a identificação de um horário aqui será dada pelos dois índices: o horário h do dia d, ou o horário dh.

Para não pesar a notação, a posição seguinte à posição h de um dia, h + 1, será denotada aqui por h.

As variáveis são: • ∀c ∈ C,

∀m de c com rcm−δcm·αcm> 0, ∀p ∈ Pcm e

4.2 NOSSO MODELO 47 ∀ dh ∈ Hc∩ Hp se Scm= /0 ou ∃s ∈ Scm, dh ∈ Hs. xcmpdh=   

1, se o professor p leciona a matéria m para a turma c no horário h do dia d; 0, caso contrário. • ∀c ∈ C, ∀m de c comαcm= 2, ∀p ∈ Pcm e ∀ dh ∈ (Hd− Hd) ∩ Hc∩ Hp se dh∈ Hc∩ Hpe se Scm= /0 ou ∃s ∈ Scm, {dh, dh} ⊆ Hs. xcmpdh=   

1, se o professor p dá aulas geminadas da matéria

m para a turma c nos horários h e hdo dia d;

0, caso contrário. • ∀c ∈ C, ∀m de c com |Pcm| > 1 e ∀p ∈ Pcm. ycmp=    1, se o professor p leciona a matéria m para a turma c; 0, caso contrário. • ∀c ∈ C, ∀m de c com rcm−δcm·αcm> 0 e |Scm| > 1, ∀s ∈ Scm e ∀ dh ∈ Hc∩ Hsse ∃p ∈ Pcm, dh ∈ Hp. xscmsdh=   

1, se na sala especial s ocorre aula da matéria

m para a turma c no horário h do dia d;

0, caso contrário. • ∀c ∈ C, ∀m de c comαcm= 2 e |Scm| > 1, ∀s ∈ Scm e ∀ dh ∈ (Hd− Hd) ∩ Hc∩ Hs se dh∈ Hc∩ Hs e se ∃p ∈ Pcm, {dh, dh} ⊆ Hp. xscmsdh=   

1, se na sala s ocorrem aulas geminadas da matéria

m para a turma c nos horários h e hdo dia d;

• ∀c ∈ C, ∀m de c com |Scm| > 1 e ∀s ∈ Scm. zcms=   

1, se na sala especial s ocorre aula da matéria m para a turma c; 0, caso contrário.

Como pode-se observar, apenas as variáveis que realmente são necessárias e podem assumir valor não nulo em alguma solução são criadas. Evitamos um grande número de variáveis e restrições sobre elas, para, por exemplo, impedir que aulas sejam alocadas em horários não possíveis (indisponíveis). As variáveis x

cmpdh também evitam restrições impedindo duas aulas não geminadas no mesmo dia, e suas possíveis variáveis auxiliares. Transformando a restrição que garante o respeito ao número máximo diárioαcm(1 ou 2) na restrição que diz que apenas uma aula simples ou um par de aulas geminadas de uma mesma disciplina numa turma podem ocorrer no mesmo dia (inequações 4.13).

As variáveis xscmsdh e xscmsdh aparecem quando m de c requer uma sala num conjunto com pelo menos 2 salas especiais possíveis, e são usadas na escolha da sala. As xs

cmsdhservem para garantir que aulas geminadas ocorram em salas iguais (xiv). E as variáveis zcms são criadas e usadas somente quando requer-se que todos os encontros de m em c ocorram numa mesma sala (xiv’).

As restrições que modelam as relações entre as variáveis e as restrições de viabilidade são apresentadas na seção seguinte.

4.2.3 Restrições

Quando aqui denotarmos a soma de variáveis em um índice (ou conjunto deles) queremos significar a soma das variáveis que existem alterando-se apenas aquele índice (ou os índices) no maior conjunto que os contém ou num domínio determinado. Caso não existam tais variáveis esta soma equivale a zero.

Primeiro vejamos algumas restrições que modelam relações entre as variáveis: ∀xcmpdh: xcmpdh≤ ycmp, (4.1) ∀xcmpdh: xcmpdh≤ ycmp, (4.2) ∀xscmsdh: xscmsdh≤ zcms, (4.3) ∀xscmsdh: xscmsdh≤ zcms. (4.4)

As demais relações entre as variáveis serão garantidas junto às restrições de viabilidade. Que passamos a descrever.

4.2 NOSSO MODELO 49

Outline

Documentos relacionados