pedrosino / modeloprofs Goto Github PK
View Code? Open in Web Editor NEWCódigo fonte do modelo de programação linear para otimizar a distribuição de professores em uma Universidade Federal
Código fonte do modelo de programação linear para otimizar a distribuição de professores em uma Universidade Federal
Definir os nomes e conectores das restrições na planilha
modeloprofs/modeloFinalFuncoes.py
Line 339 in d88d210
Botão na lista para remover a restrição
Atualizar lista
se houver espaço, aumentar a altura
Ver #30
Tornar flexível conforme o número de perfis
ver #32
Talvez também esconder a tabela, pois fica em branco
O valor do objetivo mostrado está correto, mas a distribuição não (falta um professor):
Modo: tempo-reverso CH Maxima: True 16 CH Minima: True 12 Situação: 1, Optimal Objetivo: 3.75 horas Resolvido em 0.090 segundos Resultados: ---------+-----------------------------------------+-------+---------+----------+------------+ Unidade | x1 x2 x3 x4 x5 x6 x7 x8 | Total | P-Eq | Tempo | Tempo/prof | ---------+-----------------------------------------+-------+---------+----------+------------+ FACOM | 1 3 0 0 42 0 1 0 | 47 | 76.50 | 0.25 | 0.005 | FACOMm | 0 1 0 0 0 4 6 0 | 11 | 11.85 | 1.00 | 0.091 | FACOMp | 0 0 0 0 0 2 0 0 | 2 | 3.30 | 0.00 | 0.000 | FAGENm | 0 0 0 0 0 2 0 0 | 2 | 3.30 | 0.00 | 0.000 | FAGENp | 0 0 0 0 0 2 0 0 | 2 | 3.30 | 0.00 | 0.000 | FAMATm | 0 0 0 0 0 6 0 0 | 6 | 9.90 | 0.00 | 0.000 | FAMATp | 0 0 0 0 0 5 0 0 | 5 | 8.25 | 0.00 | 0.000 | FECIV | 0 0 0 0 0 6 0 0 | 6 | 9.90 | 0.00 | 0.000 | FEELT | 0 1 0 0 0 2 7 0 | 10 | 9.15 | -4.00 | -0.400 | ...
O pior caso para os modos tempo e ch não pode ser definido previamente.
Usar um "otimizador reverso" para determinar o pior caso.
Na programação linear inteira não são aceitos
Usar os valores escolhidos pelo usuário para fazer a otimização
Verificar se o status retornado é infeasible
A solução é usar uma pasta local no path e incluir o arquivo scip.exe e o tbb.dll no pacote do executável
Quando há mais de 9 perfis, o modelo os ordena por ordem alfabética, considerando x10 antes de x2.
Assim, ao extrair os resultados, a ordem dos perfis fica errada:
x1 x10 x11 x12 x2 x3 ... x9
Colocar a tabela à direita, para que caiba tudo na tela
usando OR-tools e SAT_INTEGER_PROGRAMMING
Dificuldades:
tempo-reverso e ch-reverso
para poder ver o modelo gerado (versão inteira deu resultado diferente)
... e mostrar mensagem de erro
com instruções conforme o contexto
usando o customtkinter
a solução, aparentemente, é usar classes
Algum tipo de "efeito reticências" ou uma barra de status embaixo
na janela de limitação
Atualmente os valores são inteiros, mas o usuário pode querer definir um valor como 11.5 ou 10.9
https://github.com/pedrosino/modeloprofs/blob/master/otimizador.py#L930
https://github.com/pedrosino/modeloprofs/blob/master/otimizador.py#L944
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.