Exemplo n.º 1
0
 def test_factorset_marginalize_inplace(self):
     phi1 = Factor(['x1', 'x2', 'x3'], [2, 3, 2], range(12))
     phi2 = Factor(['x3', 'x4', 'x1'], [2, 2, 2], range(8))
     phi3 = Factor(['x5', 'x6', 'x7'], [2, 2, 2], range(8))
     phi4 = Factor(['x5', 'x7', 'x8'], [2, 2, 2], range(8))
     factor_set = FactorSet(phi1, phi2, phi3, phi4)
     factor_set.marginalize(['x1', 'x5'], inplace=True)
     phi1_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == set(['x2', 'x3']),
                factor_set.factors))[0]
     self.assertEqual(phi1.marginalize('x1', inplace=False),
                      phi1_equivalent_in_factor_set)
     phi2_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == set(['x4', 'x3']),
                factor_set.factors))[0]
     self.assertEqual(phi2.marginalize('x1', inplace=False),
                      phi2_equivalent_in_factor_set)
     phi3_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == set(['x6', 'x7']),
                factor_set.factors))[0]
     self.assertEqual(phi3.marginalize('x5', inplace=False),
                      phi3_equivalent_in_factor_set)
     phi4_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == set(['x8', 'x7']),
                factor_set.factors))[0]
     self.assertEqual(phi4.marginalize('x5', inplace=False),
                      phi4_equivalent_in_factor_set)
 def test_factorset_marginalize_inplace(self):
     factor_set = FactorSet(self.phi1, self.phi2, self.phi3, self.phi4)
     factor_set.marginalize(['x1', 'x5'], inplace=True)
     phi1_equivalent_in_factor_set = list(filter(lambda x: set(x.scope()) == {'x2', 'x3'},
                                                 factor_set.factors))[0]
     self.assertEqual(self.phi1.marginalize(['x1'], inplace=False), phi1_equivalent_in_factor_set)
     phi2_equivalent_in_factor_set = list(filter(lambda x: set(x.scope()) == {'x4', 'x3'},
                                                 factor_set.factors))[0]
     self.assertEqual(self.phi2.marginalize(['x1'], inplace=False), phi2_equivalent_in_factor_set)
     phi3_equivalent_in_factor_set = list(filter(lambda x: set(x.scope()) == {'x6', 'x7'},
                                                 factor_set.factors))[0]
     self.assertEqual(self.phi3.marginalize(['x5'], inplace=False), phi3_equivalent_in_factor_set)
     phi4_equivalent_in_factor_set = list(filter(lambda x: set(x.scope()) == {'x8', 'x7'},
                                                 factor_set.factors))[0]
     self.assertEqual(self.phi4.marginalize(['x5'], inplace=False), phi4_equivalent_in_factor_set)
Exemplo n.º 3
0
 def test_factorset_marginalize_inplace(self):
     phi1 = Factor(['x1', 'x2', 'x3'], [2, 3, 2], range(12))
     phi2 = Factor(['x3', 'x4', 'x1'], [2, 2, 2], range(8))
     phi3 = Factor(['x5', 'x6', 'x7'], [2, 2, 2], range(8))
     phi4 = Factor(['x5', 'x7', 'x8'], [2, 2, 2], range(8))
     factor_set = FactorSet(phi1, phi2, phi3, phi4)
     factor_set.marginalize(['x1', 'x5'], inplace=True)
     phi1_equivalent_in_factor_set = list(filter(lambda x: set(x.scope()) == set(['x2', 'x3']),
                                                 factor_set.factors))[0]
     self.assertEqual(phi1.marginalize('x1', inplace=False), phi1_equivalent_in_factor_set)
     phi2_equivalent_in_factor_set = list(filter(lambda x: set(x.scope()) == set(['x4', 'x3']),
                                                 factor_set.factors))[0]
     self.assertEqual(phi2.marginalize('x1', inplace=False), phi2_equivalent_in_factor_set)
     phi3_equivalent_in_factor_set = list(filter(lambda x: set(x.scope()) == set(['x6', 'x7']),
                                                 factor_set.factors))[0]
     self.assertEqual(phi3.marginalize('x5', inplace=False), phi3_equivalent_in_factor_set)
     phi4_equivalent_in_factor_set = list(filter(lambda x: set(x.scope()) == set(['x8', 'x7']),
                                                 factor_set.factors))[0]
     self.assertEqual(phi4.marginalize('x5', inplace=False), phi4_equivalent_in_factor_set)
Exemplo n.º 4
0
 def test_factorset_marginalize_inplace(self):
     factor_set = FactorSet(self.phi1, self.phi2, self.phi3, self.phi4)
     factor_set.marginalize(['x1', 'x5'], inplace=True)
     phi1_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == {'x2', 'x3'},
                factor_set.factors))[0]
     self.assertEqual(self.phi1.marginalize(['x1'], inplace=False),
                      phi1_equivalent_in_factor_set)
     phi2_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == {'x4', 'x3'},
                factor_set.factors))[0]
     self.assertEqual(self.phi2.marginalize(['x1'], inplace=False),
                      phi2_equivalent_in_factor_set)
     phi3_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == {'x6', 'x7'},
                factor_set.factors))[0]
     self.assertEqual(self.phi3.marginalize(['x5'], inplace=False),
                      phi3_equivalent_in_factor_set)
     phi4_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == {'x8', 'x7'},
                factor_set.factors))[0]
     self.assertEqual(self.phi4.marginalize(['x5'], inplace=False),
                      phi4_equivalent_in_factor_set)
Exemplo n.º 5
0
 def test_factorset_marginalize_inplace(self):
     factor_set = FactorSet(self.phi1, self.phi2, self.phi3, self.phi4)
     factor_set.marginalize(["x1", "x5"], inplace=True)
     phi1_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == {"x2", "x3"},
                factor_set.factors))[0]
     self.assertEqual(self.phi1.marginalize(["x1"], inplace=False),
                      phi1_equivalent_in_factor_set)
     phi2_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == {"x4", "x3"},
                factor_set.factors))[0]
     self.assertEqual(self.phi2.marginalize(["x1"], inplace=False),
                      phi2_equivalent_in_factor_set)
     phi3_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == {"x6", "x7"},
                factor_set.factors))[0]
     self.assertEqual(self.phi3.marginalize(["x5"], inplace=False),
                      phi3_equivalent_in_factor_set)
     phi4_equivalent_in_factor_set = list(
         filter(lambda x: set(x.scope()) == {"x8", "x7"},
                factor_set.factors))[0]
     self.assertEqual(self.phi4.marginalize(["x5"], inplace=False),
                      phi4_equivalent_in_factor_set)