def print_minimum(self):
        self.info('print_minimum:')
        connections = self.compute_connections(only_close_enough=False)

        self.show_connections(connections, 'all of them')

        nodes1 = list(self.tree1.G.nodes())
        nodes2 = list(self.tree2.G.nodes())

        # TODO: do not compute all of this
        Db = construct_matrix_iterators((nodes1, nodes2),
                                        lambda n1, n2: self.distance(n1, n2))
        Dp = construct_matrix_iterators(
            (nodes1, nodes2), lambda n1, n2: self.distance_prediction(n1, n2))
        Db_min, m = md_argmin(Db)
        n1 = nodes1[m[0]]
        n2 = nodes2[m[1]]
        assert_allclose(Db_min, self.distance(n1, n2))
        self.info('Minimum distance_branch: %g between %s and %s' %
                  (Db_min, self.tree1.node_friendly(n1),
                   self.tree2.node_friendly(n2)))

        Dp_min, m = md_argmin(Dp)
        n1 = nodes1[m[0]]
        n2 = nodes2[m[1]]
        assert_allclose(Dp_min, self.distance_prediction(n1, n2))
        self.info('Minimum distance_prediction: %g between %s and %s' %
                  (Dp_min, self.tree1.node_friendly(n1),
                   self.tree2.node_friendly(n2)))
    def print_minimum(self):
        self.info('print_minimum:')
        connections = self.compute_connections(only_close_enough=False)
        
        self.show_connections(connections, 'all of them')    
    
        nodes1 = list(self.tree1.G.nodes())
        nodes2 = list(self.tree2.G.nodes())
        
        # TODO: do not compute all of this
        Db = construct_matrix_iterators((nodes1, nodes2),
                                       lambda n1, n2: self.distance(n1, n2))
        Dp = construct_matrix_iterators((nodes1, nodes2),
                                       lambda n1, n2: self.distance_prediction(n1, n2))
        Db_min, m = md_argmin(Db)
        n1 = nodes1[m[0]]                    
        n2 = nodes2[m[1]]
        assert_allclose(Db_min, self.distance(n1, n2)) 
        self.info('Minimum distance_branch: %g between %s and %s' % 
                  (Db_min, self.tree1.node_friendly(n1),
                            self.tree2.node_friendly(n2)))

        Dp_min, m = md_argmin(Dp)
        n1 = nodes1[m[0]]                    
        n2 = nodes2[m[1]]
        assert_allclose(Dp_min, self.distance_prediction(n1, n2))
        self.info('Minimum distance_prediction: %g between %s and %s' % 
                  (Dp_min, self.tree1.node_friendly(n1),
                           self.tree2.node_friendly(n2)))
 def get_distance_matrix(self, plans, action_distance):
     D_ij = lambda p1, p2: action_distance(
                                         self.plan2action(p1),
                                         self.plan2action(p2))
     D = construct_matrix_iterators((plans, plans), D_ij)
     return plans, D                         
Beispiel #4
0
 def get_distance_matrix(self, plans, action_distance):
     D_ij = lambda p1, p2: action_distance(self.plan2action(p1),
                                           self.plan2action(p2))
     D = construct_matrix_iterators((plans, plans), D_ij)
     return plans, D