Exemplo n.º 1
0
 def test_one_pair(self):
     # flip, x, y, population, risk
     s = map(lambda x: Cluster(*x), [(5, 0, 0, 13, 0.1),
                                     (10, 42, 0, 14, 0.2)])
     r1 = list(slow_closest_pairs(s))[0]
     r2 = fast_closest_pair(s)
     self.assertEqual(r1, r2)
     self.assertEqual(r2, (42.0, 0, 1))
 def test_one_pair(self):
     # flip, x, y, population, risk
     s = map(lambda x: Cluster(*x),
             [(5, 0, 0, 13, 0.1),
              (10, 42, 0, 14, 0.2)])
     r1 = list(slow_closest_pairs(s))[0]
     r2 = fast_closest_pair(s)
     self.assertEqual(r1, r2)
     self.assertEqual(r2, (42.0, 0, 1))
 def test_three_vert_pairs(self):
     s = map(lambda x: Cluster(*x),
             [(5,  0, 0, 13, 0.1),
              (10, 0, 2, 14, 0.2),
              (15, 0, 4, 15, 0.2),
              (20, 0, 5, 16, 0.2),
              (25, 0, 7, 17, 0.2),
              (30, 0, 9, 18, 0.2),
              ])
     r1 = list(slow_closest_pairs(s))[0]
     r2 = fast_closest_pair(s)
     self.assertEqual(r1, r2)
     self.assertEqual(r1, (1.0, 2, 3))
Exemplo n.º 4
0
 def test_three_vert_pairs(self):
     s = map(lambda x: Cluster(*x), [
         (5, 0, 0, 13, 0.1),
         (10, 0, 2, 14, 0.2),
         (15, 0, 4, 15, 0.2),
         (20, 0, 5, 16, 0.2),
         (25, 0, 7, 17, 0.2),
         (30, 0, 9, 18, 0.2),
     ])
     r1 = list(slow_closest_pairs(s))[0]
     r2 = fast_closest_pair(s)
     self.assertEqual(r1, r2)
     self.assertEqual(r1, (1.0, 2, 3))
Exemplo n.º 5
0
def question1(filename):
    xs = range(2, 201)
    ys_fast, ys_slow = [], []
    for n in xs:
        clusters = get_random_clusters(n)
        ys_fast.append(timeit(lambda: fast_closest_pair(clusters), number=1))
        ys_slow.append(timeit(lambda: slow_closest_pairs(clusters), number=1))

    plt.plot(xs, ys_fast, '-r', label='fast_closest_pair')
    plt.plot(xs, ys_slow, '-b', label='slow_closest_pairs')
    plt.title('Running time of *closest_pair functions (desktop Python)')
    plt.xlabel('Number of initial clusters')
    plt.ylabel('Running time, seconds')
    plt.legend(loc='upper left')
    plt.tight_layout()
    plt.savefig(filename)
    print('Saved plot to %s' % filename)
Exemplo n.º 6
0
def question1(filename):
    xs = range(2, 201)
    ys_fast, ys_slow = [], []
    for n in xs:
        clusters = get_random_clusters(n)
        ys_fast.append(timeit(lambda: fast_closest_pair(clusters), number=1))
        ys_slow.append(timeit(lambda: slow_closest_pairs(clusters), number=1))

    plt.plot(xs, ys_fast, '-r', label='fast_closest_pair')
    plt.plot(xs, ys_slow, '-b', label='slow_closest_pairs')
    plt.title('Running time of *closest_pair functions (desktop Python)')
    plt.xlabel('Number of initial clusters')
    plt.ylabel('Running time, seconds')
    plt.legend(loc='upper left')
    plt.tight_layout()
    plt.savefig(filename)
    print('Saved plot to %s' % filename)
Exemplo n.º 7
0
    of clusters of size 2 to 200.
    '''
    clusters_list = []
    for _ in range(num_clusters):
        x_axis = random.random()
        y_axis = random.random()
        cluster = alg_cluster.Cluster(set(), x_axis, y_axis, '', '')
        clusters_list.append(cluster)
    return clusters_list

TIMES = []
for num in range(2, 200):
    fun_time = {}
    clusters = gen_random_clusters(num)
    time_start = time.time()
    alg_project3_solution.slow_closest_pairs(clusters)
    time_end = time.time()
    time_spent = time_end - time_start
    fun_time['number of initial clusters'] = num
    fun_time['slow_closest_pairs'] = time_spent
    time_start = time.time()
    alg_project3_solution.fast_closest_pair(clusters)
    time_end = time.time()
    time_spent = time_end - time_start
    fun_time['fast_closest_pair'] = time_spent
    TIMES.append(fun_time)
    ITMES_DF = pd.DataFrame(TIMES)

ax = ITMES_DF[['slow_closest_pairs', 'fast_closest_pair']].plot(title='running time of different functions')
ax.set_ylabel('running time')
ax.set_xlabel('number of initial clusters')
Exemplo n.º 8
0
import random
import alg_project3_solution


def gen_random_clusters(num_clusters):
    cluster_list = []
    for i in range(num_clusters):
        cluster_list.append(alg_cluster.Cluster(set(), random.uniform(-1, 1), random.uniform(-1, 1), 0, 0))
    return cluster_list

x_axis = range(2, 201)
slow_y = []
for i in range(2, 201):
    cluster_list = gen_random_clusters(i)
    start = time.time()
    closet = alg_project3_solution.slow_closest_pairs(cluster_list)
    end = time.time()
    slow_y.append((end-start)*1000)

fast_y = []
for i in range(2, 201):
    cluster_list = gen_random_clusters(i)
    start = time.time()
    closet = alg_project3_solution.fast_closest_pair(cluster_list)
    end = time.time()
    fast_y.append((end-start)*1000)

print(slow_y)
print(fast_y)

plt.plot(x_axis, slow_y, label = "slow_closest_pair")