De ce contează?
Imaginează-ți că intri în cameră și pe masă e o partidă de table abandonată. Nu știi cine a aruncat zarul ieri, nici cu ce a început jocul. Și totuși poți continua: pozițiile pieselor de pe tablă și „al cui e rândul” îți spun tot ce-ți trebuie. Toată istoria jocului e cuprinsă în ceea ce vezi acum. Asta e o stare: o fotografie a sistemului din care poți merge mai departe, fără să fi fost de față la mutările anterioare.
Ce este
Starea unui sistem este mulțimea minimă de valori care descrie complet sistemul la un moment dat — suficientă cât să calculezi pasul următor fără să te uiți la toată istoria de dinainte.
Gândește-te la „ce ai nevoie să știi acum ca să continui”:
- la o partidă de table: pozițiile pieselor și al cui e rândul,
- la un robot pe o tablă: pe ce linie e, pe ce coloană e, în ce direcție privește,
- la un contor de pași: numărul curent atins,
- la un șir de operații pe un vector: conținutul actual al vectorului.
În toate, regula e aceeași: o stare bună prinde tot ce-ți trebuie ca să mergi mai departe și nimic în plus. E ca o salvare („save game”) într-un joc video — încarci fișierul și continui exact de unde ai rămas, fără să rejoci de la început.
Verifică o stare cu o singură întrebare: „Dacă șterg tot ce s-a întâmplat înainte și păstrez doar atât, mai pot calcula pasul următor?” Dacă DA — starea e completă. Dacă NU — îți lipsește ceva și trebuie adăugat.
O stare poate fi prea mică sau prea mare, și ambele sunt greșeli:
- Prea mică (lipsește informație): un robot care reține doar linia și coloana, dar uită direcția în care privește. Când îi spui „mergi un pas înainte”, nu mai știi încotro — nu poți continua.
- Prea mare (informație redundantă): un contor care, în loc să rețină doar numărul curent
5, păstrează toată lista pașilor făcuți:1, 2, 3, 4, 5. Ca să afli următorul număr îți ajunge5plus 1. Lista întreagă e istorie inutilă — ocupă memorie degeaba.
Arta e să găsești rezumatul exact: cea mai mică fotografie din care poți merge mai departe.