Beispiel #1
0
        dist.to_csv(csv)
    tag = imgdb[1].lstrip("img_dig/")
    pdict[(imgdb[0], tag)] = pd.read_csv(csv, header=None)

#pdict[(8,"MacGill Calibrated")] = BPV.read_distribution_csv("p.macgill.csv")

tot_patterns = 512
N = 50
W = 0.05  #rate

n_plots = len(pdict.keys())

fig = plt.plot()
f, axarr = plt.subplots(n_plots, 1, sharex=True)
i = 0
for imgdb, p in sorted(pdict.items()):
    n = len(p)
    if n < tot_patterns:
        print("WARNING: probability vector's {2} length is {0}<{1}".format(
            n, tot_patterns, imgdb[1]))
    p_array = np.array(p.ix[:, 1])
    exact_solver = BPV.BPV("exact", n, N, W, p_array)
    exact_solver.solve()
    sol = exact_solver.solution_indexes()
    axarr[i].set_title(imgdb[1])
    axarr[i].plot(p_array)
    for point in sol:
        axarr[i].plot(sol, [0] * len(sol), 'or')
    i += 1
plt.show()
Beispiel #2
0
import BPV
import pattern_manipulation as pm
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import ipdb

n = 10
N = 5
W = 0.025
epsilon = 1000

df = BPV.Data()
df.read_csv("pixel.dist.csv", False)
df.df.sort_index(by="p", inplace=True, ascending=False)
df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True)
df = df.data_head(n)

#p = np.zeros(2*n)
#for i in range(2*n):
#    p[i] = df.df['p'][i%n]
#p /= p.sum()
#df = BPV.Data(pd.DataFrame(p, columns=['p']))
#df.df['plog1onp'] = df.df['p']*np.log(1/df.df['p'])
#df.df.sort_index(by='p',inplace=True,ascending=False)
#df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True)

min_entropy = df.df['plog1onp'].min()
c = 2 * N / (epsilon * min_entropy)
print("\n c = ", c, "\n\n")
scaler = lambda x: (1 / c) * (int(c * x) + 1)
Beispiel #3
0
import BPV
import pattern_manipulation as pm
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import ipdb

n = 10
N = 5
W = 0.025

data = BPV.Data()
data.read_csv("pixel.dist.csv", False)
data.df.sort_index(by="p", inplace=True, ascending=False)
data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True)
dftmp = data.data_head(n).df

p = np.zeros(2 * n)
for i in range(2 * n):
    p[i] = dftmp['p'][i % n]

p /= p.sum()
df = BPV.Data(pd.DataFrame(p, columns=['p']))
df.df['plog1onp'] = df.df['p'] * np.log(1 / df.df['p'])
df.df.sort_index(by='p', inplace=True, ascending=False)
df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True)

prbl = BPV.BPV("decgraphV", df, N, W, time_solver=False)
prbl.solve()
#cProfile.run('prbl.solve()',sort=1)
prbl.pprint_solution()
Beispiel #4
0
df = BPV.Data()
df.read_csv("pixel.dist.csv",False)
df.df.sort_index(by="p",inplace=True,ascending=True)
df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True)


N = 50
W = 0.025
variances = [0.00001,0.00006,0.0001,0.001]
l = len(variances)
in_errs = [0]*l
out_errs = [0]*l
for i in range(l):
    df_err = df.artificial_noise1(variances[i])

    pulp_correct = BPV.BPV("pulp",df,N,W,time_solver=False)
    pulp_correct.solve()
    pulp_correct.pprint_solution()

    pulp_error = BPV.BPV("pulp",df_err,N,W,time_solver=False)
    pulp_error.solve()
    pulp_error.pprint_solution()

    in_errs[i] = BPV.distance1(df.df['p'],df_err.df['p'])
    out_errs[i] = np.abs(pulp_correct.solution_entropy - pulp_error.solution_entropy)
    print(in_errs[i], out_errs[i])
    
    print("------------------")

    
Beispiel #5
0
import BPV
import pattern_manipulation as pm
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import cProfile

n = 100
N=20
W=0.03  #rate

data = BPV.Data()
data.read_csv("pixel.dist.csv",False)
data.df.sort_index(by="p",inplace=True,ascending=True)
data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True)
data_head = data.data_head(n)
#data.df.sort_index(by="p")

