Π”ΠΈΠΏΠ»ΠΎΠΌ, курсовая, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°
ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚

ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы равновСроятностных событий с использованиСм ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JADE

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

АгСнтно ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ АгСнтно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ (АОП) — Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ прСдставлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ основными концСпциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ понятия Π°Π³Π΅Π½Ρ‚Π° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. АгСнт Π² Π΄Π°Π½Π½ΠΎΠΌ случаС понимаСтся ΠΊΠ°ΠΊ нСкая программная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, которая ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ собствСнным ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. АгСнт прСдставляСт собой Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ, Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Ρ‡Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы равновСроятностных событий с использованиСм ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JADE (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования ΠΈ Π½Π°ΡƒΠΊΠΈ Российской Π€Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ государствСнноС Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ образования БСлгородский ГосударствСнный ВСхнологичСский УнивСрситСт ΠΈΠΌ Π’. Π“. Π¨ΡƒΡ…ΠΎΠ²Π° ΠšΠ°Ρ„Π΅Π΄Ρ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм ΠšΠ£Π Π‘ΠžΠ’ΠΠ― Π ΠΠ‘ΠžΠ’Π ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «Π’Схнология построСния Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹Ρ… Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… систСм»

Π½Π° Ρ‚Π΅ΠΌΡƒ: «ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСмы равновСроятностных событий с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JADE»

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ:

студСнты Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠšΠ‘-51

Π“Ρ€ΠΈΠ³ΠΎΡ€ΡŒΠ΅Π² А.Π‘.

ΠŸΠ°Π½ΠΊΡ€Π°Ρ‚ΠΎΠ² А.Π’.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ»:

Поляков Π’.М.

Π‘Π΅Π»Π³ΠΎΡ€ΠΎΠ΄

2015 Π³.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Аннотация.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ.

1. ВСорСтичСскиС свСдСния.

1.1 АгСнтно ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

1.2 ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° JADE.

2. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ.

2.1 ОписаниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы.

2.1.1 Master.

2.1.2 Player.

2.1.3 Apprentice.

2.2 ДСмонстрация Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’Ρ‹Π²ΠΎΠ΄.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π³Π΅Π½Ρ‚Π° «Master».

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π³Π΅Π½Ρ‚Π° «Player».

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π³Π΅Π½Ρ‚Π° «Apprentice».

Аннотация

Π’ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Π΅ изучаСтся ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° JADE, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΅Ρ‘ Π΄Π»Ρ модСлирования Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… систСм, Π° Ρ‚Π°ΠΊΠΆΠ΅ разрабатываСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ систСму равновСроятностных событий, частным случаСм ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся ΠΈΠ³Ρ€Π° Π² «Π½Π°ΠΏΠ΅Ρ€ΡΡ‚ΠΊΠΈ», для дСмонстрации возмоТностСй Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ совмСстно Π“Ρ€ΠΈΠ³ΠΎΡ€ΡŒΠ΅Π²Ρ‹ΠΌ А. Π‘. ΠΈ ΠŸΠ°Π½ΠΊΡ€Π°Ρ‚ΠΎΠ²Ρ‹ΠΌ А.Π’.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ:

1. Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ JADE.

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ систСму равновСроятностных событий, с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JADE.

3. Π’ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π³Π΅Π½Ρ‚ΠΎΠ², Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… принятый порядок Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы, Ρ‚Π΅ΠΌ самым ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ уязвимости ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмы.

4. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Java.

1. ВСорСтичСскиС свСдСния

1.1. АгСнтно ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ АгСнтно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ (АОП) — Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ прСдставлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ° программирования, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ основными концСпциями ΡΠ²Π»ΡΡŽΡ‚ΡΡ понятия Π°Π³Π΅Π½Ρ‚Π° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ. АгСнт Π² Π΄Π°Π½Π½ΠΎΠΌ случаС понимаСтся ΠΊΠ°ΠΊ нСкая программная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, которая ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ собствСнным ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. АгСнт прСдставляСт собой Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ, Π°ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΡƒΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Ρ‡Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π’ ΠžΠžΠŸ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс понимаСтся ΠΊΠ°ΠΊ систСма, собранная ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ собствСнныС способы ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, АОП уточняСт эти Ρ€Π°ΠΌΠΊΠΈ, фиксируя Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΡ… ΡΠΎΡΡ‚ояний Ρ‡Π΅Ρ€Π΅Π· Π°Π½Π°Π»ΠΈΠ· ΡƒΠ±Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π², Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€. ΠΠ°Π»ΠΈΡ‡ΠΈΠ΅ Ρƒ Π°Π³Π΅Π½Ρ‚Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° цСлСобразования обСспСчиваСт ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠΈΠΈ. АгСнт Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выполняСт распоряТСния ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π°Π³Π΅Π½Ρ‚Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π° ΠΏΡ€ΠΎΡΡ‚ΠΎ зависит ΠΎΡ‚ ΡƒΡΠ»ΠΎΠ²ΠΈΠΉ срСды, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ†Π΅Π»ΠΈ ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΡ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π³Π΅Π½Ρ‚ΠΎΠ². Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π°Π³Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Π½Π° ΡΠ΅Π±Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΈΠ»ΠΈ, Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹, мотивируя это отсутствиСм компСтСнтности, Π·Π°Π½ΡΡ‚ΠΎΡΡ‚ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΈ Ρ‚. ΠΏ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя, Π°Π³Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ дСйствия ΠΊΠ°ΠΊ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΌΠ΅Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π³Π΅Π½Ρ‚ΠΎΠ², активизация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΊΠ°ΠΊ своих, Ρ‚Π°ΠΊ ΠΈ Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π³Π΅Π½Ρ‚ΠΎΠ²), активизация сцСнария Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€. Π’сС это наглядно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Π³Π΅Π½Ρ‚, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ «Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ» ΠΈΠ»ΠΈ «ΠΈΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌ дСятСлСм», Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ своС собствСнноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, находится Π½Π° Π±ΠΎΠ»Π΅Π΅ высоком ΡƒΡ€ΠΎΠ²Π½Π΅ слоТности ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π² ΠžΠžΠŸ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ свойствами Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ:

ΠΠ²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΡΡ‚ΡŒ — ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π“ΠΎΠΌΠΎΠ³Π΅Π½Π½ΠΎΡΡ‚ΡŒ/Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½ΠΎΡΡ‚ΡŒ — ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ, ΠΈ «ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚» — машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ коррСкция повСдСния для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ собствСнной эффСктивности АктивноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, постоянный ΠΎΠ±ΠΌΠ΅Π½ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ «Π²Π½ΡƒΡ‚Ρ€ΠΈ» Π°Π³Π΅Π½Ρ‚Π° ΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π°Π³Π΅Π½Ρ‚ΠΎΠΌ ΠΈ ΡΡ€Π΅Π΄ΠΎΠΉ ΠšΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ — ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ВосприятиС срСды — Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… «ΡΡ€Π΅Π΄ΡΡ‚Π²» восприятия срСды функционирования Π°Π³Π΅Π½Ρ‚Π° ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ — ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π°Π³Π΅Π½Ρ‚Π° Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΈ Ρ„изичСских срСд ΠΈ / ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ АОП ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π±ΠΎΡ‚ΠΎΠ², ΠΈΠΌΠΈΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… дСйствия ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ² Π² ΠΈΠ³Ρ€Π°Ρ…, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ‡Π°Ρ‚Π°Ρ… Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ Ρ€ΠΎΠ»ΡŒ «ΡΠΎΠ±Π΅ΡΠ΅Π΄Π½ΠΈΠΊΠ°». Однако Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΠΎΡ‚Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€ΠΎΠ»ΡŒ ΠΈΠΌΠΈΡ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ общСния ΠΈΠ»ΠΈ ΠΈΠ³Ρ€Ρ‹, ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для рСдактирования тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, для Π½Π°Π»Π°Π΄ΠΊΠΈ сСтСвых соСдинСний, модСрирования рСсурсов ΠΈ Ρ‚. ΠΏ.

1.2 ΠœΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° JADE

JADE это прослойка которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½Ρ‹Ρ… систСм Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Java. Она Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚:

Π‘Ρ€Π΅Π΄Π° выполнСния Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ «ΠΆΠΈΡ‚ΡŒ» ΠΈ ΠΊΠΎΡ‚орая Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π°Π³Π΅Π½Ρ‚ΠΎΠ² смогут Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π° ΡΡ‚ΠΎΠΌ ΡƒΠ·Π»Π΅.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° классов, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ программист ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π°Π³Π΅Π½Ρ‚ΠΎΠ².

Набор графичСских инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒ Π·Π° Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π°Π³Π΅Π½Ρ‚ΠΎΠ².

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ΡΡ Π½Π° JADE, состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ имя.

АгСнт — это программная ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ для выполнСния поставлСнных Π·Π°Π΄Π°Ρ‡. ΠžΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: взаимодСйствуСт с Π²Π½Π΅ΡˆΠ½Π΅ΠΉ слоТной ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ-Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉΡΡ срСдой, способной ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ»ΠΈ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… условий.

ВзаимодСйствиС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚:

восприятиС Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ срСды;

дСйствия, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ срСду;

рассуТдСния Π² Ρ†Π΅Π»ΡΡ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… явлСний, Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡, Π²Ρ‹Π²ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ дСйствий.

Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ модСль Π°Π³Π΅Π½Ρ‚Π° являСтся ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΠΉ. Π’ Π°Π³Π΅Π½Ρ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ (ΠΈΠ»ΠΈ повСдСния) ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. ΠšΠ°ΠΆΠ΄Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ/ΠΈΠ»ΠΈ сСрвис, прСдоставляСмый Π°Π³Π΅Π½Ρ‚ΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΡ… Π½Π°Π±ΠΎΡ€. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ, скрытый ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, автоматичСски управляСт ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ.

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Π³ΠΈΠ±ΠΊΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ выдСлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π°Π³Π΅Π½Ρ‚Π°ΠΌ:

ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ Π½Π° Π²ΡΠ΅Ρ… Π°Π³Π΅Π½Ρ‚ΠΎΠ²;

