Пример #1
0
	def system_configuration_generator(self, case, first_suffix):
		for qual in [AllCoveredMinusIgnored]: # NewCoveredMinusIgnored
			for rev in [RevCIAddR]: # RevCIAddB
				for threshold_addit_mods in [4]: #2, , 8
					for stop_threshold in [8]: #2, 4, 

						suffix = 'conf%s_%s' % (self.get_suffix((qual, rev, threshold_addit_mods, stop_threshold)), first_suffix)

						archive_ = Archive()
						archive_.mnm_compartments = self.compartments # added access to all compartments
						archive_.model_of_ref = case['model_of_ref']

						# recording entities with proper IDs: base versions and derived versions
						# these entities were involved in producing new versions and are handled below, not here
						entities_to_skip = list(case['ents_base_and_derived'].keys())
						for list_of_ents in case['ents_base_and_derived'].values():
							entities_to_skip.extend(list_of_ents)

						for ent in case['all_entities']:
							if ent in entities_to_skip:
								continue
							# not-skipped activities:
							ent.ID = archive_.get_new_ent_id()
							archive_.mnm_entities.append(ent)

						for ent in case['ents_base_and_derived'].keys():
							derv_ents = case['ents_base_and_derived'][ent]# need to copy this now, dictionary stops working after ID change
							ent.ID = archive_.get_new_ent_id()
							archive_.mnm_entities.append(ent)
							for derv_ent in derv_ents:
								derv_ent.ID = ent.ID
								archive_.mnm_entities.append(derv_ent)

						for act in case['all_activities']:
							act.ID = archive_.get_new_act_id()
							archive_.mnm_activities.append(act)

						for act in case['add_import_activities']:
							act.ID = archive_.get_new_act_id()
							archive_.import_activities.append(act)
		
						archive_.record(InitialModels(case['initial_models']))

						qual_m = qual(archive_)
						rev_m = rev(archive_, sfx=suffix)

						cost_model = CostModel(case['all_entities'],
							self.compartments, case['all_activities'],
							case['model_of_ref'].setup_conditions,
							case['add_import_activities'])
						cost_model.set_all_basic_costs_to_1()
						cost_model.calculate_derived_costs(case['all_activities'])
						cost_model.remove_None_valued_elements()

						exp_m = BasicExpModuleWithCosts(archive_, cost_model, sfx=suffix) # !!!!! switched from no costs
						oracle_ = Oracle(archive_, case['entities_ref'],
							case['activities_ref'], case['model_of_ref'],
							case['all_entities'], self.compartments,
							case['all_activities'], sfx=suffix)

						max_numb_cycles = 1000 # 
						max_time = 4 # 

						yield OverseerWithModQuality(archive_, rev_m, exp_m,
							oracle_, threshold_addit_mods, qual_m, max_numb_cycles,
							max_time, suffix, stop_threshold)
Пример #2
0
                                continue
                            # not-skipped activities:
                            ent.ID = archive_.get_new_ent_id()
                            archive_.mnm_entities.append(ent)

                        for ent in case['ents_base_and_derived'].keys():
                            # need to copy this now, dictionary stops working after ID change:
                            derv_ents = case['ents_base_and_derived'][ent]
                            ent.ID = archive_.get_new_ent_id()
                            archive_.mnm_entities.append(ent)
                            for derv_ent in derv_ents:
                                derv_ent.ID = ent.ID
                                archive_.mnm_entities.append(derv_ent)

                        for act in case['all_activities']:
                            act.ID = archive_.get_new_act_id()
                            archive_.mnm_activities.append(act)

                        for act in case['add_import_activities']:
                            act.ID = archive_.get_new_act_id()
                            archive_.import_activities.append(act)

# if you want to print reverible activities:
#						for act in archive_.mnm_activities + archive_.import_activities:
#							print(act.reversibility)

                        archive_.record(InitialModels(case['initial_models']))

                        qual_m = qual(archive_)
                        rev_m = rev(archive_, sfx=suffix)