Matematické Fórum


1. 8. 2026 (L) Fórum bude brzy uzavřeno 😿

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