コード例 #1
0
def generate_criteria(number, prefix='c', random_direction=False, names=None):
    crits = Criteria()
    for i in range(number):
        cid = names[i] if names is not None else "%s%d" % (prefix, i + 1)
        c = Criterion(cid)
        if random_direction is True:
            c.direction = random.choice([-1, 1])
        crits.append(c)

    return crits
コード例 #2
0
ファイル: generate.py プロジェクト: oso/pymcda
def generate_criteria(number, prefix = 'c', random_direction = False,
                      names = None):
    crits = Criteria()
    for i in range(number):
        cid = names[i] if names is not None else "%s%d" % (prefix, i+1)
        c = Criterion(cid)
        if random_direction is True:
            c.direction = random.choice([-1, 1])
        crits.append(c)

    return crits
コード例 #3
0
def generate_criteria_msjp(number, prefix = 'c', random_direction = False,
                      names = None, random_directions = None):
    crits = Criteria()
    if random_directions is None:
        for i in range(number):
            cid = names[i] if names is not None else "%s%d" % (prefix, i+1)
            c = Criterion(cid)
            if random_direction is True:
                c.direction = random.choice([-1, 1])
            crits.append(c)
    else : # check for the size otherwise raise an error
        for i in range(number):
            cid = names[i] if names is not None else "%s%d" % (prefix, i+1)
            c = Criterion(cid)
            c.direction = random_directions[i]
            crits.append(c)

    return crits
コード例 #4
0
ファイル: ticino.py プロジェクト: oso/pymcda
import os, sys
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)) + "/../")
from pymcda.types import Criterion, Criteria
from pymcda.types import CriterionValue, CriteriaValues
from pymcda.types import Alternative, Alternatives
from pymcda.types import AlternativePerformances, PerformanceTable
from pymcda.types import Threshold, Thresholds, Constant
from pymcda.types import AlternativeAssignment, AlternativesAssignments
from pymcda.types import Category, Categories
from pymcda.types import CategoryProfile, CategoriesProfiles, Limits

# Criteria
prix = Criterion('prix', 'prix', False, -1, 25)
transport = Criterion('transport', 'transport', False, -1, 45)
envir = Criterion('envir', 'environment', False, 1, 10)
residents = Criterion('residents', 'residents', False, 1, 12)
competition = Criterion('competition', 'competition', False, 1, 8)
c = Criteria([ prix, transport, envir, residents, competition ])

# Criteria values
cv_prix = CriterionValue('prix', 25)
cv_transport = CriterionValue('transport', 45)
cv_envir = CriterionValue('envir', 10)
cv_residents = CriterionValue('residents', 12)
cv_competition = CriterionValue('competition', 8)
cv = CriteriaValues([ cv_prix, cv_transport, cv_envir, cv_residents,
                       cv_competition ])

# Actions
a1 = Alternative('a1', 'a1')
a2 = Alternative('a2', 'a2')
コード例 #5
0
                             for c in combinations(s, i)]
    for combi in combis:
        __antichains(CriteriaSets([combi]), combi, combis, antichains)

    return antichains


XMCDA_URL = 'http://www.decision-deck.org/2009/XMCDA-2.1.0'

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("usage: %s n filename" % sys.argv[0])
        sys.exit(1)

    n = int(sys.argv[1])
    c = Criteria([Criterion("c%d" % i) for i in range(1, n + 1)])
    print(c)

    a = antichains(c.keys())

    f = bz2.BZ2File("%s" % sys.argv[2], "w")
    xmcda = ElementTree.Element("{%s}XMCDA" % XMCDA_URL)
    xmcda.append(c.to_xmcda())

    i = 1
    for anti in a:
        if anti is None:
            continue

        print(anti)
        xmcda.append(anti.to_xmcda(str(i)))
コード例 #6
0
        view.setScene(graph)

    dialog.setLayout(layout)
    dialog.resize(640, 480)
    dialog.show()

    app.exec_()


if __name__ == "__main__":
    from pymcda.types import Criterion, Criteria
    from pymcda.types import CriterionValue, CriteriaValues
    from pymcda.types import PiecewiseLinear, Segment, Point
    from pymcda.types import CriterionFunction, CriteriaFunctions

    c1 = Criterion("c1")
    c2 = Criterion("c2")
    c3 = Criterion("c3")
    c = Criteria([c1, c2, c3])

    cv1 = CriterionValue("c1", 0.5)
    cv2 = CriterionValue("c2", 0.25)
    cv3 = CriterionValue("c3", 0.25)
    cvs = CriteriaValues([cv1, cv2, cv3])

    f1 = PiecewiseLinear([
        Segment('s1', Point(0, 0), Point(2.5, 0.2)),
        Segment('s2', Point(2.5, 0.2), Point(5, 1), True, True)
    ])
    f2 = PiecewiseLinear([
        Segment('s1', Point(0, 0), Point(2.5, 0.8)),
コード例 #7
0
import os, sys
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)) + "/../")
from pymcda.types import Criterion, Criteria
from pymcda.types import CriterionValue, CriteriaValues
from pymcda.types import Alternative, Alternatives
from pymcda.types import AlternativePerformances, PerformanceTable
from pymcda.types import Threshold, Thresholds, Constant
from pymcda.types import AlternativeAssignment, AlternativesAssignments
from pymcda.types import Category, Categories
from pymcda.types import CategoryProfile, CategoriesProfiles, Limits

# Criteria
prix = Criterion('prix', 'prix', False, -1, 25)
transport = Criterion('transport', 'transport', False, -1, 45)
envir = Criterion('envir', 'environment', False, 1, 10)
residents = Criterion('residents', 'residents', False, 1, 12)
competition = Criterion('competition', 'competition', False, 1, 8)
c = Criteria([prix, transport, envir, residents, competition])

# Criteria values
cv_prix = CriterionValue('prix', 25)
cv_transport = CriterionValue('transport', 45)
cv_envir = CriterionValue('envir', 10)
cv_residents = CriterionValue('residents', 12)
cv_competition = CriterionValue('competition', 8)
cv = CriteriaValues(
    [cv_prix, cv_transport, cv_envir, cv_residents, cv_competition])

# Actions
a1 = Alternative('a1', 'a1')
a2 = Alternative('a2', 'a2')