Exemplo n.º 1
0
    def __init__(self, relations,
                 before_dist_1_beginning_dist_2_beginning, same_dist_1_beginning_dist_2_beginning,
                 before_dist_1_beginning_dist_2_ending, same_dist_1_beginning_dist_2_ending,
                 before_dist_1_ending_dist_2_beginning, same_dist_1_ending_dist_2_beginning,
                 before_dist_1_ending_dist_2_ending, same_dist_1_ending_dist_2_ending):
        self.relations = relations

        self[dist_1_beginning, dist_2_beginning] = (
            before_dist_1_beginning_dist_2_beginning,
            same_dist_1_beginning_dist_2_beginning
        )
        self[dist_1_beginning, dist_2_ending] = (
            before_dist_1_beginning_dist_2_ending,
            same_dist_1_beginning_dist_2_ending
        )
        self[dist_1_ending, dist_2_beginning] = (
            before_dist_1_ending_dist_2_beginning,
            same_dist_1_ending_dist_2_beginning
        )
        self[dist_1_ending, dist_2_ending] = (
            before_dist_1_ending_dist_2_ending,
            same_dist_1_ending_dist_2_ending
        )

        self.formula = FormulaCreator(self)
Exemplo n.º 2
0
class Individual(dict):
    combinations = [
        (dist_1_beginning, dist_2_beginning),
        (dist_1_beginning, dist_2_ending),
        (dist_1_ending, dist_2_beginning),
        (dist_1_ending, dist_2_ending)
    ]

    def __init__(self, relations,
                 before_dist_1_beginning_dist_2_beginning, same_dist_1_beginning_dist_2_beginning,
                 before_dist_1_beginning_dist_2_ending, same_dist_1_beginning_dist_2_ending,
                 before_dist_1_ending_dist_2_beginning, same_dist_1_ending_dist_2_beginning,
                 before_dist_1_ending_dist_2_ending, same_dist_1_ending_dist_2_ending):
        self.relations = relations

        self[dist_1_beginning, dist_2_beginning] = (
            before_dist_1_beginning_dist_2_beginning,
            same_dist_1_beginning_dist_2_beginning
        )
        self[dist_1_beginning, dist_2_ending] = (
            before_dist_1_beginning_dist_2_ending,
            same_dist_1_beginning_dist_2_ending
        )
        self[dist_1_ending, dist_2_beginning] = (
            before_dist_1_ending_dist_2_beginning,
            same_dist_1_ending_dist_2_beginning
        )
        self[dist_1_ending, dist_2_ending] = (
            before_dist_1_ending_dist_2_ending,
            same_dist_1_ending_dist_2_ending
        )

        self.formula = FormulaCreator(self)
    
    def compare(self, dist_1_key=dist_1_beginning, dist_2_key=dist_2_beginning):
        before, same = self[dist_1_key, dist_2_key]
        return before, same, 1 - before

    def fitness(self):
        actual = self.relations
        approximation = self.formula.calculate_relations()
        goal, solution = [], []
        for relation in all_relations:
            goal.append(actual[relation])
            solution.append(approximation[relation])

        goal, solution = np.array(goal), np.array(solution)
        return np.linalg.norm(goal - solution)
Exemplo n.º 3
0
    def get_composition_data(self):
        data = []
        for key in self.combinations:
            before, same, after = self.compare(*key)
            data.append(before)
            data.append(same)
        return data

    def check(self):
        from spatiotemporal.temporal_events import FormulaCreator

        print self.data
        print FormulaCreator(self).calculate_relations().to_vector()
        print


if __name__ == "__main__":
    from spatiotemporal.temporal_events import FormulaCreator
    from spatiotemporal.temporal_events.trapezium import generate_random_events

    for i in xrange(50):
        A, B = generate_random_events(2)
        relations = A * B
        formula = FormulaCreator(DecompositionFitter(relations))
        print relations.to_list()
        relations_estimate = formula.calculate_relations()
        print relations_estimate.to_list()
        print relations.to_vector() - relations_estimate.to_vector()
        print
 def check(self):
     from spatiotemporal.temporal_events import FormulaCreator
     print self.data
     print FormulaCreator(self).calculate_relations().to_vector()
     print
        data = []
        for key in self.combinations:
            before, same, after = self.compare(*key)
            data.append(before)
            data.append(same)
        return data

    def check(self):
        from spatiotemporal.temporal_events import FormulaCreator
        print self.data
        print FormulaCreator(self).calculate_relations().to_vector()
        print

if __name__ == '__main__':
    from spatiotemporal.temporal_events import FormulaCreator
    from spatiotemporal.temporal_events.trapezium import generate_random_events
    for i in xrange(50):
        A, B = generate_random_events(2)
        relations = A * B
        print relations.to_list()

        # from the 13 relations, learns parameters for all combinations of the
        # before, same, and after relationships between the beginning and
        # ending distributions of the two intervals
        formula = FormulaCreator(DecompositionFitter(relations))
        # from these relationships, computes the 13 relations again
        relations_estimate = formula.calculate_relations()
        print relations_estimate.to_list()
        print relations.to_vector() - relations_estimate.to_vector()
        print