コード例 #1
0
    def get_instance(self, instance_path):

        name = ""
        dimension = ""
        veiculos = ""
        capacidade = ""
        demanda = []
        data = []

        with open(instance_path, 'r', encoding='utf-8') as file:

            name = file.readline().split(' ')[-1]
            dimension = int(file.readline().split(' ')[-1])
            veiculos = int(file.readline().split(' ')[-1])
            capacidade = int(file.readline().split(' ')[-1])
            demanda = []
            inicio_da_secao_Edge_Weight = 5

            file.readline()  #DEMAND_SECTION:

            for i in range(dimension):
                stringAuxiliar = file.readline()
                stringAuxiliar2 = (
                    re.findall('\d+', stringAuxiliar)
                )  # vai criar uma lista apenas com os valores (removendo os espaços)
                demanda.append(
                    int(stringAuxiliar2[1])
                )  #vai receber apenas o segundo valor na parte de demanda.
                inicio_da_secao_Edge_Weight += 1
            inicio_da_secao_Edge_Weight += 2

            file.readline()  #linha vazia antes do EDGE WEIGHT SECTION

            file_type = file.readline().strip()

            if file_type == 'EDGE_WEIGHT_SECTION':

                data2 = [[0 for x in range(dimension)]
                         for y in range(dimension)
                         ]  #matriz [Dimensao][Dimensao]

                fop = open(instance_path, "r")
                arquivo = fop.readlines()

                for i in range(dimension):
                    stringAuxiliar = arquivo[inicio_da_secao_Edge_Weight]
                    stringAuxiliar2 = (re.findall('\d+', stringAuxiliar))
                    for j in range(dimension):
                        data2[i][j] = int(stringAuxiliar2[j])
                    inicio_da_secao_Edge_Weight += 1

                data = self.__get_instance(file, dimension)

        return Instance(name, dimension, veiculos, capacidade, demanda, data,
                        data2)
コード例 #2
0
ファイル: InstanceReader.py プロジェクト: Vnicius/ed-tsp
    def get_instance(self, instance_path):
        instance = None
        name = ""
        dimension = ""
        data = []

        with open(instance_path, 'r', encoding='utf-8') as file:
            name = file.readline().split(' ')[-1]
            dimension = int(file.readline().split(' ')[-1])
            data = []

            file_type = file.readline().strip()

            if file_type == 'EDGE_WEIGHT_SECTION':
                data = self.__get_instance_teste(file, dimension)
            elif file_type == 'DISPLAY_DATA_SECTION':
                data = self.__get_instance_tsp_cup(file, dimension)

        return Instance(name, dimension, data)
コード例 #3
0
ファイル: LectorNeuro.py プロジェクト: garnachod/neuro1
	def leerFichero(self, nombre_fichero):
		f = open(nombre_fichero,'r')
		#instancias al estilo WEKA
		instances = Instances()

		primeraLinea = f.readline()
		cadenasLinea = re.split(self.delimiters, primeraLinea)
		numeroEntradas = int(cadenasLinea[0])
		numeroClases = int(cadenasLinea[1])

		for i in range(0, numeroEntradas):
			instances.addColumna(str(i), "REAL")

		for i in range(0, numeroClases):
			instances.addClase(str(i))

		for line in iter(lambda: f.readline(), ''):
			tokens = self.privateLimpiaVacioTokens(re.split(self.delimiters, line))
			#print tokens
			if len(tokens) <= 0:
				break
			#instancia al estilo WEKA
			instance = Instance()
			#se anyaden las entradas del perceptron
			for i in range(0, numeroEntradas):
				instance.addElement(float(tokens[i]))

			#transformacion de 1 0 a 0 por ejemplo y 0 1 a 1
			#con la finalidad de no usar un array de clases que no tiene sentido en clasificacion
			#puede tener sentido en un red neuronal, no lo niego
			j = 0
			for i in range(numeroEntradas, numeroEntradas + numeroClases):
				if tokens[i] == '1':
					instance.addElement(str(j))
					break

				j += 1

			instances.addInstance(instance)

		f.close()
		return instances
コード例 #4
0
def loadDataFromFile(fileName,
                     skipRowsWithInvalidFeature=False,
                     defaultValueOfInvalidFeature=1):
    instances = []

    file = open(fileName, 'r').read()
    lines = file.split('\n')

    for line in lines:
        if '?' in line and skipRowsWithInvalidFeature is True:
            continue

        row = line.split(',')

        if row.__len__() == 11:
            instance = Instance(row[columnId],
                                row[columnFirstFeature:quantityOfFeatures + 1],
                                row[columnCancerClass],
                                defaultValueOfInvalidFeature)
            instances.append(instance)

    return instances