コード例 #1
0
ファイル: game.py プロジェクト: awoziji/Ambulance-Dispatching
    def findEquilibria(self, method='CMAES'):
        """
        Find all equilibria, using method

        :param method: of computing equilibria
        :type method: str, one of Game.METHODS
        :return: list of NE, if not found returns None
        :rtype: list of StrategyProfile
        """
        if method == 'pne':
            result = self.getPNE()
            if len(result) == 0:
                return None
            else:
                return result
        elif self.num_players == 2 and method == 'support_enumeration':
            result = support_enumeration.computeNE(self)
            self.degenerate = self.isDegenerate()
            if len(result) == 0:
                return None
            else:
                return result
        elif method == 'CMAES':
            result = cmaes.fmin(self.LyapunovFunction, self.sum_shape)
        elif method in self.METHODS:
            result = scipy.optimize.minimize(self.LyapunovFunction,
                                             np.random.rand(self.sum_shape),
                                             method=method, tol=1e-10,
                                             options={"maxiter": 1e3 * self.sum_shape ** 2})
        logging.info(result)
        if result.success:
            r = [sp.StrategyProfile(result.x, self.shape)]
            return r
        else:
            return None
コード例 #2
0
ファイル: game.py プロジェクト: Artimi/neng
    def findEquilibria(self, method='CMAES'):
        """
        Find all equilibria, using method

        :param method: of computing equilibria
        :type method: str, one of Game.METHODS
        :return: list of NE, if not found returns None
        :rtype: list of StrategyProfile
        """
        if method == 'pne':
            result = self.getPNE()
            if len(result) == 0:
                return None
            else:
                return result
        elif self.num_players == 2 and method == 'support_enumeration':
            result = support_enumeration.computeNE(self)
            self.degenerate = self.isDegenerate()
            if len(result) == 0:
                return None
            else:
                return result
        elif method == 'CMAES':
            result = cmaes.fmin(self.LyapunovFunction, self.sum_shape)
        elif method in self.METHODS:
            result = scipy.optimize.minimize(self.LyapunovFunction,
                                             np.random.rand(self.sum_shape),
                                             method=method, tol=1e-10,
                                             options={"maxiter": 1e3 * self.sum_shape ** 2})
        logging.info(result)
        if result.success:
            r = [sp.StrategyProfile(result.x, self.shape)]
            return r
        else:
            return None
コード例 #3
0
ファイル: game.py プロジェクト: Artimi/neng-bp
    def findEquilibria(self, method='CMAES'):
        """
        Find all equilibria, using method

        @params method method from Game.METHODS to be used
        @return list of NE(list of probabilities), if not found return None
        """
        if method == 'pne':
            result = self.getPNE()
            if len(result) == 0:
                return None
            else:
                return result
        elif self.num_players == 2 and method == 'support_enumeration':
            result = support_enumeration.computeNE(self)
            if len(result) == 0:
                return None
            else:
                return result
        elif method == 'CMAES':
            result = cmaes.fmin(self.LyapunovFunction, self.sum_shape)
        elif method in self.METHODS:
            result = scipy.optimize.minimize(self.LyapunovFunction,
                                             np.random.rand(self.sum_shape),
                                             method=method, tol=1e-10,
                                             options={"maxiter":1e3 * self.sum_shape ** 2})
        logging.info(result)
        if result.success:
            r = []
            r.append(result.x)
            return r
        else:
            return None