#prbl_pulp = BPV.BPV("pulp",data_head,N,W,time_solver=False)
#prbl_pulp.solve()
#prbl_pulp.pprint_solution()
#

prbl_decH = BPV.BPV("decgraphH",data_head,N,W,time_solver=True)
prbl_decH.solve()
#cProfile.run('prbl_decH.solve()',sort=1)
prbl_decH.pprint_solution()

#prbl_decW = BPV.BPV("decgraphW",data_head,N,W,time_solver=False)
#prbl_decW.solve()
##cProfile.run('prbl_decW.solve()',sort=1)
Beispiel #6
0
import BPV
import pattern_manipulation as pm
import numpy as np
import pandas as pd

N, W = 10, 0.1504

data = BPV.Data()
data.read_csv("pixel.dist.csv", False)
data.df.sort_index(by="p", inplace=True, ascending=True)
data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True)

prbl_pulp = BPV.BPV("pulp", data, N, W, time_solver=False)
prbl_pulp.solve()
prbl_pulp.pprint_solution()

prbl_pulp = BPV.BPV("heuristic", data, N, W, time_solver=False)
prbl_pulp.solve()
prbl_pulp.pprint_solution()
Beispiel #7
0
data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True)
dftmp = data.data_head(n).df

p = np.zeros(2*n)
for i in range(2*n):
    p[i] = dftmp['p'][i%n]

p /= p.sum()
df = BPV.Data(pd.DataFrame(p, columns=['p']))
df.df['plog1onp'] = df.df['p']*np.log(1/df.df['p'])
df.df.sort_index(by='p',inplace=True,ascending=False)
df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True)

prbl = BPV.BPV("decgraphV",df,N,W,time_solver=False)
prbl.solve()
#cProfile.run('prbl.solve()',sort=1)
prbl.pprint_solution()

prbl = BPV.BPV("pulp",df,N,W,time_solver=False)
prbl.solve()
prbl.pprint_solution()


sol1,sol2,sol3 = 'decgraphV0','decgraphV1','pulp'
sols = (sol1,sol2,sol3)
print("\n Sup distances between:")
for s1 in sols:
    for s2 in sols:
        print("\n {0} and {1}: {2}".format(s1,s2, BPV.distance_solutions(df.df[s1],df.df[s2])[0]))

Beispiel #8
0
import BPV
import pattern_manipulation as pm
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

n = 10
N = 5
W = 0.025
multiplier = 4

data = BPV.Data()
data.read_csv("pixel.dist.csv", False)
data.df.sort_index(by="p", inplace=True, ascending=False)
data.df.set_index(pd.Index([j for j in range(len(data.df))]), inplace=True)
dftmp = data.data_head(n).df

p = np.zeros(multiplier * n)
for i in range(multiplier * n):
    p[i] = dftmp['p'][i % n]

p /= p.sum()
df = BPV.Data(pd.DataFrame(p, columns=['p']))
df.df['plog1onp'] = df.df['p'] * np.log(1 / df.df['p'])
df.df.sort_index(by='p', inplace=True, ascending=False)
df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True)

prbl_decW = BPV.BPV("decgraphW", df, N, W, time_solver=False)
prbl_decW.solve()
#cProfile.run('prbl.solve()',sort=1)
prbl_decW.pprint_solution()
Beispiel #9
0
#import sys
#sys.path.append('/usr/lib/python3.4/site-packages')
import matplotlib
#%matplotlib inline
matplotlib.use('TkAgg')
import BPV
import pattern_manipulation as pm
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

df = BPV.Data()
df.read_csv("pixel.dist.csv", False)
df.df.sort_index(by="p", inplace=True, ascending=True)
df.df.set_index(pd.Index([j for j in range(len(df.df))]), inplace=True)

N = 50
W = 0.025
variances = [0.00001, 0.00006, 0.0001, 0.001]
l = len(variances)
in_errs = [0] * l
out_errs = [0] * l
for i in range(l):
    df_err = df.artificial_noise1(variances[i])

    pulp_correct = BPV.BPV("pulp", df, N, W, time_solver=False)
    pulp_correct.solve()
    pulp_correct.pprint_solution()

    pulp_error = BPV.BPV("pulp", df_err, N, W, time_solver=False)
    pulp_error.solve()