ТСсткоС Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π½Π° Π°Π³Π΅Π½Ρ‚Π°;

фиксированный ΠΏΡƒΠ» Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², больший ΠΈΠ»ΠΈ мСньший, Ρ‡Π΅ΠΌ количСство Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅.

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π°Π³Π΅Π½Ρ‚Ρƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ соотвСтствуСт ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΡ‚ΠΎΠΊ.

Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΡ‚Π΅ΠΏΠ΅Π½ΠΈ свободы срСды, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰Π΅ΠΉ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² Π½Π΅ΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° Π°Π³Π΅Π½Ρ‚Π°, срСды ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π°:

Π—Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Π΅

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ»ΠΈ вСроятностноС описаниС всСй срСды, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ извСстно Π°Π³Π΅Π½Ρ‚Ρƒ Π°ΠΏΡ€ΠΈΠΎΡ€ΠΈ ΠΈΠ»ΠΈ ΠΏΡƒΡ‚Ρ‘ΠΌ исслСдования.

ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎΠ΅ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ»ΠΈ вСроятностноС описаниС локальной области срСды, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится Π°Π³Π΅Π½Ρ‚ ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ извСстно Π΅ΠΌΡƒ Π°ΠΏΡ€ΠΈΠΎΡ€ΠΈ ΠΈΠ»ΠΈ ΠΏΡƒΡ‚Ρ‘ΠΌ исслСдования.

ВрансформируСмыС ДинамичСски-Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ΡΡ срСды, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ структурой ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… являСтся Π°Π³Π΅Π½Ρ‚.

АгСнт JADE ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠΎΡΡ‚ояний, согласно ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠΌΡƒ Ρ†ΠΈΠΊΠ»Ρƒ Π°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹:

AP_INITIATED — Π°Π³Π΅Π½Ρ‚ создан, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² AMS, поэтому ΠΎΠ½ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½ΠΈ ΠΈΠΌΠ΅Π½ΠΈ, Π½ΠΈ Π°Π΄Ρ€Π΅ΡΠ° ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ сообщСниями с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ.

AP_ACTIVE — Π°Π³Π΅Π½Ρ‚ зарСгистрирован Π² AMS, ΠΈΠΌΠ΅Π΅Ρ‚ постоянноС имя ΠΈ Π°Π΄Ρ€Π΅Ρ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ особСнности JADE.

AP_SUSPENDED — Π°Π³Π΅Π½Ρ‚ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ остановлСн. Π•Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ приостановлСн ΠΈ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ повСдСния Π°Π³Π΅Π½Ρ‚Π°. ВсС входящиС сообщСния Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ.

AP_WAITING — Π°Π³Π΅Π½Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ (Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ). Π•Π³ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ бСздСйствуСт, ΠΈ ΠΎΠ½ ΠΏΡ€ΠΎΠ±ΡƒΠ΄ΠΈΡ‚ся ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ условия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, поступлСниС сообщСния).

AP_DELETED — Π°Π³Π΅Π½Ρ‚ явно ΠΌΠ΅Ρ€Ρ‚Π². Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ» Π΅Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΈ Π°Π³Π΅Π½Ρ‚ большС Π½Π΅ Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² AMS.

AP_TRANSIT — ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚ пСрСмСщаСтся ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. БистСма ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ посланы Π΅ΠΌΡƒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΡ€ΠΈΠ±ΡƒΠ΄Π΅Ρ‚ Π² Π½ΠΎΠ²ΠΎΠ΅ мСстополоТСниС.

AP_COPY — созданиС ΠΊΠΎΠΏΠΈΠΈ Π°Π³Π΅Π½Ρ‚Π°.

AP_GONE — ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚ пСрСмСстился ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΌΠ΅ΡΡ‚ΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ устойчивоС состояниС.

АгСнт вмСстС со Π²ΡΠ΅ΠΌΠΈ своими структурами Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ срСдствами ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² ΠΏΠΎΡ‚ΠΎΠΊ Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π³Π΄Π΅ ΠΎΠ½ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. АгСнты Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡƒΡ‚Π΅ΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями.

КаТдая запущСнная копия срСды JADE называСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько Π°Π³Π΅Π½Ρ‚ΠΎΠ². ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² называСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ. Один ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ всСгда Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ Π²ΡΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρƒ Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ. ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΡ€ΠΈ стартС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π³Π»Π°Π²Π½Ρ‹ΠΌ, Π° Π²ΡΠ΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ «Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ» ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ «ΡΠΊΠ°Π·Π°Ρ‚ΡŒ» ΠΊΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ (хост ΠΈ ΠΏΠΎΡ€Ρ‚) ΠΈΡ… Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

«Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€» Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² ΡΠ΅Π±Π΅ Π°Π³Π΅Π½Ρ‚ΠΎΠ², Π½ΠΎ ΠΎΡ‚личаСтся ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Ρ‚Π΅ΠΌ Ρ‡Ρ‚ΠΎ:

Он Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ запуска;

Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ Π΄Π²Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π°Π³Π΅Π½Ρ‚Π°:

AMS, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π°Π²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½Ρ‹ΠΌ Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌ Π°Π³Π΅Π½Ρ‚ΠΎΠΌ способным ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, Ρ‚. Π΅. Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ/ΡƒΠ±ΠΈΠ²Π°Ρ‚ΡŒ Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ саму ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ (ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ AMS ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это);

DF, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт услуги справочника, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π°Π³Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ свои сСрвисы ΠΈΠ»ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π°Π³Π΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ сСрвисы.

Если Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ запускаСтся Π³Π΄Π΅-Ρ‚ΠΎ Π² ΡΠ΅Ρ‚ΠΈ это являСтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½ΠΎΠ²Ρ‹Π΅ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒΡΡ.

ВзаимодСйствиС Π°Π³Π΅Π½Ρ‚ΠΎΠ² АгСнты ΠΌΠΎΠ³ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ ΠΆΠΈΠ²ΡƒΡ‚ Π»ΠΈ ΠΎΠ½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… (Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ самом ΠΈΠ»ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ…), ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π»ΠΈ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, ΠΈΠ»ΠΈ ΠΆΠ΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ…. ВзаимодСйствиС основано Π½Π° Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ сообщСний.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ сообщСния опрСдСляСтся языком ACL, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½ΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ FIPA, которая выпустила ряд тСхничСских спСцификаций для совмСстимости Π°Π³Π΅Π½Ρ‚Π½Ρ‹Ρ… систСм. ACL сообщСниС содСрТит ряд ΠΏΠΎΠ»Π΅ΠΉ:

ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ;

ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ;

ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π°ΠΊΡ‚, содСрТит намСрСния отправитСля сообщСния. НапримСр, ΠΊΠΎΠ³Π΄Π° Π°Π³Π΅Π½Ρ‚ посылаСт сообщСниС INFORM, ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ стало извСстно ΠΎ ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Ρ„Π°ΠΊΡ‚Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, INFORM «ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΈΠ΄Π΅Ρ‚ доТдь»). Когда Π°Π³Π΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ сообщСниС REQUEST, ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ дСйствиС. FIPA опрСдСляСт 22 ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Π°ΠΊΡ‚Π°, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ с Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ сСмантикой, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΡŒ 95% всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ситуаций. К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, Π² 99% случаях ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ заботится ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ сСмантикС, ΠΌΡ‹ ΠΏΡ€ΠΎΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΈΡ… Π΄Π»Ρ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ смысла;

содСрТаниС — фактичСская информация, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ΅ Π² ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ (Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ Π² ΡΠ»ΡƒΡ‡Π°Π΅ INFORM ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π² ΡΠ»ΡƒΡ‡Π°Π΅ REQUEST).

2. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ

2.1 ОписаниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы

ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ систСма jade java

Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для изучСния ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JADE. Π”Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ³Ρ€Ρƒ Π² «Π½Π°ΠΏΠ΅Ρ€ΡΡ‚ΠΊΠΈ». На Ρ€ΠΈΡ. 1 прСдставлСна схСма взаимодСйствия Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Рис. 1. Π‘Ρ…Π΅ΠΌΠ° взаимодСйствия Π°Π³Π΅Π½Ρ‚ΠΎΠ² Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π°Π³Π΅Π½Ρ‚ΠΎΠ²:

2.1.1 Master

АгСнт Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° являСтся Π²Π΅Π΄ΡƒΡ‰ΠΈΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Π΅. Он ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ для Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎ позволяСт Π΅ΠΌΡƒ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ событий, происходящиС ΠΏΡ€ΠΈ взаимодСйствии с Π°Π³Π΅Π½Ρ‚Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ со Π²ΡΠ΅ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π°Π³Π΅Π½Ρ‚ΠΎΠ².

2.1.2 Player

АгСнт Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° являСтся ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Π΅. Π•Π³ΠΎ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ позволяСт Π΅ΠΌΡƒ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π°Π³Π΅Π½Ρ‚ΠΎΠΌ Ρ‚ΠΈΠΏΠ° «Master» ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡΠΎΠ±Ρ‹Ρ‚ия, происходящиС ΠΏΡ€ΠΈ ΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΠΈ. Π’Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° Ρ€Π°Π²Π½Π° 33%.

2.1.3 Apprentice

АгСнт Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° являСтся подставным ΠΈΠ³Ρ€ΠΎΠΊΠΎΠΌ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΈΠ³Ρ€Π΅, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Π΅Π΄ΡƒΡ‰ΠΈΠΉ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρƒ Π½Π΅Π³ΠΎ: «Π’ ΠΊΠ°ΠΊΠΎΠΌ стаканчикС ΡˆΠ°Ρ€ΠΈΠΊ?» — с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΈΠ½Ρ‚ΠΎΠ½Π°Ρ†ΠΈΠ΅ΠΉ. Для большСй рСалистичности ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ подсказку Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ. Π’Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹ΡˆΠ° Ρ€Π°Π²Π½Π° 83%, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ «Player».

