示例#1
0
    def animate(self, t):
        interval = self.interval
        B = TemporalEventTrapezium(interval[t], interval[t] + self.event_b_length_total,
                                   interval[t] + self.event_b_length_beginning,
                                   interval[t] + self.event_b_length_middle)
        plt.figure()
        B.plot().show()
        a_b = (self.event_a * B).to_list()
        b_c = (B * self.event_c).to_list()
        self.line_b.set_data(B, B.membership_function)
        artists = []
        for rect, h in zip(self.rects_a_b, a_b):
            rect.set_height(h)
            artists.append(rect)

        for rect, h in zip(self.rects_b_c, b_c):
            rect.set_height(h)
            artists.append(rect)

        artists.append(self.line_a)
        artists.append(self.line_b)
        artists.append(self.line_c)
        return artists
示例#2
0
    def animate(self, t):
        interval = self.interval
        B = TemporalEventTrapezium(interval[t],
                                   interval[t] + self.event_b_length_total,
                                   interval[t] + self.event_b_length_beginning,
                                   interval[t] + self.event_b_length_middle)
        plt.figure()
        B.plot().show()
        a_b = (self.event_a * B).to_list()
        b_c = (B * self.event_c).to_list()
        self.line_b.set_data(B, B.membership_function)
        artists = []
        for rect, h in zip(self.rects_a_b, a_b):
            rect.set_height(h)
            artists.append(rect)

        for rect, h in zip(self.rects_b_c, b_c):
            rect.set_height(h)
            artists.append(rect)

        artists.append(self.line_a)
        artists.append(self.line_b)
        artists.append(self.line_c)
        return artists
示例#3
0
文件: demo.py 项目: AdolphLua/opencog
from spatiotemporal.temporal_events.trapezium import TemporalEventTrapezium
from spatiotemporal.temporal_events.relation_formulas import FormulaCreator
from spatiotemporal.temporal_events.composition.non_linear_least_squares import DecompositionFitter

import matplotlib.pyplot as plt


all_relations = "pmoFDseSdfOMP"

a = TemporalEventTrapezium(1, 12, 4, 8)
b = TemporalEventTrapezium(9, 17, 13, 15)

# compute relations between events
temporal_relations = a * b
print("Relations: {0}".format(temporal_relations.to_list()))
# print degree for every relation
for relation in all_relations:
    print(relation, temporal_relations[relation])

# plot events
a.plot(show_distributions=True).ylim(ymin=-0.1, ymax=1.1)
b.plot(show_distributions=True).figure()
plt.show()

# 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(temporal_relations))
# from these relationships, computes the 13 relations again
relations_estimate = formula.calculate_relations()
print("Estimated relations: {0}".format(relations_estimate.to_list()))
示例#4
0
from spatiotemporal.temporal_events.trapezium import TemporalEventTrapezium
from spatiotemporal.temporal_events.relation_formulas import FormulaCreator
from spatiotemporal.temporal_events.composition.non_linear_least_squares import DecompositionFitter

import matplotlib.pyplot as plt

all_relations = "pmoFDseSdfOMP"

a = TemporalEventTrapezium(1, 12, 4, 8)
b = TemporalEventTrapezium(9, 17, 13, 15)

# compute relations between events
temporal_relations = a * b
print("Relations: {0}".format(temporal_relations.to_list()))
# print degree for every relation
for relation in all_relations:
    print(relation, temporal_relations[relation])

# plot events
a.plot(show_distributions=True).ylim(ymin=-0.1, ymax=1.1)
b.plot(show_distributions=True).figure()
plt.show()

# 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(temporal_relations))
# from these relationships, computes the 13 relations again
relations_estimate = formula.calculate_relations()
print("Estimated relations: {0}".format(relations_estimate.to_list()))
    # f = CombinationFormulaGeometricMeanTrapezium()
    # rf = RelationFormulaGeometricMean()
    # a, b_beg, b_end = uniform(5, 2), uniform(1, 3), uniform(8, 4)
    # [a_h], b_end_h = f.unpack(rf.compare(a, b_beg), rf.compare(a, b_end))
    #
    # print a_h.args, b_end_h.args
    # print rf.compare(a, b_beg), rf.compare(a, b_end)
    # print rf.compare(a_h, uniform_reference), rf.compare(a_h, b_end_h)
    #
    # quit()

    A = TemporalEventTrapezium(2, 7, 5, 6)
    B = TemporalEventTrapezium(1, 6, 3, 4)
    C = TemporalEventTrapezium(0, 9, 7, 8)

    f = CombinationFormulaGeometricMeanTrapezium()
    rf = RelationFormulaGeometricMean()
    # print rf.compare(f.unpack((1, 0, 0))[0], uniform(0, 1))

    A_, B_beg, B_end, C_ = A.distribution_beginning, B.distribution_beginning, B.distribution_ending, C.distribution_beginning
    # A, B, C = C.distribution_beginning, B.distribution_beginning, A.distribution_beginning
    print f.combine(rf.compare(A_, B_beg),
                    rf.compare(A_, B_end),
                    rf.compare(B_beg, C_),
                    rf.compare(B_end, C_))
    print rf.compare(A_, C_)

    plt = A.plot()
    B.plot(plt)
    C.plot(plt)
    plt.show()