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 19. 04. 2016 21:31

cendulka1234
Příspěvky: 145
Škola: Mendelova univerzita
Pozice: student
Reputace:   
 

Einsteinova hádanka v Pascalu

Ahoj,
prosím mohl by mi někdo poradit, jak bych měla řešit einsteinovu hádanku v Pascalu? Vůbec nevim, jak začít. Napadly mě množiny pro národnost, barvy atd..ale pak nevim jestli to vkládat do matice. Nebo jak pokračovat.

Díky za odpověď

Offline

 

#2 19. 04. 2016 22:04

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: Einsteinova hádanka v Pascalu

↑ cendulka1234:

Co je Einsteinova hádanka?


Budoucnost patří aluminiu.

Offline

 

#3 12. 05. 2016 17:16

dzejkob
Zelenáč
Příspěvky: 10
Reputace:   
 

Re: Einsteinova hádanka v Pascalu

No předpokládám, že to řešení by mělo být obecné.

- Základ by byla nějaká vazba Subjekt x Vlastnost - kdy těch vlastností může být více. Dá se to pak samozřejmě interpretovat jako ta klasická tabulka

- jedna monžina subjektů (to mohou být ty domy, lidé nebo cokoliv)

- potom jedna množina typů vlastností s možnými hodnotami kde platí, že počet vlastností musí být stejný, jako počet subjektů

- no a toto vše představuje nějaký výchozí stav. Pro začátek bych ho nadefinoval nějak jednoduše:

Subjekty = Pepa, Franta, Karel
VL1 - mazlíček = pes, kočka, had
VL2 - výška = 180 cm, 165 cm, 170 cm
VL3 - patro domu = přízemí, první, druhé

- potom bych začal definicí pravidel, kde se to může začít komplikovat. Pravidla bych rozdělil na dva typy, podle způsobu řešení:
a) explicitní
b) podmíněná

explicitní jsou ty, která se dají přímo vložit do matice bez jakýchkoliv dedukcí. Podmíněná pracují s dalšími vstupy podle různých pravidel.

- algoritmus tedy v první iteraci načte pouze explicitní pravidla - to mohou být např.:

"Karel má psa jako mazlíčka" (Karel x VL1 = pes)
"Franta bydlí v druhém patře" (Franta x VL3 = druhé)

- nakonec ta nejkomplikovanější fáze, kdy se algoritmus snaží řešit všechny ostatní pravidla, která nejsou explicitní. Jede tedy v iteracích, dokud vše nevyřeší, nebo se nedostane do stavu, kdy nebude možné žádné pravidlo vyřešit (tj. chybné zadání)

- algoritmus pro aktuální pravidlo vytvoří stavový prostor - tedy např. pro pravidlo "Pepa bydlí vedle karla" - tak protože neví, kde bydlí karel - tak označí jako možný stav přízemí, tak první patro (druhé už ne - neboť tam bydlí franta)

posléze projde oba tyto stavy - a prochází další pravidla, pro oba stavy, kdy jednou Pepa bydlí v přízemí a posléze v prvním patře. Např. by následovalo pravidlo:

"Karel nebydlí vedle Franty"

ten by byl pro stav, kdy Pepa bydlí v přízemí nevalidní - celá větev by se zahodila. Pro stav, kdy Pepa bydlí v prvním patře je jediná možnost pro Karla přízemí - jedná se tedy v této kombinaci o explicitní pravidlo a celá větev je splněna - hodnoty v této větvi se doplní explicitně do matice a jede se dál

- pro rozsáhlé stavové prostory je třeba zapracovat na nějaké heuristice, aby se to nesnažilo řešit naprosto nesouvisející pravidla - ale to asi ani u toho einsteinové hádanky nebude potřeba

- až bych měl hotový základ, tak bych to postupně vylepšoval a implementoval chování složitějších pravidel


Takže asi nějak takhle.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson