コード例 #1
0
 def test_personaSubeAscensor(self):
     ascensor1 = Ascensor([10, 10, 10])
     ascensor2 = Ascensor([10, 10, 10])
     tLlegadas = [5, 20, 30]
     sistema = Sistema(ascensor1, ascensor2, tLlegadas)
     sistema.personaSubeAscensor(ascensor1)
     self.assertEqual(sistema.tLlegadas, [20, 30])
     self.assertFalse(ascensor1.estado)
     self.assertEqual(len(sistema.personas), 1)
     self.assertEqual(sistema.personas[0].tLlegada, 5)
     self.assertEqual(ascensor1.tFinal, 15)
コード例 #2
0
class PruebaPrincipal(unittest.TestCase):
    def setUp(self):
        self.ascensor1 = Ascensor([20, 15, 20])
        self.ascensor2 = Ascensor([20, 10])
        self.tLlegadas = [0, 5, 7.5, 9, 11, 13, 16, 19, 30, 45]
        self.sistema = Sistema(self.ascensor1, self.ascensor2, self.tLlegadas)

    def test(self):
        self.sistema.relizarSimulacion()
        self.sistema.escribirResultados()
        self.assertEqual(len(self.sistema.resultadosSimulacion), 15)
        self.assertEqual(self.sistema.tLlegadas, [])
        self.assertEqual(self.ascensor1.tServicios, [])
        print(self.ascensor1.estado)

    def tearDown(self):
        del (self.sistema)
コード例 #3
0
 def test_crearSistema(self):
     ascensor1 = Ascensor([10, 10, 10])
     ascensor2 = Ascensor([10, 10, 10])
     tLlegadas = [5, 20, 30]
     sistema = Sistema(ascensor1, ascensor2, tLlegadas)
     self.assertEqual(sistema.ascensor1, ascensor1)
     self.assertEqual(sistema.ascensor2, ascensor2)
     self.assertEqual(sistema.tLlegadas, [5, 20, 30])
コード例 #4
0
 def test_realizarSimulacion(self):
     ascensor1 = Ascensor([10])
     ascensor2 = Ascensor([10])
     tLlegadas = [5]
     sistema = Sistema(ascensor1, ascensor2, tLlegadas)
     sistema.relizarSimulacion()
     self.assertEqual(sistema.tLlegadas, [])
     self.assertTrue(ascensor1.estado)
     self.assertEqual(len(sistema.personas), 1)
     self.assertEqual(sistema.personas[0].tLlegada, 5)
     self.assertEqual(ascensor1.tFinal, 15)
     sistema.escribirResultados()
