Beispiel #1
0
    misfit[i] = f(data[i, :])
title('neighbourhood algoritthm with ns=' + str(ns) + ' nr=' + str(nr))
# scatter(data[:,x_idx],data[:,y_idx])
# show()
# exit()

#选择nr个样本点,生成ns个样本
datasum = data.copy()
for itr in xrange(1, n_itr + 1):
    print('iteration number is ' + str(itr))
    if itr != 1:
        data = oridata.copy()
    for i in xrange(size(data, 0)):
        misfit[i] = f(data[i, :])
    #在前一次迭代生成的ns个样本中选择misfit最小的nr个
    bdcdatasum = sc.broadcast(datasum)
    chdata = sort(misfit)
    chindex = argsort(misfit)
    oridata = []
    print('data: ', str(data[chindex[0], :]))
    print('misfit is ', str(chdata[0]))
    par_data = data[chindex[:nr, :]].copy()  #test
    par_value = sc.parallelise(
        par_data, par_num).flatmap(lambda input_data: findData(
            input_data, bdcdatasum, ns, nr, n_par, lowb, upperb))
    oridata = asarry(par_value.collect())  #must test
    datasum = asarray(list(datasum) + list(oridata))  #生成的总样本数

scatter(datasum[:, x_idx], datasum[:, y_idx])
show()