Ma megírtam a nagyházit, mégpedig clpb-re alapozva.
Felvettem minden ujj részére 3 változót, a három irányt, amerre mutathat, a
három ujjirányból pontosan 1 igaz. Majd minden mezőhöz kigyűjtöttem egy
listába azokat az ujjirányokat, amik rá mutathatnak, és ezek közül pontosan
annyi igaz, ahányas számú a mező (kivéve a 9-est).
Tehát mindenhol card() feltételt használtam.
És katasztrófa! A mezők feltételei (tehát a sat(card(...))) percekig futnak.
Próbálkoztam azzal, hogy a feltételeket kigyűjtöm egy listába, sorba
rendezem aszerint, hogy hányas a mező - így hátha a kisebbek
behelyettesítenek párat, de semmi javulás. (Bizonyára mindig mindenkit
felkelt és rugdos, hogy mi lenne ha te most igaz lennél?... Ez lassabb, mint
maga a lableing, és a memória is elfogy!)
Az lenne a megoldás, gondolom, hogy a sat(card) egy gyengébb változatát
használnám, ami csak a tuti behelyettesítéseket szűkítené, dobná el - de ha
jól tudom, a clpb-hez nem lehet hozzányúlni.
Vagy írjam meg clpfd-ben a sat(card())-ot, és azzal futtassam?
Üdv.
SzaMa