コード例 #5
0
    def __init__(self, plan_dados, path, time):
        
        # carrega a planilha e recebe o caminho dela
        self.recebe_dados = RecebeDados(plan_dados);
        self.caminho = path;
        self.planilha = plan_dados;
        self.start = time;

        # carrega as configuracoes iniciais da planilha
        print("Carregando Dados");
        self.carregaInicio();

        # inicializa o sistema
        self.sin = Sistema(self.recebe_dados, self.tipoCombHidroEol);
        print("Carregando Problema");

        self.imprimeSeriesHidro();
 
        # cria o problema passando os parametros do carregaInicio
        self.problema = Problema(self.recebe_dados, self.sin, self.isRestPotHabilitada, self.isRestExpJanHabilitada, self.isPerpetHabilitada, self.fatorCarga, self.anoValidadeTemp, self.fatorValidadeTemp, self.isIntercambLimitado, self.subsFic);
        
        # habilita o cplex
        optsolver = SolverFactory("cplex", executable= "C:\\ILOG\\CPLEX_Studio122\\cplex\\bin\\x64_win64\\cplex.exe");
        print ("Modelo Criado");
        self.problema.modelo.preprocess();
        print ("Pre-process executado");
        
        #Configuracoes do solver
        optsolver.options['mipgap'] = 0.005;
        optsolver.options['mip_strategy_startalgorithm'] = 4;
        optsolver.options['lpmethod'] = 4;
        optsolver.options['parallel'] = 1;


        print("Executando o CPLEX");

        results = optsolver.solve(self.problema.modelo, load_solutions=True); #, symbolic_solver_labels=True, tee=True);

        print("Impressão de Resultados");
        # escreve resultados em um txt
        with open(self.caminho + "resultado.txt", "w") as saidaResul:
            results.write(ostream=saidaResul);
            
        # inicializa o objeto de saida de dados
        self.saida_dados = SaidaDados(self.sin, self.problema, self.caminho, self.planilha, self.pastaCod, self.nomeSubs);

        # inicializa o objeto de saidas para o newave
        self.saida_newave = SaidaNewave(self.sin, self.problema, self.caminho, self.numSubs, self.subsNFic);
        
        # relaxa o problema
        self.problema.relaxar();

        # chama o metodo para limpar os duais da planilha
        with suppress(Exception):
            self.saida_dados.limparDuais();
        
            # faz a preparacao e impressao dos duais escolhidos atraves da aba inicial na planilha
            # a letra passada como parametro eh um indicativo de qual dual deve ser impresso
            if self.isImpresso[0]:
                print("Resolvendo problema relaxado para Dual de Energia");
                self.problema.prepararDualEnergia();
                results = optsolver.solve(self.problema.modelo, load_solutions=True, warmstart=True);#, symbolic_solver_labels=True, tee=True);
                self.saida_dados.imprimeDuais("E");
            if self.isImpresso[1]:
                print("Resolvendo problema relaxado para Dual de Potencia");
                self.problema.prepararDualPotencia();
                results = optsolver.solve(self.problema.modelo, load_solutions=True, warmstart=True);#, symbolic_solver_labels=True, tee=True);
                self.saida_dados.imprimeDuais("P");
            if self.isImpresso[2]:
                print("Resolvendo problema relaxado para Dual Duplo");
                self.problema.prepararDualDuplo();
                results = optsolver.solve(self.problema.modelo, load_solutions=True, warmstart=True);#, symbolic_solver_labels=True, tee=True);
                self.saida_dados.imprimeDuais("D");
            
        self.saida_dados.imprimeLog(tempo_inicial = self.start);

        return;
コード例 #6
0
from Conexion import Conexion
from flask import Flask
from flask import render_template, request, jsonify
from Sistema import Sistema
from flask_cors import CORS
from Excepciones import UniqueViolation

app = Flask(__name__)
cors = CORS(app)

db = Sistema()


def usuarioExiste(usuario):
    """retorna True si el usuario existe en la base de datos"""
    try:
        if db.login(usuario):
            return True
        else:
            return False
    except Exception as e:
        print('Exception usuarioExiste')
    finally:
        pass


def esUsuarioValido(usuario, clave):
    """retorna True si las credenciales del usuario coinciden con las registradas en la base de datos"""
    try:
        if db.login(usuario)[0][0] == clave:
            return True
コード例 #7
0
 def setUp(self):
     self.ascensor1 = Ascensor([20, 15, 20])
     self.ascensor2 = Ascensor([20, 10])
     self.tLlegadas = [0, 5, 7.5, 9, 11, 13, 16, 19, 30, 45]
     self.sistema = Sistema(self.ascensor1, self.ascensor2, self.tLlegadas)
コード例 #8
0
import json
import datetime
from Aviones import Avion
from Personas import *
from Vuelo import Vuelo
from Sistema import Sistema
from Funciones import *
from flask import Flask, render_template

app = Flask(__name__)

sistema = Sistema()
listaAviones = []
listaPilotos = []
listaServicios = []
listaPasajeros = []
listaVuelos = []

with open("datos.json", "r") as f:
    archivoDiccionario = json.loads(f.read())

for item in archivoDiccionario["Aviones"]:
    avionAux = Avion()
    avionAux.deserealizar(item)
    listaAviones.append(avionAux)

for item in archivoDiccionario["Personas"]:
    personaAux = eval(item["tipo"])()

    if personaAux.__class__.__name__ == "Servicio" or personaAux.__class__.__name__ == "Piloto":
        personaAux.deserealizar(item, listaAviones)
コード例 #9
0
        (xp1, xp2) = metodoBoxMuller(media, desvEstand)
        resultado.append(xp1)
        resultado.append(xp2)
    if n % 2 == 0:
        return resultado
    else:
        (xp1, xp2) = metodoBoxMuller(media, desvEstand)
        resultado.append(xp1)
        return resultado


def calcularTiempoEntreLlegadas(tEntreLlegadas):
    """Agregar DOC"""
    tLlegadas = [tEntreLlegadas[0]]
    for i in range(len(tEntreLlegadas) - 1):
        tLlegadas.append(tEntreLlegadas[i] + tEntreLlegadas[i + 1])
    return tLlegadas


if __name__ == "__main__":
    numUsuarios = int(input("Inserte numero de personas a simular: "))
    tEntreLlegadas = generarTiempoEntreLlegadas(numUsuarios)
    tServicios1 = generarTiempoDeServicioNormal(numUsuarios)
    tServicios2 = generarTiempoDeServicioLognormal(numUsuarios)
    ascensor1 = Ascensor(tServicios1)
    ascensor2 = Ascensor(tServicios2)
    tLlegadas = calcularTiempoEntreLlegadas(tEntreLlegadas)
    sistema = Sistema(ascensor1, ascensor2, tLlegadas)
    sistema.relizarSimulacion()
    sistema.escribirResultados()
コード例 #10
0
    return df


#pega o caminho da pasta e o nome do xls de entrada
if len(sys.argv) > 1:
    caminho = sys.argv[1] + "\\"
    planilha = sys.argv[2]
else:
    caminho = "X:\\SGE-PR~1\\02-EST~1\\33-PRO~1\\Python\\dev\\TESTE_~1\\"
    planilha = "X:\\SGE-PR~1\\02-EST~1\\33-PRO~1\\Python\\dev\\TESTE_~1\\MODELO~1.XLS"

print("Carregando dados de Entrada do MDI ...")

# carrega os dados de entrada
recebe_dados = RecebeDados(planilha)
sin = Sistema(recebe_dados, "completa")

# pega informacoes inidicias
recebe_dados.defineAba("Inicial")
pastacod = str(recebe_dados.pegaEscalar("G7"))

print("Carregando saidas ...")

# carrega os dados de saida de expansao
df = preparaDF(caminho + "saidaExpansao.txt")
dfUHE = pd.read_csv(caminho + "saidaExpansaoBinaria.txt",
                    delimiter=" ",
                    encoding="ISO-8859-1",
                    header=None,
                    skiprows=1)
dfUHE.columns = ['codNW', 'none1', 'none2', 'iper']
コード例 #11
0
from Sistema import Sistema
from Persona import Persona
from Vuelo import Vuelo
from Avion import Avion
from PasajeroH import Pasajero
from PilotoH import Piloto
from ServicioH import Servicio

A = Sistema()
A.cargarArchivoAvion('datos.json')
A.cargarArchivoPersona('datos.json')
A.cargarArchivoVuelo('datos.json')

#print (A.lista_personas)
#print (A.lista_aviones)
#print (A.lista_vuelos)

print("\n--------------------------------")

print("\n1) Nomina de personas por vuelo:\n")

for item in A.lista_vuelos:

    print(item.origen + "-" + item.destino + " :")

    for item2 in item.imprimirListaPasajeros():

        print(item2.nombre + " " + item2.apellido)

    print("\n")
コード例 #12
0
from Sistema import Sistema

sistema = Sistema()
sistema.iniciarSistema()
sistema.chamarProtocolo()