public Optimizador(Itinerario itinerario_base, ParametrosSimuLAN parametros, ModeloDisrupciones disrupciones, List <int> stds, int std_objetivo, DateTime fechaIni, DateTime fechaFin, int variacion_permitida) { this.ItinerarioBase = itinerario_base; this.Parametros = parametros; this.Disrupciones = disrupciones; this._stds = stds; this._variacion_permitida = variacion_permitida; this._fecha_ini = fechaIni; this._fecha_fin = fechaFin; this._tramos_optimizacion = new OrganizadorTramos(itinerario_base, variacion_permitida); this._salto_variaciones = 5; this._log_info_optimizacion = new LogOptimizacion(); this._std_objetivo = std_objetivo; this._marcador = DateTime.Now; this._tiempo_simulacion = TimeSpan.Zero; this._tiempo_optimizacion = TimeSpan.Zero; }
internal void VolverAEstadoDeMenorAtrasoPropagado(LogOptimizacion log_proceso) { foreach (string id_avion in _tramos_por_avion.Keys) { FaseOptimizacion mejor_fase; int mejor_iteracion; ObtenerIteracionDeMenorAtraso(log_proceso.HistorialImpuntualidad, id_avion, out mejor_fase, out mejor_iteracion); foreach (InfoTramoParaOptimizacion tramo in _tramos_por_avion[id_avion]) { int id_tramo = tramo.IdTramo; if (log_proceso.HistorialVariaciones.ContainsKey(mejor_fase) && log_proceso.HistorialVariaciones[mejor_fase].ContainsKey(mejor_iteracion)) { tramo.VariacionAplicada = log_proceso.HistorialVariaciones[mejor_fase][mejor_iteracion][id_tramo]; } else { tramo.VariacionAplicada = 0; } } } }