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)
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)