[Python-checkins] python/nondist/sandbox/setobj automata.py, 1.1,
1.2 cube.py, 1.1, 1.2
rhettinger at users.sourceforge.net
rhettinger at users.sourceforge.net
Sun Nov 16 11:36:00 EST 2003
Update of /cvsroot/python/python/nondist/sandbox/setobj
In directory sc8-pr-cvs1:/tmp/cvs-serv18199
Modified Files:
automata.py cube.py
Log Message:
Update the demo programs to use the builtins
Index: automata.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setobj/automata.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** automata.py 16 Nov 2003 03:10:40 -0000 1.1
--- automata.py 16 Nov 2003 16:35:58 -0000 1.2
***************
*** 5,13 ****
"""
- try:
- from set import frozenset as ImmutableSet, set as Set
- except ImportError:
- from sets import ImmutableSet, Set
-
class InputError(Exception): pass
--- 5,8 ----
***************
*** 20,24 ****
functions.
"""
! self.alphabet = ImmutableSet(Sigma)
self.transition = delta
self.initialState = S0
--- 15,19 ----
functions.
"""
! self.alphabet = frozenset(Sigma)
self.transition = delta
self.initialState = S0
***************
*** 27,32 ****
def states(self):
"""Generate all states of the DFA."""
! explored = Set()
! unexplored = Set([self.initialState])
while unexplored:
s = unexplored.pop()
--- 22,27 ----
def states(self):
"""Generate all states of the DFA."""
! explored = set()
! unexplored = set([self.initialState])
while unexplored:
s = unexplored.pop()
***************
*** 55,71 ****
and result of the transition function are both sets.
"""
! self.alphabet = ImmutableSet(Sigma)
self.transition = delta
! self.initialStates = ImmutableSet(S0)
self.isfinal = F
def setTransition(self,states,c):
"""States reachable from input set by input c."""
! result = Set()
for s in states:
result |= self.transition(s,c)
! return ImmutableSet(result)
! def finalSet(self,states):
"""Test whether any of given set of states is final."""
for s in states:
--- 50,66 ----
and result of the transition function are both sets.
"""
! self.alphabet = frozenset(Sigma)
self.transition = delta
! self.initialStates = frozenset(S0)
self.isfinal = F
def setTransition(self,states,c):
"""States reachable from input set by input c."""
! result = set()
for s in states:
result |= self.transition(s,c)
! return frozenset(result)
! def finalset(self,states):
"""Test whether any of given set of states is final."""
for s in states:
***************
*** 77,81 ****
"""Convert NFA to DFA."""
return DFA(self.alphabet,self.setTransition,
! self.initialStates,self.finalSet)
def __call__(self,input):
--- 72,76 ----
"""Convert NFA to DFA."""
return DFA(self.alphabet,self.setTransition,
! self.initialStates,self.finalset)
def __call__(self,input):
***************
*** 94,98 ****
4: ([], []),
}
! def delta(s,i): return ImmutableSet(Sipser_1_13[s][int(i)])
def final(s): return s == 4
N2 = NFA("01",delta,[1],final)
--- 89,93 ----
4: ([], []),
}
! def delta(s,i): return frozenset(Sipser_1_13[s][int(i)])
def final(s): return s == 4
N2 = NFA("01",delta,[1],final)
Index: cube.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setobj/cube.py,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** cube.py 16 Nov 2003 02:41:33 -0000 1.1
--- cube.py 16 Nov 2003 16:35:58 -0000 1.2
***************
*** 1,22 ****
- try:
- from set import frozenset as ImmutableSet
- except ImportError:
- from sets import ImmutableSet
-
def powerset(U):
"""Generates all subsets of a set or sequence U."""
U = iter(U)
try:
! x = ImmutableSet([U.next()])
for S in powerset(U):
yield S
yield S | x
except StopIteration:
! yield ImmutableSet()
def cube(n):
"""Graph of n-dimensional hypercube."""
! singletons = [ImmutableSet([x]) for x in range(n)]
! return dict([(x, ImmutableSet([x^s for s in singletons]))
for x in powerset(range(n))])
--- 1,17 ----
def powerset(U):
"""Generates all subsets of a set or sequence U."""
U = iter(U)
try:
! x = frozenset([U.next()])
for S in powerset(U):
yield S
yield S | x
except StopIteration:
! yield frozenset()
def cube(n):
"""Graph of n-dimensional hypercube."""
! singletons = [frozenset([x]) for x in range(n)]
! return dict([(x, frozenset([x^s for s in singletons]))
for x in powerset(range(n))])
***************
*** 28,34 ****
for x in G:
for y in G[x]:
! nx = [ImmutableSet([x,z]) for z in G[x] if z != y]
! ny = [ImmutableSet([y,z]) for z in G[y] if z != x]
! L[ImmutableSet([x,y])] = ImmutableSet(nx+ny)
return L
--- 23,29 ----
for x in G:
for y in G[x]:
! nx = [frozenset([x,z]) for z in G[x] if z != y]
! ny = [frozenset([y,z]) for z in G[y] if z != x]
! L[frozenset([x,y])] = frozenset(nx+ny)
return L
More information about the Python-checkins
mailing list