Powiedz, że mam dwa zestawy: set1 = {a,b,c,d,e,f}
i set2 = {a,b,c,d,e,g}
. Zamiast wyrażanie ich wyraźnie, chcę stworzyć coś jakZestaw uproszczeń
common = {a,b,c,d,e}
set1 = common + f
set2 = common + g
Gdybyśmy chcieli reprezentować {a,b,c,h}
, możemy reprezentować go jako common - d - e + h
.
Moim celem jest generowanie optymalnej wspólnej porcji. Mając tylko jedną wspólną sekcję, nie jest to zbyt trudne, ale muszę pozwolić na więcej niż jedną (ale nie nieograniczoną, lub korzyści uzyskane byłyby trywialne).
Optymalnie, mam na myśli "najmniejszą liczbę wyrażonych elementów". Tak więc w powyższym przykładzie "kosztuje" 5 (liczba elementów), aby utworzyć zmienną common
. Następnie ustawia 1 i 2 zarówno koszt 2 (jeden do odniesienia wspólnego, jeden do dodania dodatkowego elementu), w sumie 7. Bez podstawienia kosztowałoby to 12 do przechowywania (po 6 elementów). Podobnie, odejmując element z wymienionej będzie „kosztu” 1.
Innym przykładem {a,b,c,d}, {a,c,d,e}, {e,f,g,h} and {e,f}
może być
common1 = {a,c,d}
common2 = {e,f,g}
set1 = common1 + b
set2 = common1 + e
set3 = common2 + h
set4 = common2 - g
umożliwiając wielu wspólnych części tego staje się o wiele trudniejsza. Czy istnieje nazwa tego typu problemu lub coś podobnego? Wygląda na to, że może to być związane z kompresją, ale nie byłem w stanie znaleźć zbyt wielu informacji na temat tego, od czego zacząć.
Niektóre inne szczegóły, które mogą być dowiemy się z:
- pozwolono odwołać wiele wspólnych części reprezentować jeden zestaw może być ważne, ale nie jest wymagane.
- Dla mojego przypadku użycia, zestawy będą zwykle około 20 elementów i około 10 różnych zestawów.
prawdopodobnie związane: [analiza formalna koncepcja] (https: //en.wikipedia.org/wiki/Formal_concept_analysis). –
Czy element może występować w wielu wspólnych zestawach? Na przykład. common1 = {a, b, c, d}; common2 = {d, e, f, g}; set1 = {a, b, c, d, e, f, g} = common1 + common2 - d. – m69
Tak, nie ma problemów z byciem w wspólnych zestawach. - nie byłby nawet określony, ponieważ jest zbiorem, a nie listą, więc duplikaty są ignorowane. –