Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def SA...
- def generate_random_state():
- state = [0 for i in range(n//2)] + [1 for i in range(n-(n//2))]
- return random_shuffle(state)
- def action(state):
- # 1/2 probability of success
- # u = randint(0, n-1)
- # v = randint(0, n-1)
- # state[u], state[v] = state[v], state[u]
- # 100% success
- ind0 = [i for i in range(n) if state[i] == 0]
- ind1 = [i for i in range(n) if state[i] == 1]
- u = randint(0, len(ind0)-1)
- v = randint(0, len(ind1)-1)
- state[ind0[u]], state[ind1[v]] = state[ind1[v]], state[ind0[u]]
- return state
- def h(state):
- sumA = sum([X[i] for i in range(n) if state[i] == 1]) # sum all elements in A
- sumB = sum([X[i] for i in range(n) if state[i] == 0]) # sum all elements in B
- return abs(sumA - sumB)
Advertisement
Add Comment
Please, Sign In to add comment