Пример #1
0
def naive_eq(file_sol, nbAgents):
    copy_lines=copy.deepcopy(file_sol.lines)

    # nan ! trop de comprehension ist tue la comprehensio n ^^ (en fait
    # potentiel err car non exclusif)
    clauses = [line for line in copy_lines if isinstance(line, futils.Clause)]
    pf = [line for line in copy_lines if 'pf(' in line.data]
    comments = [line for line in copy_lines if line.data.startswith('%')]

    clauses.sort(cmp=futils.comp_index)
    sizeAgent = len(clauses) / nbAgents
    agent_clauses = []
    for indexAgent, c in enumerate(futils.chunks(clauses, sizeAgent)):
        if not indexAgent >= nbAgents:
            # on rajoute un agent que si c'est légal
            new_agent_line = futils.IndexedLine(
                0, '\nagent(' + str(indexAgent) + ').\n')
            agent_clauses.append(new_agent_line)
        for line in c:
            agent_clauses.append(line)
    # on doit réindexer tout cela
    dcf_lines = []
    for index, line in enumerate(comments + agent_clauses + pf):
        line.index = index
        dcf_lines.append(line)

    return dcf_lines
Пример #2
0
def naive_eq(file_sol, nbAgents):
    copy_lines = copy.deepcopy(file_sol.lines)

    # nan ! trop de comprehension ist tue la comprehensio n ^^ (en fait
    # potentiel err car non exclusif)
    clauses = [line for line in copy_lines if isinstance(line, futils.Clause)]
    pf = [line for line in copy_lines if 'pf(' in line.data]
    comments = [line for line in copy_lines if line.data.startswith('%')]

    clauses.sort(cmp=futils.comp_index)
    sizeAgent = len(clauses) / nbAgents
    agent_clauses = []
    for indexAgent, c in enumerate(futils.chunks(clauses, sizeAgent)):
        if not indexAgent >= nbAgents:
            # on rajoute un agent que si c'est légal
            new_agent_line = futils.IndexedLine(
                0, '\nagent(' + str(indexAgent) + ').\n')
            agent_clauses.append(new_agent_line)
        for line in c:
            agent_clauses.append(line)
    # on doit réindexer tout cela
    dcf_lines = []
    for index, line in enumerate(comments + agent_clauses + pf):
        line.index = index
        dcf_lines.append(line)

    return dcf_lines
Пример #3
0
def divEquNaive(infilename, outfilename, nbAgents):
    '''
    1ere naive : divides the clauses equally between the agents
    and writes the output in a .gro.part.N file
    '''
    f = open(infilename, 'r')
    lines, nbClauses = annotateLines(f)
    f.close()
    lines = filterClauses(lines)

    sizeAgent = nbClauses / nbAgents
    outfilename = outfilename + '.gra.part.' + str(nbAgents)
    outfile = open(outfilename, 'w')
    i = 0
    for c in futils.chunks(lines, sizeAgent):
        print c
        for line in c:
            print line, i
            outfile.write(str(i) + '\n')
        if i != nbAgents - 1:
            i += 1
    outfile.close()
    return
Пример #4
0
def divEquNaive(infilename, outfilename, nbAgents):
    '''
    1ere naive : divides the clauses equally between the agents
    and writes the output in a .gro.part.N file
    '''
    f = open(infilename, 'r')
    lines, nbClauses = annotateLines(f)
    f.close()
    lines = filterClauses(lines)

    sizeAgent = nbClauses / nbAgents
    outfilename = outfilename + '.gra.part.' + str(nbAgents)
    outfile = open(outfilename, 'w')
    i = 0
    for c in futils.chunks(lines, sizeAgent):
        print c
        for line in c:
            print line, i
            outfile.write(str(i) + '\n')
        if i != nbAgents - 1:
            i += 1
    outfile.close()
    return