예제 #1
0
    def _complemento(self, args):
        # Verificamos que tenemos todos los parametros necesarios
        if (len(args) < 4):
            print "El uso del programa debe ser: %s %s <archivo de datos> <archivo de resultado>" % (args[0], args[1])
            sys.exit()

        dataFile = args[2]
        resultFile = args[3]

        # Instanciamos un AF
        af = AF()

        # Cargamos el AF desde un archivo
        self._loadFromFile(af, dataFile)

        # Ejecutamos el metodo que transforma el AFND a AFD
        af = af.toAFD()

        # Complementamos el AFD
        af.complement()

        # Escribimos el AFD en un archivo
        self._writeOnFile(af, resultFile)

        print "Paso a AFD complementado correctamente, el AFD de resultado esta en: %s" % (resultFile)
예제 #2
0
    def _interseccion(self, args):
        # Verificamos que tenemos todos los parametros necesarios
        if (len(args) < 5):
            print "El uso del programa debe ser: %s %s <archivo de datos 1> <archivo de datos 2> <archivo de resultado>" % (args[0], args[1])
            sys.exit()

        dataFile = args[2]
        dataFileInterseccion = args[3]
        resultFile = args[4]

        # Instanciamos un AF
        af = AF()

        # Cargamos el AF desde un archivo
        self._loadFromFile(af, dataFile)

         # Instanciamos el segundo AF
        afInterseccion = AF()

        # Cargamos el AF desde el segundo archivo
        self._loadFromFile(afInterseccion, dataFileInterseccion)

        # La interseccion de M1 y M2 se define como:
        # (M1c U M2c)c

        # 1.- Complementamos cada AF
        af.complement()
        afInterseccion.complement()

        # 2.- Unimos el segundo AF al primero
        af.union(afInterseccion)

        # 3.- Complementamos el af de la union
        af.complement()

        # Escribimos el AFD en un archivo
        self._writeOnFile(af, resultFile)

        print "Proceso de interseccion de AFs terminado correctamente. Resultado guardado en: %s" % (resultFile)