Exemplo n.º 1
0
def main():
    """Driver for IIM solver."""
    args = parse_arguments()
    if args.mode == "Supply":
        iim_io.print_header("Supply-Driven")
    else:
        iim_io.print_header("Demand-Driven")

    model = iim.IIM(
        args.filename, args.psector, args.cvalue, args.table, args.mode)

    sectors = model.get_sectors()
    delta = model.dependency()
    rho = model.influence()
    delta_overall = model.overall_dependency()
    rho_overall = model.overall_influence()
    qstar = model.inoperability()

    iim_io.print_perturbed_sectors(args.psector, args.cvalue)
    print("\nSector\t\tInoperability\tDependency\tD(overall)\t"
          "Influence\tI(overall)")
    print(90 * "-")

    for i in range(0, len(sectors)):
        print("%-8s\t%8.6f\t%8.6f\t%8.6f\t%8.6f\t%8.6f"
              % (sectors[i].strip(), qstar[i], delta[i], delta_overall[i],
                 rho[i], rho_overall[i]))
Exemplo n.º 2
0
def main():
    args = parse_arguments()
    psector = []
    cvalue = []
    model = iim.IIM(args.filename, psector, cvalue, args.table, args.mode)
    aij = model.max_nth_order_interdependency(args.order)
    write_aij(args.filename, aij, args.order)
Exemplo n.º 3
0
    def test_case3(self):
        # Correct answer:
        # ---------------
        # For c = [0.0, 0.0, 0.12], q = [0.04, 0.02, 0.14]
        qans = [0.04, 0.02, 0.14]
    
        fname = os.path.join("tests", "test_case3.csv")
        psector = ["SectorC"]
        cvalue = [0.12]
        table = "A"
        mode = "Demand"

        model = iim.IIM(fname, psector, cvalue, table, mode)
        q = model.inoperability()

        self.assertTrue(np.allclose(q, qans, atol=0.01))
Exemplo n.º 4
0
    def test_case2(self):
        # Correct answer (Haimes & Jiang, 2001):
        # --------------------------------------
        # For c = [0.0, 0.5, 0.0, 0.0], q = [0.70, 0.78, 1, 1]
        qans = [0.70, 0.78, 1.0, 1.0]
    
        fname = os.path.join("tests", "test_case2.csv")
        psector = ["Sector2"]
        cvalue = [0.5]
        table = "A"
        mode = "Demand"

        model = iim.IIM(fname, psector, cvalue, table, mode)
        q = model.inoperability()

        self.assertTrue(np.allclose(q, qans, atol=0.01))
Exemplo n.º 5
0
    def test_case5(self):
        # Correct answer:
        # ---------------
        # Xu et al. (2011), eq. 34.
        a_ans = [[0.14, 0.11, 0.20, 0.14],
                 [0.17, 0.20, 0.10, 0.17],
                 [0.26, 0.32, 0.26, 0.10],
                 [0.14, 0.28, 0.14, 0.28]]

        fname = os.path.join("tests", "test_case4.csv")
        psector = ["Electric"]
        cvalue = [0.0]
        table = "IO"
        mode = "Supply"

        model = iim.IIM(fname, psector, cvalue, table, mode)
        amat = model.get_interdependency_matrix()

        self.assertTrue(np.allclose(a_ans, amat, atol=0.015))