Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.76 KB | None | 0 0
  1. import re
  2. from itertools import product
  3. data_file_in = open("observation_mix.txt", "r")
  4. matrix = [[],[],[],[],[],[],[],[],[],[],[]]
  5. for line in data_file_in:
  6.     rec = []
  7.     send = []
  8.     send.extend(re.findall('\d+', line.partition(":")[0]))
  9.     rec.extend(re.findall('\d+', line.split(":",1)[1]))
  10.     for sender in send:
  11.         matrix[int(sender)].append(rec)
  12. #for list in matrix:
  13. #    print(list)
  14. #    for element in list:
  15. #        print (element)
  16. #print(matrix[1][0])
  17.  
  18. def createTupel(m, matrix, user):
  19.     matrices = []
  20.     for x in range(0,m):
  21.         matrices.append(matrix[user][x])
  22.     myprod = list(product(*matrices))
  23.     return myprod
  24.  
  25. def checkTupel(tupel,m, matrix, user):
  26.     deleteTupel = []
  27.     #print tupel
  28.     for element in tupel:
  29.         #print element
  30.         for i in range(m,len(matrix[user])):
  31.             check = 0
  32.             for x in element:
  33.                 #print(matrix[user][i])
  34.                 if x in matrix[user][i]:
  35.                     check = check + 1
  36.                     #print check
  37.             if check == 0:
  38.                 if element not in deleteTupel:
  39.                     deleteTupel.append(element)
  40.                 break
  41.     hits = list(set(tupel) - set(deleteTupel))
  42.     seen = set()
  43.     unique = []
  44.     for x in hits:
  45.             srtd = tuple(sorted(x))
  46.             if srtd not in seen:
  47.                 unique.append(x)
  48.                 seen.add(srtd)
  49.  
  50.     return unique
  51.  
  52.  
  53. def hittingSet(matrix):
  54.     for user in range(1, len(matrix)):
  55.         hittingSet = []
  56.         m=1
  57.         while len(hittingSet) == 0:
  58.             tupels = createTupel(m,matrix,user)
  59.             hittingSet = checkTupel(tupels,m,matrix,user)
  60.             m = m + 1
  61.         print (user, hittingSet)
  62.  
  63. hittingSet(matrix)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement