Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pp:25:teme:prolog-lightup [2025/05/17 21:58]
andrei.olaru
pp:25:teme:prolog-lightup [2025/05/23 13:24] (current)
andrei.olaru
Line 2: Line 2:
  
   * Data publicării:​ 12.05.2025   * Data publicării:​ 12.05.2025
-  * Data ultimei modificări: ​17.05.2025 (vezi [[#​Changelog|changelog]] )+  * Data ultimei modificări: ​23.05.2025 (vezi [[#​Changelog|changelog]] )
   * [[https://​curs.upb.ro/​2024/​mod/​forum/​view.php?​id=168710|Forum temă]]   * [[https://​curs.upb.ro/​2024/​mod/​forum/​view.php?​id=168710|Forum temă]]
   * [[https://​vmchecker.cs.pub.ro/​ui/#​PP|vmchecker]]   * [[https://​vmchecker.cs.pub.ro/​ui/#​PP|vmchecker]]
Line 107: Line 107:
     * pentru toți pereții cu număr cu care este vecină ortogonal poziția, numărul de lumini din jurul peretelui este mai mic decât numărul de pe perete.     * pentru toți pereții cu număr cu care este vecină ortogonal poziția, numărul de lumini din jurul peretelui este mai mic decât numărul de pe perete.
   * verificarea dacă o soluție este validă (vedeți cele 3 reguli de mai sus).   * verificarea dacă o soluție este validă (vedeți cele 3 reguli de mai sus).
-  * rezolvarea unei table. +  * rezolvarea unei table. Aici vom folosi mecanismul de backtracking din Prolog și este suficient să avem două reguli: 
-  * rezolvarea eficientă a unei table, folosind două euristici simple.+    * dacă tabla este o soluție validă, atunci am terminat 
 +    * găsim pe tablă o poziție unde putem pune o lumină, punem o lumină acolo, și căutăm o soluție continuând de la noua tablă. Dacă căutarea eșuează la un moment dat, Prolog se va întoarce și va încerca să pună o lumină într-o altă poziție disponibilă și va continua de acolo, și așa mai departe
 +  * rezolvarea eficientă a unei table, folosind două euristici simple: alegem să punem lumini în jurul pereților cu numere care au numărul exact egal cu numărul pozițiilor disponibile (unde se pot pune lumini) din jurul peretelui respectiv; și alegem să punem lumini în poziții care nu ar mai putea fi luminate din alte poziții disponibile de pe tablă.
  
 Hints specifice pentru fiecare predicat sunt disponibile în schelet. Hints specifice pentru fiecare predicat sunt disponibile în schelet.
Line 145: Line 147:
   * 14.05 -- teste și vmchecker   * 14.05 -- teste și vmchecker
   * 17.05 -- publicare etapa 2   * 17.05 -- publicare etapa 2
 +  * 21.05 -- schimbare ordine în directions/​1 și completare comentariu solve_plus/​2 (primul criteriu), adăugare al treilea criteriu.
 +  * 21.05 -- publicare teste etapa 2
 +  * 23.05 -- uniformizare ordine direcții în predicatele neighbor, delta
 +  * 23.05 -- ajustare teste pentru a preîntâmpina satisfacerea testelo cu soluții triviale.
 +
  
pp/25/teme/prolog-lightup.1747508300.txt.gz · Last modified: 2025/05/17 21:58 by andrei.olaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0