Adicionar restrições de vários conceitos e decisões personalizadas: Decision Optimization Atribuição de turnos
Este exemplo de Decision Optimization Modeling Assistant mostra como usar iterações de diversos conceitos, a palavra-chave associated em restrições, como definir suas próprias decisões customizadas e definir restrições lógicas Para ilustração, um problema de designação de recurso, ShiftAssignment, é usado e seu modelo concluído com dados é fornecido no DO-samples..
Antes de iniciar
- Requisitos
- Para editar e executar modelos do Decision Optimization , deve-se ter os pré-requisitos a seguir:
- Funções Admin ou Editor
- Deve-se ter as funções Admin ou Editor no projeto Os visualizadores de projetos compartilhados podem apenas ver experimentos, mas não podem modificá-los ou executá-los
- serviço de tempo de execuçãowatsonx.ai
- Você deve ter um serviço de tempo de execuçãowatsonx.ai associado ao seu projeto. É possível incluir um ao criar um Decision Optimization Experimento
- Espaço de implementação
- Deve-se ter um espaço de implementação associado ao seu Decision Optimization experimento. É possível escolher um espaço de implementação ao criar um Decision Optimization experimento..
Sobre essa tarefa
Este exemplo é sobre a designação de funcionários para turnos diferentes e cada dia requer que um número necessário de funcionários seja de plantão. Os arquivos usados nesta amostra estão disponíveis no DO-samples.
Este vídeo fornece um método visual para aprender os conceitos e tarefas nesta documentação. Após carregar o exemplo em seu Decision Optimization experiment, é possível seguir o vídeo.
Aviso de vídeo: Algumas etapas menores e etapas gráficas neste vídeo podem ser diferentes da sua plataforma. A interface com o usuário também é frequentemente melhorada.
Procedimento
Para fazer o download e abrir a amostra:
- Faça o download do arquivo ShiftAssignment.zip a partir da subpasta Model_Builder na DO-samples Selecione a subpasta de produto e versão relevante.
- Abra seu projeto ou crie um projeto vazio.
- Selecione a guia Ativos .
- Selecione Novo ativo > Resolver problemas de otimização no Trabalhar com modelos seção.
- Clique em Arquivo local na janela Criar um experimento do Decision Optimization que é aberta.
- Navegue localmente para encontrar e escolha o arquivo ShiftAssignment.zip que você baixou. Clique em Abrir. Como alternativa, use arrastar e soltar.
- Se você ainda não tiver associado um serviço de tempo de execuçãowatsonx.ai ao seu projeto, deverá primeiro selecionar Adicionar um serviço Machine Learning para selecionar ou criar um antes de escolher um espaço de implantação para o seu experimento.
- Clique em Criar.Um modelo Decision Optimization é criado com o mesmo nome da amostra.
- Abra o painel de cenário e selecione o cenário
AssignmentWithOnCallDuties.
Resultados
No Preparar dados visualizar do AssignmentWithOnCallDuties Cenário, você pode ver os ativos de dados importados. Essas tabelas representam os turnos, os funcionários que precisa ser designados a esses turnos e os dias com exigência de plantão.

Utilização de iteração multiconceitual
Sobre essa tarefa
Imagine que você queria que sua formulação de modelo expresse a seguinte regra: cada funcionário não pode trabalhar mais de um turno por dia. Por exemplo, um funcionário não pode ser designado para dois turnos no mesmo dia. Você pode usar, conforme mostrado nessa formulação de modelo, uma restrição para cada dia da semana

Mas as restrições de listagem para cada dia da semana são complicadas: se seu modelo foi baseado em dias no ano, deve-se então listar centenas desse tipo de restrições. O procedimento a seguir mostra como usar a iteração de vários conceitos e a palavra-chave associated para expressar a iteração sobre mais de um conceito Assim, você pode expressar tal regra com apenas uma frase.
Procedimento
Para usar iteração de vários conceitos, siga estas etapas.
- Clique em Modelo de construção na barra lateral para visualizar sua formulação de modelo.A formulação do modelo mostra a intenção como designar funcionários aos turnos, com seus objetivos e restrições.
- Expandir a restrição
For each Employee-Day combination , number of associated Employee-Shift assignments is less than or equal to 1.
Resultados
Essa restrição combina funcionários e dias com a palavra-chave associated para que a expressão itere sobre o funcionário e o dia. É possível ver que o funcionário na combinação funcionário-dia está mapeado para o funcionário na atribuição funcionário-turno. Além disso, o dia na combinação funcionário-dia está mapeado para a propriedade dia da mudança de turnos. Assim, as combinações são tratadas corretamente e automaticamente para você.
Com essa iteração multiconceito, é possível especificar novos grupos de regras que combinam diferentes conceitos.
Definição de decisões customizadas
Sobre essa tarefa
Suponha que você também queria designar funções de plantão. É possível criar outro modelo com a intenção de designar funcionários a deveres de plantão, mas, em seguida, não seria possível estabelecer regras de dependência entre os dois modelos. Ao adicionar decisões customizadas ao seu modelo existente, conforme este exemplo, você pode definir dependências entre a mudança de turnos e as funções de plantão. Aqui a decisão customizada é chamada OnCallDuties.
Procedimento
Para definir as decisões customizadas, siga estas etapas:
Resultados
Você não está mais restrito a usar somente decisões deduzidas de sua intenção. Agora é possível definir suas próprias decisões customizadas usando as configurações avançadas e as guias de decisão, nas quais é possível selecionar seu tipo de decisão e suas dimensões (tabela de dados ou coluna). É possível, então, configurar novas regras e objetivos que usem sua decisão recém-definida
Usando restrições lógicas
Sobre essa tarefa
Suponha que você queira garantir que as funções de plantão atribuídas não ocorram quando um funcionário estiver de férias. Você pode fazer isso usando restrições lógicas, como mostrado a seguir.
Procedimento
Para usar restrições lógicas:
- Consulte a restrição
Essa restrição assegura que, para cada combinação de funcionário e dia, quando nenhuma designação associada existir (por exemplo, o funcionário está de férias nesse dia), que nenhuma obrigação de plantão seja designada a esse funcionário nesse dia. Observe o uso das palavras-chaveif...thenpara definir essa restrição lógica. - Opcional: Inclua outras restrições lógicas em seu modelo procurando nas sugestões.
Resultados
Essa restrição vincula a designação de funcionários aos turnos com funções de plantão. Com modelos separados, um para a designação de turno original e outro para os deveres de plantão, você não pode alcançar esse link.
Usando restrições lógicas, juntamente com a palavra-chave associated , é possível especificar que, se uma restrição se aplicar, outra restrição também se aplicará As conexões lógicas necessárias entre os conceitos aos quais você está se referindo são feitas automaticamente, sem que você precise usar expressões de junção mais complicadas.

assegura que os requisitos de plantão listados na tabela Dia sejam atendidos.