TODO 1: for _ in range(n_sentences): rhyme = random.sample([*rhyme_groups],1)[0] for _ in range(2): for _ in range(n_random_words): sequence += random.sample(words,1) sequence += random.sample(rhyme_groups[rhyme],1) TODO 2: sequence = random.sample(words,1) for i in range(sequence_length - 1): sequence += random.sample(transition[sequence[i]],1) TODO 3: transition_table = [] for w1 in transition: for w2 in transition[w1]: transition_table.append([word_to_i[w1], word_to_i[w2]]) # create the constraints for i, v in enumerate(seq[:-1]): solver.Add(solver.AllowedAssignments( # also named table constraint, or extensional constraint (seq[i], seq[i + 1]), # variables transition_table)) # table TODO 4: # Build the rhyme table rhymes_table = [] for l in rhyme_groups.values(): rhymes_table += [[word_to_i[w1],word_to_i[w2]] for w1 in l for w2 in l] # TODO # Create the constraints solver.Add(solver.AllowedAssignments((seq[4], seq[9]), rhymes_table)) # First rhyme solver.Add(solver.AllowedAssignments((seq[14], seq[19]), rhymes_table)) # second one