Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈ распрСдСлСнноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘++Β». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 102

Автор Π₯ьюз ΠšΠ°ΠΌΠ΅Ρ€ΠΎΠ½

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. Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² систСмы составлСния расписаний