2.2 ДСмонстрация Ρ€Π°Π±ΠΎΡ‚Ρ‹ На Ρ€ΠΈΡ. 2 продСмонстрирована Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ взаимодСйствии Π°Π³Π΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° «Master» ΠΈ «Player».

Рис. 2. ДСмонстрация Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ взаимодСйствии Π°Π³Π΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° «Master» ΠΈ «Player».

На Ρ€ΠΈΡ. 3 продСмонстрирована Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ взаимодСйствии Π°Π³Π΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° «Master» ΠΈ «Apprentice».

Рис. 3. ДСмонстрация Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ взаимодСйствии Π°Π³Π΅Π½Ρ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° «Master» ΠΈ «Apprentice».

Π’Ρ‹Π²ΠΎΠ΄

Π’ Ρ…ΠΎΠ΄Π΅ Π΄Π°Π½Π½ΠΎΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π΅Π½Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ JADE, Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСмы с Π΅Ρ‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для дСмонстрации возмоТностСй Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹.

1. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ рСсурс. URL: https://ru.wikipedia.org/wiki/АгСнтно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ_ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

2. Shoham Yoav. Multiagent systems: Algorithmic, Game-Theoretic, and Logical Foundations = Artificial Intelligence: A Modern Approach. — Cambridge University Press, 2009.

3. Educational Technology & Society 8(3) 2005 ISSN 1436−4522 ИспользованиС JADE (Java Agent Development Environment) для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… систСм ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ дистанционного обучСния Π°Π³Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π“Π»ΠΈΠ±ΠΎΠ²Π΅Ρ† Н. Н. УнивСрситСт «ΠšΠΈΠ΅Π²ΠΎ-Могилянская акадСмия».

4. АрхитСктура ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JADE. Π“ΠΎΡ€Π΅Π»ΠΈΠΊΠΎΠ² М. Π’., Иванов А. М. ΠœΠ“Π’Π£ ΠΈΠΌ. Π. Π­. Π‘Π°ΡƒΠΌΠ°Π½Π°, ΠΊΠ°Ρ„. ИУ-3.

5. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ рСсурс. URL: http://jade.tilab.com/documentation/tutorials-guides/.

6. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ°Π³Π½Π΅Ρ‚Π½Ρ‹Ρ… систСм Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Jade Semantic Agent Framework.

7. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ рСсурс. URL: http://www.iro.umontreal.ca/~vaucher/Agents/Jade/JadePrimer.html.

8. АгСнты, ΠΌΠ½ΠΎΠ³ΠΎΠ°Π³Π΅Π½Ρ‚Π½Ρ‹Π΅ систСмы, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ сообщСства: стратСгичСскоС Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈ ΠΈΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π΅. Варасов Π’.Π‘.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π³Π΅Π½Ρ‚Π° «Master»

package kr;

import jade.core.Agent;

import jade.core.behaviours.*;

import jade.domain.DFService;

import jade.domain.FIPAAgentManagement.DFAgentDescription;

import jade.domain.FIPAAgentManagement.ServiceDescription;

import jade.lang.acl.*;

import java.util.Random;

