3.2A feladat specifikációja

A következőkben bevezetjük a feladat megadásának egy másik módját, és kimondunk egy a gyakorlat szempontjából nagyon fontos tételt.

Általában a feladat nem függ az állapottér összes komponensétől, azaz az állapottér több pontjához is ugyanazt rendeli. Ezeket a pontokat fogjuk össze egy ponttá a paramétertér segítségével.

3.2. Definíció (PARAMéTERTéR).

Legyen feladat. A halmazt a feladat paraméterterének nevezzük, ha van olyan és reláció, hogy

Fontos észrevenni, hogy paraméterteret mindig lehet találni. Például maga a feladat állapottere minden esetben választható paramétertérnek úgy, hogy a definícióban szereplő relációnak az identikus leképezést, -nek pedig magát az feladatot választjuk. Ám az, hogy egy konkrét esetben mit is választunk paramétertérnek a feladattól függ. Általában úgy választjuk meg a paraméterteret, hogy a következő tételt kényelmesen tudjuk használni.

3.2. TéTEL: SPECIfiKáCIó TéTELE Legyen feladat, az egy paramétertere, , , Legyen , és definiáljuk a következő állításokat:

Ekkor ha akkor az program megoldja az feladatot.

Bizonyítás: A megoldás definíciója két pontjának teljesülését kell belátnunk:

  1. , ugyanis

    Legyen tetszőleges. Ekkor az és relációk definíciója miatt és

    De ekkor a tétel feltétele alapján:

  2. , ui.

    Legyen tetszőlegesen rögzített, olyan, amelyre . Ekkor a feltétel szerint:

_

A specifikáció tétele csak elégséges feltétel a megoldásra, azaz nem megfordítható: lehet adni olyan feladat-program párt, ahol a program megoldja a feladatot, de a specifikáció tétele nem teljesül. Ez természetesen attól is függ, hogy a feladatot hogyan specifikáljuk, azaz milyen paraméterteret választunk, és hogyan bontjuk a feladatot és relációk kompozíciójára.

Azonnal látszik, hogy

Ha egy -re , akkor .