Guest User

Untitled

a guest
Nov 16th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. % Procura respetivamente todas as permutações, calculando o tempo de
  2. % atraso e tempo total - após isso, insere esses valores na funcao multi
  3. % criterio e normaliza os valores. Ordena depois pelo valor normalizado.
  4. funcao_multicriterio_final(M, LL):- findall(p(Valor, LOp),(permuta_tempo_atraso(M, LOp,TAtraso, TTotal), funcao_multicriterio(M, Valor, TTotal, TAtraso)),LP), sort(LP,LL).
  5.  
  6. % Calcula o valor da normalização, tendo em conta o valor minimo e
  7. % maximo calculado com as heuristicas.
  8. funcao_multicriterio(M,Valor, TOc, TAtr):- h_tempo_atraso(M, _,TempoMinAtraso, _), h_m_tempo_ocupacao(M, _, TempoMinTotal), normalizar(TOc, TAtr, TempoMinTotal, 250, TempoMinAtraso, 274, Valor).
  9.  
  10. % Normalizar os valores
  11. normalizar(TOc, TAtraso, TOcmin, TOCMax, TAtrmin, TAtrMax, Valor):- normalizarOc(TOc, TOcmin, TOCMax,R), Rtemp is 0.4*R, normalizarAtr(TAtraso, TAtrmin, TAtrMax,R1),R1Temp is 0.6*R1, Valor is Rtemp + R1Temp.
  12.  
  13. % Normalizar valores atraso e ocupação.
  14. normalizarOc(TOc, _, TOc, 0):-!.
  15. normalizarOc(TOc, TOcmin, TOcMax, R):- R is ((TOc-TOcmin)/(TOcMax-TOc)).
  16. normalizarAtr(TAtraso, TAtrMin, _, R):-(TAtraso<TAtrMin),!, R is 0.
  17. normalizarAtr(TAtraso, _, TAtrMax, R):-(TAtraso>TAtrMax),!, R is 1.
  18. normalizarAtr(TAtraso, _, TAtraso, 0):-!.
  19. normalizarAtr(TAtraso, TAtrMin, TAtrMax, R):- R is ((TAtraso- TAtrMin)/(TAtrMax-TAtraso)).
Advertisement
Add Comment
Please, Sign In to add comment