>>> 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 camins_de_retorn --ini-enunciat >>> camins_de_retorn(g, 'morint') [] >>> camins_de_retorn(g, 'en espera') [['en espera', 'buidant motxilla', 'en espera']] >>> sorted(camins_de_retorn(g, 'ociós')) # usem sorted() perquè és indiferent l'ordre de la llista retornada [['ociós', 'cercant arbre', 'ociós'], ['ociós', 'cercant arbre', 'tallant arbre', 'recollint fusta', 'cap al magatzem', 'buidant motxilla', 'ociós']] --fi-enunciat >>> sorted(camins_de_retorn(g, 'tallant arbre')) [['tallant arbre', 'recollint fusta', 'cap al magatzem', 'buidant motxilla', 'ociós', 'cercant arbre', 'tallant arbre'], ['tallant arbre', 'recollint fusta', 'cercant arbre', 'tallant arbre']] >>> g.add_edge('morint', 'ociós', canvi='ressuscitant') >>> sorted(camins_de_retorn(g, 'ociós')) [['ociós', 'cercant arbre', 'morint', 'ociós'], ['ociós', 'cercant arbre', 'ociós'], ['ociós', 'cercant arbre', 'tallant arbre', 'morint', 'ociós'], ['ociós', 'cercant arbre', 'tallant arbre', 'recollint fusta', 'cap al magatzem', 'buidant motxilla', 'morint', 'ociós'], ['ociós', 'cercant arbre', 'tallant arbre', 'recollint fusta', 'cap al magatzem', 'buidant motxilla', 'ociós'], ['ociós', 'cercant arbre', 'tallant arbre', 'recollint fusta', 'cap al magatzem', 'morint', 'ociós'], ['ociós', 'cercant arbre', 'tallant arbre', 'recollint fusta', 'morint', 'ociós']]