コード例 #1
0
 def countProcess(minS):
     w = worstCase(minS.getS(), math.ceil(minS.getK()))
     w.worstCase(w.genGraphList(), A[cnt], B[cnt])
     print("When d=", d, "f(n, m)=", A[cnt], " * n + ", B[cnt], " * m",
           "Minimum S =", minS.getS())
     print("the worst branch is (", w.getBranchCheck(), ")")
     print("the worst branch number is (", w.getWorstIn(), ",",
           w.getWorstOut(), ")")
     print("\\tau is", w.getWorstTime(), "\n")
     del minS
コード例 #2
0
ファイル: TimeComplexity.py プロジェクト: Nonac/finalProject
 def binarySearchToSearchBi(low, up):
     w = worstCase(minS.getS(), math.ceil(minS.getK()))
     b_mid = (low + up) / 2
     a_mid = Kai - (minS.getK() * b_mid)
     w.worstCase(w.genGraphList(), a_mid, b_mid)
     branch = w.getBranchCheck()
     if w.getWorstTime() == PreDefinedTau:
         return {"Kai": Kai, "b": b_mid, "a": a_mid, "branch": branch, "tau": w.getWorstTime(), "k": minS.getK()}
     elif (up - low) < ACCURACY:
         return {"Kai": Kai, "b": low, "a": a_mid, "branch": branch, "tau": w.getWorstTime(), "k": minS.getK()}
     elif w.getWorstTime() > PreDefinedTau:
         return binarySearchToSearchBi(b_mid, up)
     elif w.getWorstTime() < PreDefinedTau:
         return binarySearchToSearchBi(low, b_mid)
コード例 #3
0
A = [1, 0.1961, 0.3308, 0.4461, 0.8755, 0.9139, 0.9517, 0.9841, 1.0143]
B = [-2, 0.2680, 0.2295, 0.1987, 0.0914, 0.0821, 0.0736, 0.0665, 0.0602]
S = 0
cnt = 0
for i in range(2001, 5000):
    from minS import minS

    d = i / 1000
    minS = minS(d)
    minS.minS()
    while d > k[cnt]:
        cnt += 1

    def countProcess(minS):
        w = worstCase(minS.getS(), math.ceil(minS.getK()))
        w.worstCase(w.genGraphList(), A[cnt], B[cnt])
        print("When d=", d, "f(n, m)=", A[cnt], " * n + ", B[cnt], " * m",
              "Minimum S =", minS.getS())
        print("the worst branch is (", w.getBranchCheck(), ")")
        print("the worst branch number is (", w.getWorstIn(), ",",
              w.getWorstOut(), ")")
        print("\\tau is", w.getWorstTime(), "\n")
        del minS

    if S == 0:
        S = minS.getS()
        countProcess(minS)
    elif minS.getS() != S:
        S = minS.getS()
        countProcess(minS)
コード例 #4
0
ファイル: minSTest.py プロジェクト: Nonac/finalProject
# minimum S(k) is 19  when k>= 15/4  and d(F)= 4
# minimum S(k) is 20  when k>= 4  and d(F)= 4
# minimum S(k) is 23  when k>= 120/29  and d(F)= 5
# minimum S(k) is 24  when k>= 30/7  and d(F)= 5
# minimum S(k) is 25  when k>= 40/9  and d(F)= 5
# minimum S(k) is 26  when k>= 9/2  and d(F)= 5
# minimum S(k) is 27  when k>= 32/7  and d(F)= 5
# minimum S(k) is 28  when k>= 14/3  and d(F)= 5
# minimum S(k) is 29  when k>= 24/5  and d(F)= 5
# minimum S(k) is 30  when k>= 5  and d(F)= 5

from fractions import Fraction

S = 0
for i in range(1000, 5000):
    from minS import minS

    d = Fraction(i, 1000)
    minS = minS(d)
    minS.minS()
    if S == 0:
        S = minS.getS()
        print("minimum S(k) is", minS.getS(), " when k>=", minS.getK(),
              " and d(F)=", minS.getD())
        del minS
    elif minS.getS() != S:
        S = minS.getS()
        print("minimum S(k) is", minS.getS(), " when k>=", minS.getK(),
              " and d(F)=", minS.getD())
        del minS