示例#1
0
import sys
import os.path
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import src
from src.Model import Model
from src.Model import char_range


if __name__ == '__main__':
    for x in [3, 4, 6, 2001]:
        m = Model(x)
        n = 24
        for i in range(n):
            m.add_var(list(range(n)))
        for i in range((n-1)):
            for j in range((i+1), n):
                a = j-i
                m.add_constr(m.variables[i], m.variables[j], "x != y and x != (y-" +str(a) + ')' + " and x != (y+"+str(a) + ')')
        m.find_solution()
示例#2
0
from src.Model import char_range
import numpy as np
import pandas as pd

if __name__ == '__main__':
    upper_bound = 16
    measure = np.zeros((4, upper_bound - 1)).tolist()
    for n in range(2, upper_bound + 1):
        acs = [3, 4, 6, 2001]
        for x in acs:
            m = Model(x)
            for i in range(n):
                m.add_var(list(range(n)))
            for i in range((n - 1)):
                for j in range((i + 1), n):
                    a = j - i
                    m.add_constr(
                        m.variables[i], m.variables[j], "x != y and x != (y-" +
                        str(a) + ')' + " and x != (y+" + str(a) + ')')
            measure[acs.index(x)][n - 2] = m.find_solution()
    measure = pd.DataFrame(measure).transpose()
    measure.columns = ['AC3', 'AC4', 'AC6', 'AC2001']
    measure.index += 2
    ax = measure.plot()
    ax.set_xlabel('number of queens')
    ax.set_ylabel('time to find solution (in seconds)')
    fig = ax.get_figure()
    fig.savefig('../results.eps', format='eps')
    fig = ax.get_figure()
    print(measure)