Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 31. 08. 2012 19:01 — Editoval deFermat (31. 08. 2012 19:26)

deFermat
Zelenáč
Příspěvky: 9
Reputace:   
 

Hledání posloupností v posloupnosti

Zdravím, potřebuji poradit s tímto příkladem:

Máme dánu posloupnost p1 racionálních čísel, přičemž tato posloupnost má např. 1000 členů.
Posloupnost p2 racionálních čísel má méně členů než p1 - např. 10

Úkolem algoritmu je vypsat části z posloupnosti p1 co nejvíce odpovídající p2 a seřadit je podle relevance.

Mám sice představu jak by to mohlo fungovat, ale nemám tušení jak to naprogramovat v PHP (na PHP netrvám, ale je to priorita).

Budu rád za každou odpověď, nejsem matematik a programuji teprve rok.

Offline

 

#2 31. 08. 2012 22:07

check_drummer
Příspěvky: 5509
Reputace:   106 
 

Re: Hledání posloupností v posloupnosti

↑ deFermat:
Ahoj, co znamená "co nejvíce odpovídající"? Děkuji.


"Máte úhel beta." "No to nemám."

Offline

 

#3 31. 08. 2012 23:28

deFermat
Zelenáč
Příspěvky: 9
Reputace:   
 

Re: Hledání posloupností v posloupnosti

↑ check_drummer:

Znamená to co nejmenší rozdíl mezi jednotlivými členy hledané posloupnosti s nalezené části p1.

Algoritmus by měl najít několik možností a seřadit je podle relevance tzn. od nejmenšího rozdílu mezi posloupnostmi.

Offline

 

#4 01. 09. 2012 19:55

check_drummer
Příspěvky: 5509
Reputace:   106 
 

Re: Hledání posloupností v posloupnosti

↑ deFermat:
Ani to není přesné - těch rozdílů tam je více - takže co nejmenší součet těchto rozdílů? Nebo co nejmenší součet druhých mocnin těchto rozdílů?...


"Máte úhel beta." "No to nemám."

Offline

 

#5 02. 09. 2012 13:26

deFermat
Zelenáč
Příspěvky: 9
Reputace:   
 

Re: Hledání posloupností v posloupnosti

↑ check_drummer:
Omlouvám se za nepřesné vyjadřování, myslel jsem co nejmenší součet druhých mocnin rozdílů.

Offline

 

#6 02. 09. 2012 21:05

check_drummer
Příspěvky: 5509
Reputace:   106 
 

Re: Hledání posloupností v posloupnosti

↑ deFermat:
Zatím jsem neměl čas se nad tím zamyslet, ale buď by možná mohlo pomoct tzv. dynamické programování a nebo je možné, že úloha je NP úplná... Zkusím se nad tím v příštích dnesch zamyslet. Na druhou stranu to vypadá jako úloha z praxe a tudíž by nějaké algoritmy na její řešení známy být mohly...


"Máte úhel beta." "No to nemám."

Offline

 

#7 03. 09. 2012 21:03 — Editoval deFermat (03. 09. 2012 21:03)

deFermat
Zelenáč
Příspěvky: 9
Reputace:   
 

Re: Hledání posloupností v posloupnosti

↑ check_drummer:
Asi by pomohlo popsat příklad přímo v praxi:

Týká se to predikce ceny kurzů, akcií, burzovních indexů atd., při předpokladu že se cena (hodnota) opakuje v určitých cyklech (nevíme jak dlouhých a jak dynamických), je to čistě experimentální a je to jen jeden z modelů.

Takže si představme graf kurzu nějaké akcie a můžeme si všimnout podobných "struktur" kurzu na různých místech (v různých časech, obdobích), přičemž vývoj před a především po takovém cyklu je podobný.
Je jasné, že tyto opakující se části jsou různě dlouhé (různý počet prvků hledané posloupnosti).

Takže úkolem algoritmu je vzít aktuální kurz resp. třeba 10 dní nebo 10 minut z aktuálního kurzu a srovnat je s minulostí. Mělo by se to srovnávat tak, že se vezme hledaná posloupnost a srovná se postupně s celou historií s kroky odpovídající dílku hledané posloupnosti takže třeba den po dni nebo minuta po minutě tzn. v historii se vždy budeme "posouvat" o tento jeden dílek. Při každém srovnání vypočítáme rozdílnost posloupností (zatím nevím jaký by byl nejlepší způsob) a tento rozdíl někam uložíme i s pořadovými čísly části v posloupnosti p1, abychom ji pak mohli jednoduše načíst.
Až se hledaná posloupnost srovná s celou p1, vypíšeme všechny nalezené části p1 a seřadíme je dle relevance tj. co nejmenší rozdíl.

A to je celé, problém je, že nevím jak to naprogramovat.

PS: Děkuji za snahu

Offline

 

#8 08. 09. 2012 10:22

check_drummer
Příspěvky: 5509
Reputace:   106 
 

Re: Hledání posloupností v posloupnosti

↑ deFermat:
Aha, takže ta menší posloupnost není v té větší nesouvisle. Tak to je ale jednoduchá úloha na programování. Co ti na tom není jasné?


"Máte úhel beta." "No to nemám."

Offline

 

#9 09. 09. 2012 17:36

deFermat
Zelenáč
Příspěvky: 9
Reputace:   
 

Re: Hledání posloupností v posloupnosti

Programuji teprve rok a v PHP jsem úplný začátečník takže bych ocenil zdrojový kód, věřte že to bude několikrát rychlejší způsob jak to realizovat.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson