MajorAgent Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΡΡΡΠΎΠ²
MinorAgent Π‘ΠΎΠ·Π΄Π°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π½Π΅ΠΏΡΠΎΡΠΈΠ»ΠΈΡΡΡΡΠΈΡ ΠΊΡΡΡΠΎΠ²
FilterAgent Π€ΠΈΠ»ΡΡΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΡΡΡΠΎΠ² ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΡΡΡΠΎΠ²
ScheduleAgent ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠΏΠΈΡΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΡΡΡΠΎΠ²
ΠΠ±ΡΠ΅ΠΊΡ schedule_of_courses ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΠΈ ΠΌ Π΅Ρ Ρ ΠΈΠ΅ΡΡ ΠΊΡΡΡΡ.
ΠΠ±ΡΠ΅ΠΊΡΡ blackboard ΠΈ schedule_of_courses Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΡΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠΌ ΠΊ Π½ΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π°Π³Π΅Π½ΡΠΎΠ². Π Π΄Π°Π½Π½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠ±Π° ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΠΈΠ΄ΠΈΠΌΡ Π΄Π»Ρ Π²ΡΠ΅Ρ Π°Π³Π΅Π½ΡΠΎΠ². Π Π³ Π΅Π½ΡΡ MajorAgent, MinorAgent, FilterAgent ΠΈ ScheduleAgent Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° blackboard. ΠΠ³Π΅Π½ΡΡ MajorAgent ΠΈ MinorAgent Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° schedule_of_courses. ΠΡΠΈ ΡΡΠΎΠΌ Π° Π³ Π΅Π½ΡΡ Maj orAgent ΠΈ MinorAgent ΠΈΠΌΠ΅ΡΡ Π°Π½Π°Π»ΠΎ Π³ ΠΈΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ blackboard ΠΈ schedule_of_courses.
MajorAgentl: currentDegreePlan()
MajorAgent2 : coursesTaken()
MajorAgent3 : scheduleOfCourses ()
MajorAgent4 : suggestionsForMajor ()
MinorAgentl:currentDegreePlan()
MinorAgent2:coursesTaken()
MinorAgent3:scheduleOfCourses()
MinorAgent4:suggestionsForMinor()
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΊ ΠΈΠΌΠ΅Π½ΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠ΅ΡΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²ΡΠΉ Π½ΠΎΠΌΠ΅Ρ. ΠΠ±Π° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² blackboard ΠΈ schedule_of_courses. ΠΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΈ Π·Π°ΡΠΈΡΠ΅Π½Ρ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°. ΠΠ΅ΡΠΎΠ΄Ρ masterList() ΠΈ possibleCourses() ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ guarded. ΠΠ΄Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΡΡΡΠΎΠ², Π° Π΄ΡΡΠ³ΠΈΠ΅β ΡΡΠΈΡΡΠ²Π°ΡΡ Π΅Π³ΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ masterList () ΠΈ possibleCourses () Π·Π°ΡΠΈΡΠ΅Π½Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊ Π½ΠΈΠΌ Π΄ΠΎΡΡΡΠΏΠ° (EREW).
ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ
Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΡΡΠΊΡΡΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π·Π°-Π΄Π°Π»Ρ ΠΈΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΡ ΠΏΡΠ΅ΡΠ΅Π΄Π΅Π½Ρ (Π²Π°ΡΠΈΠ°Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ), Π² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ Π°ΠΊΡΠ΅Π½Ρ ΡΡΠ°Π²ΠΈΡΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π»ΡΡ, ΡΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Π·Π°Π΄Π°Π»Ρ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΠ΅Π΄Π΅Π½Ρ. Π Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ ΠΈΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ³ΡΡΠΊΡΠΈΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ΅. ΠΡΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΉ ΡΠ°ΡΡΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ, Π²Π΄ΠΎΠ»Ρ Π΅Π΅ ΠΎΡΠΈ X. Π Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅ΠΉ ΠΏΡΠ΅ΡΠ΅Π΄Π΅Π½ΡΠ° ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΡΡΡΠ΅Π½Π° Π΄Π΅ΡΠ°Π»ΡΠΌΠΈ ΠΈ ΡΡΡΠ°ΡΠΈΡ ΡΠ²ΠΎΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΡΡΡ. ΠΠ±ΡΠ΅ΠΊΡΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ, Π½Π°ΡΠΈΠ½Π°Π» Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎ-ΡΠ΅Π»ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΠΎΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π²ΡΠΎΡΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ. ΠΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π²Π΄ΠΎΠ»Ρ ΠΎΡΠΈ Y ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ Π½Π°Π½ΠΎΡΡΡΡΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Β«ΠΆΠΈΠ·Π½Π΅Π½Π½ΡΠ΅ ΠΏΡΡΠΈΒ» (Π»ΠΈΠ½ΠΈΠΈ ΠΆΠΈΠ·Π½ΠΈ) ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². Π‘ΡΡΠ΅Π»ΠΊΠΈ ΡΠΎ ΡΠΏΠ»ΠΎΡΠ½ΠΎΠΉ Π·Π°Π»ΠΈΠ²ΠΊΠΎΠΉ Π½Π°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊΠ°, Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΎΡ Π»ΠΈΠ½ΠΈΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»ΠΈΠ½ΠΈΠΈ ΠΆΠΈΠ·Π½ΠΈ Π΄ΡΡΠ³ΠΎΠ³ΠΎ, ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² (ΠΏΡΠΈΡΠ΅ΠΌ ΡΠ°ΠΊΠ°Ρ ΡΡΡΠ΅Π»ΠΊΠ° Π²ΡΠ΅Π³Π΄Π° Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π° ΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΠ° Π²ΡΠ·ΠΎΠ²Π°). Π‘ΡΡΠ΅Π»ΠΊΠΈ Ρ Β«ΡΠ΅Π±Π΅ΡΠ½ΡΠΌΠΈΒ» Π½Π°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ (Ρ.Π΅. ΠΊ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΡ Π²ΡΠ·ΠΎΠ²Π°), ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°Ρ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠ°ΠΆΠ΄ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π΅Π΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΠΎΠΌΠΈΠΌΠΎ ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°Ρ ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΡΠ·ΠΎΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
[list != empty]
getResults()
Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡΡ, Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΡΠΈΠ½Π½Ρ ΠΌ. ΠΠ΅ΡΠΎΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· (Π½Π°ΠΏΡΠΈ ΠΌ Π΅Ρ, ΠΏΡΠΈ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ), ΠΏΡΠ΅Π΄Π²Π°ΡΡΡΡΡΡ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎ ΠΌ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ (*).
ΠΠ° ΡΠΈΡ. 10.10 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π΄ΠΈΠ°Π³ΡΠ° ΠΌΠΌ Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΡΡΠ΅ ΠΌ Ρ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ ΡΡΡ Π΄Π΅ ΠΌ ΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ Π΄ΠΈΠ°Π³ΡΠ° ΠΌΠΌ Ρ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π² Π½Π΅ΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ Π»ΠΈΡΡ ΡΡΠ΅ΠΌΡ. Π Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ. Π‘ΠΈ ΠΌ Π²ΠΎΠ» Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΉ Π½Π° Π»ΠΈΠ½ΠΈΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ°Π»ΠΈΡΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅ΡΡΡ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’Π΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΠ»ΠΈ Π±ΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΉ. ΠΠ° ΡΠΈΡ. 10.10 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ blackboard Π²ΡΠ΅Π³Π΄Π° Π°ΠΊΡΠΈΠ²Π΅Π½. ΠΠ½ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ schedule _agent ΠΈ Π½Ρ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ. ΠΠ±ΡΠ΅ΠΊΡ schedule_agent Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ blackboard.masterList() ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ Π½Π΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΊΡΡΡΠΎΠ². ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, Π²ΠΎΠ·Π²ΡΠ° Ρ Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ Ρ Β«ΡΠ΅Π±Π΅ΡΠ½ΡΠΌΒ» Π½Π°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊΠΎΠΌ. ΠΠ΅ΡΠΎΠ΄ schedule_agent Π·Π°ΡΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ²Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² createSchedules (). ΠΠ»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΡΠΎΡΡΠΎΡ Ρ ΠΈΠΉ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»Π° Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΡΡΡΠ΅Π»ΠΊΠΈ Π²ΡΠ·ΠΎΠ²Π°. Π‘ΠΈΠΌΠ²ΠΎΠ» Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π°ΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΈΠ½ΠΈΡ Π²ΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π°ΠΊΡΠΈΠ²ΠΈΠ·Π°ΡΠΈΠΈ, Π° Π΅Π΅ ΡΡΡΠ΅Π»ΠΊΠ°ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΠΌΠ²ΠΎΠ». ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ schedule_agent ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΡΠ΅ΠΌ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° blaekboard.possibleSchedule () ΠΎΠ±ΡΠ΅ΠΊΡ blackboard Π°Π½Π½ΡΠ»ΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ. ΠΠ½Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Β«XΒ» Π² ΠΊΠΎΠ½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΠΆΠΈΠ·Π½ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π‘ΡΡΠ΅Π»ΠΊΠ° Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΈΡΡ ΠΎΠ΄ΡΡΠ°Π» ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° blackboard ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Ρ Ρ Π°Ρ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ» Β«XΒ», ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΎΡΠΎΠΌ Π°Π½Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ blackboard. ΠΠ±ΡΠ΅ΠΊΡ blackboard Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ filter_agent ΠΈ ΠΎΠΏΡΡΡ-ΡΠ°ΠΊΠΈ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΡΡΡ. ΠΠ±ΡΠ΅ΠΊΡ filter_agent Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ blackboard.possibleSchedules () ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ Π½Π΅Π³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠΉ. ΠΠ±ΡΠ΅ΠΊΡ filter_agent ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² filterCourses (). ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΎΠ±ΡΠ΅ΠΊΡ filter_agent Π»ΠΈΠΊΠ²ΠΈΠ΄ΠΈΡΡΠ΅Ρ ΡΠ΅Π±Ρ. ΠΠ±ΡΠ΅ΠΊΡ blackboard ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ organizeSolution () ΠΈ updateRecords (), Π° Π·Π°ΡΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π»ΠΈΠΊΠ²ΠΈΠ΄ΠΈΡΡΠ΅ΡΡΡ.
ΠΠ΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
Π―Π·ΡΠΊ UML ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄ΠΎΠ² Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² β ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΡΠ΅Π΄Π΅Π½ΡΠ°. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΡΠΎΠΈΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° (Π²ΠΈΠ΄ΠΎΠ²) Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±Π»ΠΎΠΊ-ΡΡ Π΅ΠΌΡ, ΠΎΡΡΠ°ΠΆΠ°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΠΈΠ»ΠΈ Π²ΠΈΠ΄Ρ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ) ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², ΠΏΡΠΈΠ½ΠΈΠΌΠ°Ρ Ρ ΠΈΡ ΡΡΠ°ΡΡΠΈΠ΅ Π² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ. ΠΠ° ΡΡΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌ ΠΌ Π΅ Ρ ΠΏΠΎ ΠΌ ΠΎ Ρ ΡΡ ΡΡΡΠ΅Π»ΠΎΠΊ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡ Ρ ΠΈΡ Π²ΠΈΠ΄ΠΎΠ² Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. Π ΡΠΎ Π²ΡΠ΅ ΠΌ Ρ ΠΊΠ°ΠΊ Π² Π΄ΠΈΠ°Π³ΡΠ° ΠΌΠΌ Π°Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π² Π΄ΠΈΠ°Π³ΡΠ° ΠΌ ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ β Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌΡ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π² Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°Ρ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π°ΠΊΡΠ΅Π½Ρ ΡΡΠ°Π²ΠΈΡΡΡ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π° Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ) ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π° Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ) ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ° Ρ Π°Π΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π‘ΠΎΠ΄Π΅ΡΠΆΠΈ ΠΌ ΠΎΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π° Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ) Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π° Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ). Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΡΡΠΎ ΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌ ΠΎ ΠΌ Π΅Π½Ρ Π² ΠΏΠΎΡΠΎΠΊΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π ΠΈΡ. 10.10. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠΉