Ejemplo n.º 1
0
        public IEnumerable <Instance> GenerateInstances(Prescription prescription, string prescriptionPath)
        {
            this.prescription            = prescription;
            this.specializedPrescription = JObject
                                           .FromObject(prescription.SpecializedPrescription)
                                           .ToObject <SpecializedPrescription>();
            this.random = this.prescription.RandomSeed.HasValue ?
                          new Random(this.prescription.RandomSeed.Value) : new Random();


            foreach (var stateDiagramKind in this.specializedPrescription.StateDiagrams)
            {
                IStateDiagram stateDiagram = null;
                switch (stateDiagramKind)
                {
                case StateDiagramKind.Aghelinejad2017a:
                    stateDiagram = new StateDiagrams.Aghelinejad2017a();
                    break;

                case StateDiagramKind.Benedikt2020aTwosby:
                    stateDiagram = new StateDiagrams.Benedikt2020aTwosby();
                    break;
                }

                foreach (var repetition in Enumerable.Range(0, this.prescription.RepetitionsCount))
                {
                    foreach (var jobsCount in this.specializedPrescription.JobsCounts)
                    {
                        foreach (var maxProcessingTime in this.specializedPrescription.MaxProcessingTime)
                        {
                            foreach (var instance in this.GenerateInstances(
                                         repetition: repetition,
                                         jobsCount: jobsCount,
                                         maxProcessingTime: maxProcessingTime,
                                         stateDiagram: stateDiagram))
                            {
                                yield return(instance);
                            }
                        }
                    }
                }
            }
        }
        public IEnumerable <Instance> GenerateInstances(Prescription prescription, string prescriptionPath)
        {
            this.prescription            = prescription;
            this.specializedPrescription = JObject
                                           .FromObject(prescription.SpecializedPrescription)
                                           .ToObject <SpecializedPrescription>();
            this.random = this.prescription.RandomSeed.HasValue ?
                          new Random(this.prescription.RandomSeed.Value) : new Random();

            foreach (var instanceSize in this.specializedPrescription.InstanceSizes)
            {
                foreach (var repetition in Enumerable.Range(0, this.prescription.RepetitionsCount))
                {
                    yield return(this.GenerateInstance(
                                     instanceSize,
                                     repetition));
                }
            }
        }