微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

合适的元启发式优化方法来解决问题

如何解决合适的元启发式优化方法来解决问题

我是优化方法的新手,我想通过应用一种优化方法解决问题,以实践该方法,但是我不知道从何入手。我将在文件https://gitlab.com/Schrodinger168/practice/-/blob/master/A_08.json中找到csv( A_08.json 文件中的问题:

-对于资源,例如, Ressources_X 此处的 X 可以是1到9之间的值。所有 Ressource_X 具有需要作为最终解决方案的 min max 值(将说below0不能小于 min 并且大于所有 Ressources_X 中每天的 max

  • 对于季节,有冬天夏天 ...,每个数字对应在那些季节中,例如,指的是冬季的日期,从第一天到第13天定义为其他日期。

  • 对于干预,有 Intervention_X ,其相应的工作负载包含必须使用的 Ressources_X Delta Intervention_X 的持续时间,例如,我们可以在 Intervention_625 中将其作为 Delta 列表为 1.0 ,这意味着如果 Intervention_625 从第1天开始,则它需要在同一天结束,因为其第1天的Delta值是 1.0 ,依此类推...等等。每个 Intervention_X 都有自己的 tmax ,例如 Intervention_625 tmax 相等到 17 表示它可以根据需要在第1天到第17天之间开始,而其他 Intervention_X 的另一个 tmax 表示相同。

  • 对于排除,有一些例外情况,例如:

“ E141 [” Intervention_315“,” Intervention_456“,”夏季“] 表示 Intervention_315 Intervention_456 不能同时开始夏季的一天,其他的意思相同。

  • T 是此处的总持续时间, T = 17 ,表示持续时间为17天

  • 我要生成解决方案是干预的名称以及每个干预的开始日期(t1,t2 ..),例如:

Intervention_X t1

Intervention_Y t2

以此类推...直到所有干预措施都用完,因为它们将只使用一次。

并且这些解决方案将确保它遵守每天使用资源(最小,最大)排除的条件,并且完成日期可以为 T + 1 (最大)。

这是我的代码,如果需要,可以访问csv文件的每个节点和值:

class access_json:

    def __init__(self):
        self._resources = dict()
        self._seasons = dict()
        self._interventions = dict()
        self._exclusions = dict()
        
        self._NRESOURCES = 0
        self._NINTERVENTIONS = 0
        self._list_resources = list()
        self._list_interventions = list()
        
        self._T = 0
        self._senariosNumber = []
        self._quantile = 0
        self._alpha = 0
        
    def loadjson(self,fpath: str):
        js = dict()
        with open(fpath,'r') as f:
            js = json.load(f)
        
        self._resources = js["Resources"]
        self._NRESOURCES = len(self._resources)
        self._list_resources = list(self._resources.keys())
        self._seasons = js["Seasons"]
        self._interventions = js["Interventions"]
        self._NINTERVENTIONS = len(self._interventions)
        self._list_interventions = list(self._interventions.keys())
        self._exclusions = js["Exclusions"]
        
        self._T = js["T"]
        self._senarios_number = js["Scenarios_number"]
        self._quantile = js["Quantile"]
        self._alpha = js["Alpha"]   

任何有关代码的帮助,以及如何针对此问题应用优化方法的建议,将不胜感激。谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。