def getCandScoresMapBruteForce(self, profile):
        """
        Returns a dictonary that associates the integer representation of each candidate with the 
        bayesian losses that we calculate using brute force.

        :ivar Profile profile: A Profile object that represents an election profile.
        """

        wmg = profile.getWmg(True)
        m = len(wmg.keys())
        cands = range(m)
        V = self.createBinaryRelation(m)
        gains = dict()
        for cand in wmg.keys():
            gains[cand] = 0
        graphs = itertools.product(range(2), repeat=m*(m-1)/2)
        for comb in graphs:
            prob = 1
            i = 0
            for a, b in itertools.combinations(cands,2):
                V[a][b] = comb[i]
                V[b][a] = 1-comb[i]
                if comb[i] > 0:
                    prob *= 1/(1+self.phi ** float(wmg[a+1][b+1]))
                else:
                    prob *= 1/(1+self.phi ** float(wmg[b+1][a+1]))
                i += 1
                if i >= m*(m-1)/2:
                    break
            for cand in wmg.keys():
                gains[cand] += self.utilityFunction.getUtility([cand], V)*prob
        return gains