public class master extends Agent {

protected String[][] list = {

{

" ΠŸΡ€ΠΈΠ²Π΅Ρ‚ players !"

},

{

" Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ стаканчикС !" ,

" Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ стаканчикС !" ,

" Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ стаканчикС !"

},

{

" Π’ ΠΊaΠΊΠΎΠΌ стаканчикС ΡˆΠ°Ρ€ΠΈΠΊ ?" ,

" Π’ ΠΊΠ°ΠΊΠΎΠΌ стaΠΊΠ°Π½Ρ‡ΠΈΠΊΠ΅ ΡˆΠ°Ρ€ΠΈΠΊ ?" ,

" Π’ ΠΊΠ°ΠΊΠΎΠΌ стакaΠ½Ρ‡ΠΈΠΊΠ΅ ΡˆΠ°Ρ€ΠΈΠΊ ?" ,

" Π’ ΠΊΠ°ΠΊΠΎΠΌ стаканчикС ΡˆΠ°Ρ€ΠΈΠΊ ?"

},

{

" Пока players !"

}

};

DFAgentDescription[] result;

public String secret = «» ;

public int scrt = 0;

public boolean flag = true;

protected void setup () {

final DFAgentDescription dfd = new DFAgentDescription ();

//dfd.setName (getAID ());

ServiceDescription sd = new ServiceDescription ();

//sd.setType («kr»);

//sd.setName («master»);

dfd.addServices (sd);

try {

result = DFService. search (this, dfd);

System.out.println (result.length + «Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈΠ΅ ΠΈΠ³Ρ€Ρ‹»);

} catch (Exception e) {

System.out.println (e);

}

final Agent agent = this;

ACLMessage msg = new ACLMessage (ACLMessage.INFORM);

for (int i = 0; i

msg.addReceiver (result[i]. getName ());

msg.setLanguage («English»);

//Random r = new Random ();

msg.setContent (list[0][0]);

send (msg);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +msg.getContent () + «'' «);

}

addBehaviour (new TickerBehaviour (this, 5000) { // 5000 = 5 сСкундам

protected void onTick () {

try {

result = DFService. search (agent, dfd);

if (result.length>0) {

} else {

System.out.println («** «+ getLocalName () + «ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ²… «);

}

} catch (Exception e) {

System.out.println (e);

}

ACLMessage msg = new ACLMessage (ACLMessage.INFORM);

for (int i = 0; i

if (result.length ≠ 0) {

msg.addReceiver (result[i]. getName ());

msg.setLanguage («English»);

Random r = new Random ();

if (flag == true) {

scrt = r. nextInt (4);

//System.out.println (scrt);

}

if (flag == false) {

scrt = r. nextInt (3);

}

if (scrt == 3) {

secret = (list[1][r.nextInt (3)]);

msg.setContent (list[2][scrt]);

} else {

secret = (list[1][scrt]);

msg.setContent (list[2][scrt]);

}

send (msg);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +msg.getContent () + «'' «);

} else {

System.out.println («ΠΠ΅Ρ‚ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ², оТидаю…»);

}

}

}

});

addBehaviour (new CyclicBehaviour (this) {

public void action () {

ACLMessage msg = receive ();

if (msg≠null) {

System.out.println («-> «+ getLocalName () + «ΠΏΡ€ΠΈΠ½ΡΠ» сообщСниС» + «''» +msg.getContent () + «'' «)

if (msg.getContent ().equals (list[1][0])) {

if (msg.getContent ().equals (secret)) {

ACLMessage reply = msg. createReply ();

reply.setPerformative (ACLMessage.INFORM);

reply.setContent («Π’Π΅Ρ€Π½ΠΎ !»);

send (reply);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +reply.getContent () + «'' «);

System.out.println («** «+ getLocalName () + «ΠΎΡ‚Π΄Π°Π΅Ρ‚ дСньги Π²Ρ‹ΠΈΠ³Ρ€Π°Π²ΡˆΠ΅ΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ «);

} else {

ACLMessage reply = msg. createReply ();

reply.setPerformative (ACLMessage.INFORM);

reply.setContent («ΠΠ΅ Π²Π΅Ρ€Π½ΠΎ !»);

send (reply);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +reply.getContent () + «'' «);

System.out.println («** «+ getLocalName () + «Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ дСньги ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π²ΡˆΠ΅Π³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° «);

}

}

if (msg.getContent ().equals (list[1][1])) {

if (msg.getContent ().equals (secret)) {

ACLMessage reply = msg. createReply ();

reply.setPerformative (ACLMessage.INFORM);

reply.setContent («Π’Π΅Ρ€Π½ΠΎ !»);

send (reply);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +reply.getContent () + «'' «);

System.out.println («** «+ getLocalName () + «ΠΎΡ‚Π΄Π°Π΅Ρ‚ дСньги Π²Ρ‹ΠΈΠ³Ρ€Π°Π²ΡˆΠ΅ΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ «);

} else {

ACLMessage reply = msg. createReply ();

reply.setPerformative (ACLMessage.INFORM);

reply.setContent («ΠΠ΅ Π²Π΅Ρ€Π½ΠΎ !»);

send (reply);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +reply.getContent () + «'' «);

System.out.println («** «+ getLocalName () + «Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ дСньги ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π²ΡˆΠ΅Π³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° «);

}

}

if (msg.getContent ().equals (list[1][2])) {

if (msg.getContent ().equals (secret)) {

ACLMessage reply = msg. createReply ();

reply.setPerformative (ACLMessage.INFORM);

reply.setContent («Π’Π΅Ρ€Π½ΠΎ !»);

send (reply);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +reply.getContent () + «'' «);

System.out.println («** «+ getLocalName () + «ΠΎΡ‚Π΄Π°Π΅Ρ‚ дСньги Π²Ρ‹ΠΈΠ³Ρ€Π°Π²ΡˆΠ΅ΠΌΡƒ ΠΈΠ³Ρ€ΠΎΠΊΡƒ «);

} else {

ACLMessage reply = msg. createReply ();

reply.setPerformative (ACLMessage.INFORM);

reply.setContent («ΠΠ΅ Π²Π΅Ρ€Π½ΠΎ !»);

send (reply);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +reply.getContent () + «'' «);

System.out.println («** «+ getLocalName () + «Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ дСньги ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π²ΡˆΠ΅Π³ΠΎ ΠΈΠ³Ρ€ΠΎΠΊΠ° «);

}

}

}

}

});

}

}

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π³Π΅Π½Ρ‚Π° «Player»

