def _union(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] dataFileUnion = args[3] resultFile = args[4] # Instanciamos un AF af = AF() # Cargamos el AF desde un archivo self._loadFromFile(af, dataFile) # Instanciamos el segundo AF afUnion = AF() # Cargamos el AF desde el segundo archivo self._loadFromFile(afUnion, dataFileUnion) # Unimos los AFDs af.union(afUnion) # Escribimos el AFD en un archivo self._writeOnFile(af, resultFile) print "Proceso de union de AFs terminado correctamente. Resultado guardado 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)