def load_configuration(name):

        path = ConfigurationParser.PATH + name

        scheme = Scheme()
        conf_file = open(path, "r")
        conf_file.readline()
        stations_line = conf_file.readline().rstrip()
        names, times_sets = ConfigurationParser.parse_stations_string(stations_line)
        for name, time_set in zip(names, times_sets):
            scheme.add_station(name, time_set)

        conf_file.readline()
        ways_line = conf_file.readline().rstrip()
        times_to_pass, st1_names, st2_names, direct_properties = ConfigurationParser.parse_ways_string(ways_line)
        for time, st1, st2, property in zip(times_to_pass, st1_names, st2_names, direct_properties):
            scheme.add_way(time, st1, st2, property)

        conf_file.readline()
        trains_line = conf_file.readline().rstrip()
        names, routes = ConfigurationParser.parse_trains_string(trains_line)
        for name, route in zip(names, routes):
            scheme.add_train(name, route)

        return scheme
    def create_scheme88(number_of_trains, number_of_one_direct_ways):
        scheme = Scheme()

        SimpleConfigurationGenerator.add_brunch(scheme, "a", 22)
        SimpleConfigurationGenerator.add_brunch(scheme, "b", 16, "a5")
        SimpleConfigurationGenerator.add_brunch(scheme, "c", 11, "a10")
        SimpleConfigurationGenerator.add_brunch(scheme, "d", 18, "a15")
        SimpleConfigurationGenerator.add_brunch(scheme, "e", 21, "a20")

        a1 = SimpleConfigurationGenerator.create_route_by_names_in_branch("a", 0, 10)
        a2 = SimpleConfigurationGenerator.create_route_by_names_in_branch("a", 10, 20)
        a3 = SimpleConfigurationGenerator.create_route_by_names_in_branch("a", 7, 13)


        b1 = SimpleConfigurationGenerator.create_route_by_names_in_branch("b", 0, 7)
        b2 = SimpleConfigurationGenerator.create_route_by_names_in_branch("b", 0, 9)
        b3 = SimpleConfigurationGenerator.create_route_by_names_in_branch("b", 2, 8)

        c1 = SimpleConfigurationGenerator.create_route_by_names_in_branch("c", 2, 10)
        c2 = SimpleConfigurationGenerator.create_route_by_names_in_branch("c", 1, 5)
        c3 = SimpleConfigurationGenerator.create_route_by_names_in_branch("c", 8, 2)

        d1 = SimpleConfigurationGenerator.create_route_by_names_in_branch("d", 6, 13)
        d2 = SimpleConfigurationGenerator.create_route_by_names_in_branch("d", 17, 5)
        d3 = SimpleConfigurationGenerator.create_route_by_names_in_branch("d", 8, 0)

        ab = SimpleConfigurationGenerator.create_route_by_names_in_branch("a", 0, 5) + \
              SimpleConfigurationGenerator.create_route_by_names_in_branch("b", 0, 2)
        ac = SimpleConfigurationGenerator.create_route_by_names_in_branch("a", 0, 10) + \
              SimpleConfigurationGenerator.create_route_by_names_in_branch("c", 0, 7)
        ad = SimpleConfigurationGenerator.create_route_by_names_in_branch("a", 0, 15) + \
              SimpleConfigurationGenerator.create_route_by_names_in_branch("d", 0, 5)
        ae = SimpleConfigurationGenerator.create_route_by_names_in_branch("a", 0, 20) + \
              SimpleConfigurationGenerator.create_route_by_names_in_branch("e", 0, 10)
        bad = SimpleConfigurationGenerator.create_route_by_names_in_branch("b", 3, 0) + \
              SimpleConfigurationGenerator.create_route_by_names_in_branch("a", 5, 15) + \
              SimpleConfigurationGenerator.create_route_by_names_in_branch("d", 0, 2)


        route_list = [a1, a2, a3, b1, b2, b3, c1, c2, c3, d1, d2, d3, ab, ac, ad, ae, bad]

        for i in range(number_of_trains):
            tr_name = "tr" + str(i)
            route = route_list[(i % len(route_list))]
            scheme.add_train(tr_name, route)

        for i in range(number_of_one_direct_ways):
            rand_index = randint(0, len(scheme.ways))
            k = 0
            for way in scheme.ways:
                if k == rand_index:
                    way.direct_property = Way.PROPERTY_ONE_DIRECT
                k += 1

        return scheme