package kr;

import jade.core.Agent;

import jade.core.behaviours.*;

import jade.domain.DFService;

import jade.domain.FIPAAgentManagement.DFAgentDescription;

import jade.domain.FIPAAgentManagement.ServiceDescription;

import jade.lang.acl.*;

import java.util.Random;

public class player extends Agent {

protected String[][] list = {

{

" ΠŸΡ€ΠΈΠ²Π΅Ρ‚ master !"

},

{

" Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ стаканчикС !" ,

" Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ стаканчикС !" ,

" Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ стаканчикС !"

},

{

" Π£Ρ€Π° я Π²Ρ‹ΠΉΠ³Ρ€Π°Π» !" ,

" Π–Π°Π»ΡŒ я ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π» !"

},

{

" Пока master !"

}

};

public int cash = 3;

protected void setup () {

DFAgentDescription dfd = new DFAgentDescription ();

dfd.setName (getAID ());

ServiceDescription sd = new ServiceDescription ();

sd.setType («kr»);

sd.setName («player»);

dfd.addServices (sd);

final Agent agent = this;

try {

DFService.register (this, dfd);

System.out.println (getLocalName () + «ΠŸΡ€ΠΈΡˆΡ‘Π» ΠΈΠ³Ρ€Π°Ρ‚ΡŒ… «);

} catch (Exception e) {

System.out.println (e);

}

addBehaviour (new CyclicBehaviour (this) {

public void action () {

ACLMessage msg = receive ();

if (msg≠null) {

System.out.println («-> «+ myAgent. getLocalName () + «ΠΏΡ€ΠΈΠ½ΡΠ» сообщСниС «+ «''» +msg.getContent () + «'' «);

ACLMessage reply = msg. createReply ();

reply.setPerformative (ACLMessage.INFORM);

Random r = new Random ();

switch (msg.getContent ()) {

case «ΠŸΡ€ΠΈΠ²Π΅Ρ‚ players !» :

reply.setContent (list[0][0]);

break;

case «Π’ ΠΊaΠΊΠΎΠΌ стаканчикС ΡˆΠ°Ρ€ΠΈΠΊ ?» :

reply.setContent (list[1][r.nextInt (2)]);

break;

case «Π’ ΠΊΠ°ΠΊΠΎΠΌ стaΠΊΠ°Π½Ρ‡ΠΈΠΊΠ΅ ΡˆΠ°Ρ€ΠΈΠΊ ?» :

reply.setContent (list[1][r.nextInt (2)]);

break;

case «Π’ ΠΊΠ°ΠΊΠΎΠΌ стакaΠ½Ρ‡ΠΈΠΊΠ΅ ΡˆΠ°Ρ€ΠΈΠΊ ?» :

reply.setContent (list[1][r.nextInt (2)]);

break;

case «Π’ ΠΊΠ°ΠΊΠΎΠΌ стаканчикС ΡˆΠ°Ρ€ΠΈΠΊ ?» :

reply.setContent (list[1][r.nextInt (2)]);

break;

case «Π’Π΅Ρ€Π½ΠΎ !» :

reply.setContent (list[2][0]);

cash++;

System.out.println («** «+ getLocalName () + «Π˜ΠΌΠ΅Π΅Ρ‚ Π½Π° Ρ€ΡƒΠΊΠ°Ρ… сумму Ρ€Π°Π²Π½ΡƒΡŽ «+ cash);

break;

case «ΠΠ΅ Π²Π΅Ρ€Π½ΠΎ !» :

reply.setContent (list[2][1]);

cash—;

System.out.println («** «+ getLocalName () + «Π˜ΠΌΠ΅Π΅Ρ‚ Π½Π° Ρ€ΡƒΠΊΠ°Ρ… сумму Ρ€Π°Π²Π½ΡƒΡŽ «+ cash);

break;

}

send (reply);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +reply.getContent () + «'' «);

if (cash == 6) {

try {

DFService.deregister (agent);

}

catch (Exception e) {

System.out.println (e);

}

System.out.println («** «+ getLocalName () + «''Бпасибо Π·Π° Ρ…ΠΎΡ€ΡƒΡˆΡƒΡŽ ΠΈΠ³Ρ€Ρƒ! ВсСм ΠΏΠΎΠΊΠ°…'' «);

doDelete ();

}

if (cash == 0) {

try {

DFService.deregister (agent);

}

catch (Exception e) {

System.out.println (e);

}

System.out.println («** «+ getLocalName () + «''Π£Π²Ρ‹ Ρƒ ΠΌΠ΅Π½Ρ ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ дСньги, Π½Π΅ΠΌΠΎΠ³Ρƒ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ. ВсСм ΠΏΠΎΠΊΠ°…'' «);

doDelete ();

}

}

}

});

}

}

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π°Π³Π΅Π½Ρ‚Π° «Apprentice»

