>>> import networkx as nx >>> arestes = [ ... ('ociós', 'cercant arbre', {'canvi' : 'espai en magatzem'}), ... ('cercant arbre', 'ociós', {'canvi' : 'magatzem ple'}), ... ('cercant arbre', 'tallant arbre', {'canvi' : 'arbre trobat'}), ... ('cercant arbre', 'morint', {'canvi' : 'energia=0'}), ... ('tallant arbre', 'recollint fusta', {'canvi' : 'arbre tallat'}), ... ('tallant arbre', 'morint', {'canvi' : 'energia=0'}), ... ('recollint fusta', 'cap al magatzem', {'canvi' : 'motxilla plena'}), ... ('recollint fusta', 'cercant arbre', {'canvi' : 'motxilla no plena'}), ... ('recollint fusta', 'morint', {'canvi' : 'energia=0'}), ... ('cap al magatzem', 'buidant motxilla', {'canvi' : 'al magatzem'}), ... ('cap al magatzem', 'morint', {'canvi' : 'energia=0'}), ... ('buidant motxilla', 'en espera', {'canvi' : 'magatzem ple'}), ... ('buidant motxilla', 'ociós', {'canvi' : 'motxilla buida'}), ... ('buidant motxilla', 'morint', {'canvi' : 'energia=0'}), ... ('en espera', 'buidant motxilla', {'canvi' : 'espai en magatzem'}), ... ] >>> g = nx.DiGraph(arestes) >>> from npc import estats_segons_canvi --ini-enunciat >>> estats_segons_canvi(g, 'arbre trobat') (['cercant arbre'], ['tallant arbre']) >>> estats_segons_canvi(g, 'espai en magatzem') (['en espera', 'ociós'], ['buidant motxilla', 'cercant arbre']) >>> estats_segons_canvi(g, 'energia=0') (['buidant motxilla', 'cap al magatzem', 'cercant arbre', 'recollint fusta', 'tallant arbre'], ['morint']) --fi-enunciat >>> estats_segons_canvi(g, 'magatzem ple') (['buidant motxilla', 'cercant arbre'], ['en espera', 'ociós']) >>> g.add_edge('tallant arbre', 'ociós', canvi='magatzem ple') >>> estats_segons_canvi(g, 'magatzem ple') (['buidant motxilla', 'cercant arbre', 'tallant arbre'], ['en espera', 'ociós'])