Szacowanie możliwości

Permutacje. Kombinacje. Wariacje. Rozmieszczanie kul w urnach. Silnie i symbole Newtona. Przeliczanie zbiorów. Funkcje tworzące. Teoria grafów.
Misticfrezer
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 18 mar 2007, o 17:02
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 1 raz

Szacowanie możliwości

Post autor: Misticfrezer »

Witam

Tworzę program do generowania synonimizownych tekstów - tzw 'mieszarkę'.
Wynikowe teksty mają mieć określoną unikalność. Mój problem polega na oszacowania maksymalnej liczby możliwych tekstów do wygenerowania, aby program znał 'granicę' i nie pracował bezsensownie po jej przekroczeniu.

Przypuśćmy, że mamy projekt o takiej postaci:

Kod: Zaznacz cały

{Ala|Ola|Ela} {ma|posiada} {kota|rybki|{pieska|szczeniaka}}
Liczba wszystkich możliwych tekstów to \(\displaystyle{ 3 * 2 * (2*2) = 24}\). Są 3 wyrazy możliwe do powtórzenia.
Niestety, sporo tekstów z tego zbioru powtarza się w jakimś stopniu.
Unikalność jest to procent niepowtórzonych wyrazów w dwóch porównywanych tekstach.

"Ala ma rybki" jest unikalna względem "Ela ma rybki" w 33%.
"Ela posiada kota" jest unikalna względem "Ela ma rybki" w 66%.

Algorytm działa tak: Mamy jakiś próg unikalności, przykładowo N = 50%. M (wsp. 'jakości') jest \(\displaystyle{ N \le M \le 100%}\), zwykle jednak N i M są sobie równe.
Program losuje pierwszy tekst - jest on unikalny w 100%, bo jest jedyny :)
Każdy kolejny losowany tekst jest porównywany z tymi, będacymi już w puli.
Jeżeli M tekstów w puli 'powie', że kandydat jest unikalny względem nich w N, nowy tekst wchodzi do puli.

Wymyśliłem sobie takie szacowanie na potęgach dwójki: (tak jakby w grupie byłyby po 2 synonimy)
Przyjmuję najmniejszą liczbę tekstów za \(\displaystyle{ 2^{1} = 2}\). Takie dwa byłyby całkowicie różne od siebie.
Teraz mam liczbę wszystkich możliwych tekstów = \(\displaystyle{ 24}\).
Znajduję logarytm od podstawie 2 z 24 = \(\displaystyle{ 4.5849}\)
Zmniejszam wynik o N (tutaj 50%) i dostaję \(\displaystyle{ 2.29248125}\).
\(\displaystyle{ 2^{2.29248125}}\) to około 4,89, co zaokrąglam w dól i mam 4 możliwe teksty unikalne w 50%.

Empirycznie jednak wiem, że gdy N = 50%, M = 100%, to program generuje max 6 takich tekstów.
Gdy N = 75%, M = 75%, to program generuje max 2 teksty i tak też wynika z oszacowania.
Gdy N = M = 50%, tekstów powstaje dużo, ponad tysiąc, ale myślę, że będzie ich nieskończenie wiele. Oszacowanie twierdzi, że da się 4 :) Czuję, że szacowanie jakoś działa tylko dla M = 100%.

Rozrzut wynika z faktu, że ilość synonimów może być różna, nie zawsze po 2 w grupie - ja mam tutaj 3, 2 i 4.
Oczywiście losują się daleko większe teksty, gdzie program (i szacowanie) dla niższych N się sprawują lepiej :P (bo na większej próbie niedoskonałości się rozmywają - tutaj jest 'niewdzięczny' przykład)

I teraz moje pytanie: czy da się w prosty sposób oszacować dokładniej liczbę tekstów, również dla M mniejszych od 100%? Czy w ogóle dobrze myślę?
abc666

Szacowanie możliwości

Post autor: abc666 »

A czy

Kod: Zaznacz cały

{kota|rybki|{pieska|szczeniaka}}
różni się czymś od

Kod: Zaznacz cały

{kota|rybki|pieska|szczeniaka}
? Chodzi mi o generowany zbiór tekstów i podobieństwo.
MichalKulis
Użytkownik
Użytkownik
Posty: 47
Rejestracja: 19 sty 2011, o 08:15
Płeć: Mężczyzna
Lokalizacja: Wrocław

Szacowanie możliwości

Post autor: MichalKulis »

a co to w ogóle jest M? bo z postu nie można się tego za bardzo domyślić..
abc666

Szacowanie możliwości

Post autor: abc666 »

Przecież jest napisane.
Jeżeli M tekstów w puli 'powie', że kandydat jest unikalny względem nich w N, nowy tekst wchodzi do puli.
MichalKulis
Użytkownik
Użytkownik
Posty: 47
Rejestracja: 19 sty 2011, o 08:15
Płeć: Mężczyzna
Lokalizacja: Wrocław

Szacowanie możliwości

Post autor: MichalKulis »

Nie zajarzyłem, że chodzi o ilość podaną w procentach z całości:)
Misticfrezer
Użytkownik
Użytkownik
Posty: 5
Rejestracja: 18 mar 2007, o 17:02
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 1 raz

Szacowanie możliwości

Post autor: Misticfrezer »

abc666 pisze:A czy

Kod: Zaznacz cały

{kota|rybki|{pieska|szczeniaka}}
różni się czymś od

Kod: Zaznacz cały

{kota|rybki|pieska|szczeniaka}
? Chodzi mi o generowany zbiór tekstów i podobieństwo.
Niczym się nie różni o strony matematycznej, tylko ewentualnie od językowej Taki przykład.
MichalKulis pisze:Nie zajarzyłem, że chodzi o ilość podaną w procentach z całości:)
Przepraszam, jeżeli nie wyrażam się wystarczająco jasno, starałem się jak mogłem.-- 3 października 2011, 23:48 --Dodam, że nie ma powtórzeń, tj duplikatów!
ODPOWIEDZ