package kr;

import jade.core.Agent;

import jade.core.behaviours.*;

import jade.domain.DFService;

import jade.domain.FIPAAgentManagement.DFAgentDescription;

import jade.domain.FIPAAgentManagement.ServiceDescription;

import jade.lang.acl.*;

import java.util.Random;

public class apprentice extends Agent {

protected String[][] list = {

{

" ΠŸΡ€ΠΈΠ²Π΅Ρ‚ master !"

},

{

" Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ стаканчикС !" ,

" Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ стаканчикС !" ,

" Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ стаканчикС !"

},

{

" Π£Ρ€Π° я Π²Ρ‹ΠΉΠ³Ρ€Π°Π» !" ,

" Π–Π°Π»ΡŒ я ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Π» !"

},

{

" Пока master !"

}

};

public int cash = 3;

protected void setup () {

DFAgentDescription dfd = new DFAgentDescription ();

dfd.setName (getAID ());

ServiceDescription sd = new ServiceDescription ();

sd.setType («kr»);

sd.setName («apprentice»);

dfd.addServices (sd);

final Agent agent = this;

try {

DFService.register (this, dfd);

System.out.println (getLocalName () + «ΠŸΡ€ΠΈΡˆΡ‘Π» ΠΈΠ³Ρ€Π°Ρ‚ΡŒ… «);

} catch (Exception e) {

System.out.println (e);

}

addBehaviour (new CyclicBehaviour (this) {

public void action () {

ACLMessage msg = receive ();

if (msg≠null) {

System.out.println («-> «+ myAgent. getLocalName () + «ΠΏΡ€ΠΈΠ½ΡΠ» сообщСниС «+ «''» +msg.getContent () + «'' «);

ACLMessage reply = msg. createReply ();

reply.setPerformative (ACLMessage.INFORM);

Random r = new Random ();

switch (msg.getContent ()) {

case «ΠŸΡ€ΠΈΠ²Π΅Ρ‚ players !» :

reply.setContent (list[0][0]);

break;

case «Π’ ΠΊaΠΊΠΎΠΌ стаканчикС ΡˆΠ°Ρ€ΠΈΠΊ ?» :

reply.setContent (list[1][0]);

break;

case «Π’ ΠΊΠ°ΠΊΠΎΠΌ стaΠΊΠ°Π½Ρ‡ΠΈΠΊΠ΅ ΡˆΠ°Ρ€ΠΈΠΊ ?» :

reply.setContent (list[1][1]);

break;

case «Π’ ΠΊΠ°ΠΊΠΎΠΌ стакaΠ½Ρ‡ΠΈΠΊΠ΅ ΡˆΠ°Ρ€ΠΈΠΊ ?» :

reply.setContent (list[1][2]);

break;

case «Π’ ΠΊΠ°ΠΊΠΎΠΌ стаканчикС ΡˆΠ°Ρ€ΠΈΠΊ ?» :

reply.setContent (list[1][r.nextInt (2)]);

break;

case «Π’Π΅Ρ€Π½ΠΎ !» :

reply.setContent (list[2][0]);

cash++;

System.out.println («** «+ getLocalName () + «Π˜ΠΌΠ΅Π΅Ρ‚ Π½Π° Ρ€ΡƒΠΊΠ°Ρ… сумму Ρ€Π°Π²Π½ΡƒΡŽ «+ cash);

break;

case «ΠΠ΅ Π²Π΅Ρ€Π½ΠΎ !» :

reply.setContent (list[2][1]);

cash—;

System.out.println («** «+ getLocalName () + «Π˜ΠΌΠ΅Π΅Ρ‚ Π½Π° Ρ€ΡƒΠΊΠ°Ρ… сумму Ρ€Π°Π²Π½ΡƒΡŽ «+ cash);

break;

}

send (reply);

System.out.println («<- «+ getLocalName () + «ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ» сообщСниС «+ «''» +reply.getContent () + «'' «);

if (cash == 6) {

try {

DFService.deregister (agent);

}

catch (Exception e) {

System.out.println (e);

}

System.out.println («** «+ getLocalName () + «''Бпасибо Π·Π° Ρ…ΠΎΡ€ΡƒΡˆΡƒΡŽ ΠΈΠ³Ρ€Ρƒ! ВсСм ΠΏΠΎΠΊΠ°…'' «);

doDelete ();

}

if (cash == 0) {

try {

DFService.deregister (agent);

}

catch (Exception e) {

System.out.println (e);

}

System.out.println («** «+ getLocalName () + «''Π£Π²Ρ‹ Ρƒ ΠΌΠ΅Π½Ρ ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ дСньги, Π½Π΅ΠΌΠΎΠ³Ρƒ ΠΈΠ³Ρ€Π°Ρ‚ΡŒ. ВсСм ΠΏΠΎΠΊΠ°…'' «);

doDelete ();

}

}

}

});

}

}

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