ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмы классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΏΠΎ ΠΈΡ… изобраТСниям

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

На ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС классификации ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° Π²Ρ…ΠΎΠ΄ подаётся ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π°, послС Ρ‡Π΅Π³ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ подготавливаСтся для ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄Ρ‹ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. Для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ изобраТСния примСняСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. Π‘ΡƒΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ†Π²Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля усрСдняСтся ΠΏΡƒΡ‚Ρ‘ΠΌ нахоТдСния… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмы классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΏΠΎ ΠΈΡ… изобраТСниям (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования ΠΈ Π½Π°ΡƒΠΊΠΈ Российской Π€Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ Π€Π΅Π΄Π΅Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ государствСнноС Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΡƒΡ‡Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ образования

«Π’ладимирский государствСнный унивСрситСт ΠΈΠΌΠ΅Π½ΠΈ АлСксандра Π“Ρ€ΠΈΠ³ΠΎΡ€ΡŒΠ΅Π²ΠΈΡ‡Π° ΠΈ ΠΠΈΠΊΠΎΠ»Π°Ρ Π“Ρ€ΠΈΠ³ΠΎΡ€ΡŒΠ΅Π²ΠΈΡ‡Π° Π‘Ρ‚ΠΎΠ»Π΅Ρ‚ΠΎΠ²Ρ‹Ρ…»

Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈ Ρ„ΠΈΠ·ΠΈΠΊΠΈ

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ 10 501 — прикладная ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ°

Π”Π˜ΠŸΠ›ΠžΠœΠΠΠ― Π ΠΠ‘ΠžΠ’Π

Π’Π΅ΠΌΠ°: Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмы классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΏΠΎ ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΠΌ

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚Π° Π‘ΠΎΠ³Π΄Π°Π½ΠΎΠ²Π° Ильи Π”ΠΌΠΈΡ‚Ρ€ΠΈΠ΅Π²ΠΈΡ‡Π°

Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹: Павлова О.Н.

Аннотация

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° автоматизированная систСма классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΏΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΠΌ. ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ систСмы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ многослойныС полносвязныС Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти с ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ распространСния ошибки.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ достаточно ΠΎΠ±ΡŠΡ‘ΠΌΠ½ΠΎΠΉ Π±Π°Π·Ρ‹ классифицированных Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² для обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ источника исходных Π΄Π°Π½Π½Ρ‹Ρ… взят ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π°ΡƒΠΊΡ†ΠΈΠΎΠ½ΠΎΠ² (molotok.ru).

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π“Π»Π°Π²Π° 1. ΠžΠ±Π·ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² исслСдования

1.1 ОписаниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° исслСдования

1.2 ОписаниС ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

1.2.1 Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти

1.2.2 ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ распространСния ошибки

1.3 Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π΅Π΅ Π²Ρ‹Π±ΠΎΡ€Π° Π“Π»Π°Π²Π° 2. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°

2.1 Бпособ получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Π²Π΅Π±-рСсурсов

2.2 ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

2.3 Алгоритм классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

2.4 ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°Ρ… Π“Π»Π°Π²Π° 3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация. Апробация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ

3.1 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

3.2 Апробация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок использованной Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

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

Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ, ΠΏΡ€ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π° Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈ ΠΈΡ… Π°ΡΡΠΎΡ€Ρ‚ΠΈΠΌΠ΅Π½Ρ‚Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ систСмС классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

ЦСлью Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для получСния исходных Π΄Π°Π½Π½Ρ‹Ρ… для обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй ΠΈ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ.

Π“Π»Π°Π²Π° 1. ΠžΠ±Π·ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² исслСдования

1.1 ОписаниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° исслСдования

ΠœΠΎΠ»ΠΎΡ‚ΠΎΠΊ.Ρ€Ρƒ — ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΡ€ΡƒΠΏΠ½Π΅ΠΉΡˆΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π°ΡƒΠΊΡ†ΠΈΠΎΠ½ΠΎΠ² Π² Π ΠΎΡΡΠΈΠΈ. На ΡΠ°ΠΉΡ‚Π΅ прСдставлСно порядка 5 000 000 ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΎΡ‚ΠΎΠ², всС ΠΎΠ½ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ структурированы ΠΈ Π½Π°Ρ…одятся Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² 5000 ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ.

Рассмотрим ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π°ΡƒΠΊΡ†ΠΈΠΎΠ½Π°. ΠŸΡ€ΠΎΠ΄Π°Π²Π΅Ρ† выставляСт Ρ‚ΠΎΠ²Π°Ρ€ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΡƒ ΠΈ Π·Π°ΡΠ²Π»ΡΠ΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ†Π΅Π½Ρƒ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² приобрСтСния Ρ‚ΠΎΠ²Π°Ρ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π²Π°: ΠΏΠΎ Π±Π»ΠΈΡ†-Ρ†Π΅Π½Π΅ ΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Π°ΡƒΠΊΡ†ΠΈΠΎΠ½Π°. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ окончания Ρ‚ΠΎΡ€Π³ΠΎΠ² Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. МоТно сразу ΠΎΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€ ΠΈ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ с ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†ΠΎΠΌ ΠΎ Π΄ΠΎΡΡ‚Π°Π²ΠΊΠ΅, ΠΊΠ°ΠΊ это происходит Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°Ρ…. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ — Ρ‚ΠΎΠ²Π°Ρ€ достаСтся Ρ‚ΠΎΠΌΡƒ, ΠΊΡ‚ΠΎ сдСлал ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†Ρƒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

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

1.2 ОписаниС ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²

1.2.1 Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти

Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти (ИНБ) — матСматичСскиС ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, построСнныС ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ„ункционирования биологичСских Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй — сСтСй Π½Π΅Ρ€Π²Π½Ρ‹Ρ… ΠΊΠ»Π΅Ρ‚ΠΎΠΊ ΠΆΠΈΠ²ΠΎΠ³ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΠ°. Π­Ρ‚ΠΎ понятиС Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ процСссов, ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΡ… Π² ΠΌΠΎΠ·Π³Π΅, ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти процСссы. ΠŸΠ΅Ρ€Π²ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΎΠΉ Π±Ρ‹Π»ΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти Маккалока ΠΈ ΠŸΠΈΡ‚тса. ВпослСдствии, послС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² обучСния, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ стали ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€Π°ΠΊΡ‚ичСских цСлях: Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… прогнозирования, для распознавания ΠΎΠ±Ρ€Π°Π·ΠΎΠ², Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… управлСния ΠΈ Π΄Ρ€.

Рис. 1. Π‘Ρ…Π΅ΠΌΠ° трСхслойной Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти

ИНБ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой систСму соСдинённых ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ΅ΠΆΠ΄Ρƒ собой простых процСссоров (искусствСнных Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ²) (рис. 1). Π’Π°ΠΊΠΈΠ΅ процСссоры ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ довольно просты, особСнно Π² ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ с ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ Π² ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ…. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ процСссор ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ сСти ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚, ΠΈ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈ посылаСт Π΄Ρ€ΡƒΠ³ΠΈΠΌ процСссорам. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ соСдинёнными Π² Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΡΠ΅Ρ‚ΡŒ с ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡ‹ΠΌ взаимодСйствиСм, Ρ‚Π°ΠΊΠΈΠ΅ локально простыС процСссоры вмСстС способны Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ довольно слоТныС Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΠ΅Ρ€ΡΠ΅ΠΏΡ‚Ρ€ΠΎΠ½ — матСматичСская ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Срная модСль восприятия ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠ·Π³ΠΎΠΌ (кибСрнСтичСская модСль ΠΌΠΎΠ·Π³Π°), прСдлоТСнная Ѐрэнком Π ΠΎΠ·Π΅Π½Π±Π»Π°Ρ‚Ρ‚ΠΎΠΌ.

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

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ. ΠŸΡ€ΠΈ этом сСти ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΏΠ°Ρ€Ρƒ: Π²Π΅ΠΊΡ‚ΠΎΡ€ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ сСти. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, для обучСния ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Π½ΠΈΡŽ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… рядов это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ряда ΠΈ ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ Ρ…ΠΎΠ΄Π΅ обучСния вСсовыС коэффициСнты ΠΏΠΎΠ΄Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ ΡΡ‚ΠΈΠΌ Π²Ρ…ΠΎΠ΄Π°ΠΌ Π΄Π°Π²Π°Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ максимально Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ.

1.2.2 ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ распространСния ошибки ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ распространСния ошибки — ΠΌΠ΅Ρ‚ΠΎΠ΄ обучСния многослойного пСрсСптрона, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² обучСния с ΡƒΡ‡ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π±Ρ‹Π» описан Полом Π”ΠΆ. ВСрбосом. Π”Π°Π»Π΅Π΅ сущСствСнно Ρ€Π°Π·Π²ΠΈΡ‚ Π² 1986 Π³. Π”эвидом И. Π ΡƒΠΌΠ΅Π»ΡŒΡ…Π°Ρ€Ρ‚ΠΎΠΌ, Π”ΠΆ. Π•. Π₯ΠΈΠ½Ρ‚ΠΎΠ½ΠΎΠΌ ΠΈ Π ΠΎΠ½Π°Π»ΡŒΠ΄ΠΎΠΌ Π”ΠΆ. Π’ΠΈΠ»ΡŒΡΠΌΡΠΎΠΌ. Π­Ρ‚ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ с Ρ†Π΅Π»ΡŒΡŽ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ошибки Ρ€Π°Π±ΠΎΡ‚Ρ‹ многослойного ΠΏΠ΅Ρ€Ρ†Π΅ΠΏΡ‚Ρ€ΠΎΠ½Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π°.

Основная идСя этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° состоит Π² Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΠΈ сигналов ошибки ΠΎΡ‚ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² сСти ΠΊ Π΅Ρ‘ Π²Ρ…ΠΎΠ΄Π°ΠΌ, Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ прямому Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ сигналов Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π‘Π°Ρ€Ρ†Π΅Π² ΠΈ ΠžΡ…ΠΎΠ½ΠΈΠ½ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ сразу ΠΎΠ±Ρ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ («ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ двойствСнности»), ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌΡ‹ΠΉ ΠΊ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ классу систСм, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ систСмы с Π·Π°ΠΏΠ°Π·Π΄Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ, распрСдСлённыС систСмы, ΠΈ Ρ‚. ΠΏ.

ΠœΠ΅Ρ‚ΠΎΠ΄ являСтся ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠ΅ΠΉ классичСского ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска.

Алгоритм ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ распространСния ошибки ΠŸΡƒΡΡ‚ΡŒ Ρƒ Π½Π°Ρ имССтся многослойная ΡΠ΅Ρ‚ΡŒ прямого распространСния со ΡΠ»ΡƒΡ‡Π°ΠΉΠ½Ρ‹ΠΌΠΈ вСсовыми коэффициСнтами. Π•ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅Π΅ мноТСство, состоящСС ΠΈΠ· ΠΏΠ°Ρ€ Π²Ρ…ΠΎΠ΄ сСти — ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄. Π§Π΅Ρ€Π΅Π· Y ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ нашСй сСти, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² Π½Π°Ρ‡Π°Π»Π΅ практичСски случайно ΠΈΠ·-Π·Π° случайности вСсовых коэффициСнтов.

ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ вСсовыС коэффициСнты Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ рассмотрим сумму ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² ошибок сСти Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΈΠ· ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ мноТСства.

(1)

Π³Π΄Π΅ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ N-Π³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ слоя сСти для p-Π³ΠΎ Π½Π΅ΠΉΡ€ΠΎΠ½Π° Π½Π° j-ΠΌ ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ Π²Ρ‹Ρ…ΠΎΠ΄. Π’ΠΎ Π΅ΡΡ‚ΡŒ, ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ².

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вСсовыС коэффициСнты Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ входят Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ для нахоТдСния ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π½Π°ΠΈΡΠΊΠΎΡ€Π΅ΠΉΡˆΠ΅Π³ΠΎ спуска. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС обучСния Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ вСсовыС коэффициСнты ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅

(2)

Π³Π΄Π΅ вСсовой коэффициСнт j-Π³ΠΎ Π½Π΅ΠΉΡ€ΠΎΠ½Π° n-Π³ΠΎ слоя для связи с i-ΠΌ Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠΌ (n-1)-Π³ΠΎ слоя.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ называСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ скорости обучСния.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, трСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ частныС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ E ΠΏΠΎ Π²ΡΠ΅ΠΌ вСсовым коэффициСнтам сСти. Богласно ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ диффСрСнцирования слоТной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

(3)

Π³Π΄Π΅ — Π²Ρ‹Ρ…ΠΎΠ΄, Π° — взвСшСнная сума Π²Ρ…ΠΎΠ΄ΠΎΠ² j-Π³ΠΎ Π½Π΅ΠΉΡ€ΠΎΠ½Π° n-Π³ΠΎ слоя. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ, зная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ. НапримСр, для сигмоида эта Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΡΡ‚ΡŒΡΡ

. (4)

Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΡΠΎΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ / Π΅ΡΡ‚ΡŒ Π½ΠΈ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄ i-Π³ΠΎ Π½Π΅ΠΉΡ€ΠΎΠ½Π° (n-1)-Π³ΠΎ слоя, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ

. (5)

ЧастныС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎ Π²Π΅ΡΠ°ΠΌ Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ слоя Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Ρ Π΄ΠΈΡ„Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (1) ΠΏΠΎ ΠΈ ΡƒΡ‡ΠΈΡ‚ывая (3) ΠΈ (5) Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠΌΠ΅Ρ‚ΡŒ

(6)

Π’Π²Π΅Π΄Π΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

. (7)

Π’ΠΎΠ³Π΄Π° для Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ слоя

. (8)

Для вСсовых коэффициСнтов Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… слоСв ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ сразу Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‡Π΅ΠΌΡƒ Ρ€Π°Π²Π΅Π½ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡΠΎΠΌΠ½ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒ ΠΈΠ· (4), ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

(9)

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΡΡ‚ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° сомноТитСля Π΅ΡΡ‚ΡŒ Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ (9) ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ для Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² n-Π³ΠΎ слоя чСрСздля Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² (n+1)-Π³ΠΎ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для послСднСго слоя Π»Π΅Π³ΠΊΠΎ вычисляСтся ΠΏΠΎ (8), Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСкурсивной Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹

(10)

ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ значСния для Π²Π΅Ρ… Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² всСх слоСв.

ΠžΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ (2) для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ вСсовых коэффициСнтов ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π²ΠΈΠ΄Π΅

. (11)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ распространСния ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΠΌ всСм вСсовым коэффициСнтам сСти случайныС Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ значСния. ΠŸΡ€ΠΈ этом ΡΠ΅Ρ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ случайноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… сигналов ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (1) Π±ΡƒΠ΄ΡƒΡ‚ Π²Π΅Π»ΠΈΠΊΠΈ.

ΠŸΠΎΠ΄Π°Ρ‚ΡŒ Π½Π° Π²Ρ…ΠΎΠ΄ сСти ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΈΠ· ΠΎΠ±ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ мноТСства. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ значСния сСти, запоминая ΠΏΡ€ΠΈ этом Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ значСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ².

Π Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ (8). Π—Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСкурсивной Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ (10) ΠΏΠΎΠ΄ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ (11) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вСсовых коэффициСнтов сСти.

Π‘ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСса сСти:

.

Π Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ (1). Если ΠΎΠ½Π° достаточно ΠΌΠ°Π»Π°, считаСм ΡΠ΅Ρ‚ΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΠ²ΡˆΠ΅ΠΉΡΡ. Π˜Π½Π°Ρ‡Π΅ возвращаСмся Π½Π° ΡˆΠ°Π³ 2.

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

(12)

Π³Π΄Π΅ — Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ сигнала.

ΠœΠ΅Ρ‚ΠΎΠ΄ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΎΡ†Π΅Π½ΠΊΠΈ. Π’Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ конструированиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ†Π΅Π½ΠΊΠΈ позволяСт Π½Π° ΠΏΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ обучСния сСти, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ — «ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ увСрСнности» сСти Π² Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ ΠΎΡ‚Π²Π΅Ρ‚Π΅.

НСдостатки Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° НСсмотря Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Π΅ примСнСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ распространСния, ΠΎΠ½ΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΏΠ°Π½Π°Ρ†Π΅Π΅ΠΉ. Π‘ΠΎΠ»ΡŒΡˆΠ΅ всСго нСприятностСй приносит Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎ Π΄ΠΎΠ»Π³ΠΈΠΉ процСсс обучСния. Π’ ΡΠ»ΠΎΠΆΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡Π°Ρ… для обучСния сСти ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π½ΠΈ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π΄Π΅Π»ΠΈ, ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ. ΠŸΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅.

ΠŸΠ°Ρ€Π°Π»ΠΈΡ‡ сСти Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ обучСния сСти значСния вСсов ΠΌΠΎΠ³ΡƒΡ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ большими Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ всС ΠΈΠ»ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… значСниях OUT, Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ, Π³Π΄Π΅ производная ΡΠΆΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ посылаСмая ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ обучСния ошибка ΠΏΡ€ΠΎΠΏΠΎΡ€Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π° этой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ, Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅ΡΡ обучСния ΠΌΠΎΠΆΠ΅Ρ‚ практичСски Π·Π°ΠΌΠ΅Ρ€Π΅Ρ‚ΡŒ. Π’ Ρ‚СорСтичСском ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ эта ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ»ΠΎΡ…ΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ этого ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° шага Π·, Π½ΠΎ ΡΡ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя обучСния. Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ эвристики использовались для прСдохранСния ΠΎΡ‚ ΠΏΠ°Ρ€Π°Π»ΠΈΡ‡Π° ΠΈΠ»ΠΈ для восстановлСния послС Π½Π΅Π³ΠΎ, Π½ΠΎ ΠΏΠΎΠΊΠ° Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ лишь ΠΊΠ°ΠΊ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡ‹ ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ распространСниС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½ΠΎΠ³ΠΎ спуска, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ осущСствляСт спуск Π²Π½ΠΈΠ· ΠΏΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ…ности ошибки, Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ подстраивая вСса Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ. ΠŸΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ ошибки слоТной сСти сильно ΠΈΠ·Ρ€Π΅Π·Π°Π½Π° ΠΈ ΡΠΎΡΡ‚ΠΎΠΈΡ‚ ΠΈΠ· Ρ…ΠΎΠ»ΠΌΠΎΠ², Π΄ΠΎΠ»ΠΈΠ½, складок ΠΈ ΠΎΠ²Ρ€Π°Π³ΠΎΠ² Π² ΠΏΡ€ΠΎΡΡ‚ранствС высокой размСрности. Π‘Π΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ (Π½Π΅Π³Π»ΡƒΠ±ΠΎΠΊΡƒΡŽ Π΄ΠΎΠ»ΠΈΠ½Ρƒ), ΠΊΠΎΠ³Π΄Π° рядом имССтся Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ. Π’ Ρ‚ΠΎΡ‡ΠΊΠ΅ локального ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° всС направлСния Π²Π΅Π΄ΡƒΡ‚ Π²Π²Π΅Ρ€Ρ…, ΠΈ ΡΠ΅Ρ‚ΡŒ нСспособна ΠΈΠ· Π½Π΅Π³ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒΡΡ. ΠžΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠ²: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· выходя ΠΈΠ· Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ°, снова ищСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ распространСния ошибки Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π°ΠΉΡ‚ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ ΡƒΠΆΠ΅ Π½Π΅ ΡƒΠ΄Π°Ρ‘тся.

Π Π°Π·ΠΌΠ΅Ρ€ шага Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° сходимости ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ вСсов ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ бСсконСчно ΠΌΠ°Π»Ρ‹ΠΌΠΈ. Ясно, Ρ‡Ρ‚ΠΎ это нСосущСствимо Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Π΅Π΄Ρ‘Ρ‚ ΠΊ Π±Π΅ΡΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ обучСния. Π Π°Π·ΠΌΠ΅Ρ€ шага Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ€Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ. Если Ρ€Π°Π·ΠΌΠ΅Ρ€ шага фиксирован ΠΈ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π», Ρ‚ΠΎ ΡΡ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ слишком мСдлСнная, Ссли ΠΆΠ΅ ΠΎΠ½ Ρ„иксирован ΠΈ ΡΠ»ΠΈΡˆΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»ΠΈΡ‡ ΠΈΠ»ΠΈ постоянная Π½Π΅ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ. Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ шаг Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚ится ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΡ†Π΅Π½ΠΊΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ Π°Π½Ρ‚ΠΈΠ³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ, Ссли Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚. П. Π”. ВассСрман описал Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° шага, автоматичСски ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ шага Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ обучСния. Π’ ΠΊΠ½ΠΈΠ³Π΅ А. Н. Горбаня ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° развСтвлённая тСхнология ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ обучСния.

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

1.3 Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π΅Π΅ Π²Ρ‹Π±ΠΎΡ€Π°

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования C# с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ. NETFramework4.0 Π² ΡΡ€Π΅Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ MicrosoftVisualStudio 2010. Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ массивных вычислСний, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C++. MSVisualStudio 2010 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π½ΠΎΠ²Ρ‹Ρ… ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΡ… всС этапы процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ирования Π΄ΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚ывания.

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² MicrosoftVisualStudio2010 Ultimate Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C# с Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ. NETFramework4.0 осущСствляСтся с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования.

Π“Π»Π°Π²Π° 2. ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°

2.1 Бпособ получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Π²Π΅Π±-рСсурсов

ΠŸΡ€ΠΈ исслСдовании срСдств получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с ΡΠ°ΠΉΡ‚Π° molotok.ru выявлСно отсутствиС API, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ исходныС Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ нСпосрСдствСнно с Π²Π΅Π±-страниц сайта. Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ доступ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ страницы. Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ элСмСнтов Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ JavaScript ΠΈ AJAX. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ выполнСния простых HTTP запросов (классы WebRequestΠΈ WebResponse) нСдостаточно, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ JavaScriptΠΈ AJAX Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅. Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ страницы с ΡΠ°ΠΉΡ‚Π°, Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ стандартный для MSVisualStudioкласс WebBrowser, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ для нСуправляСмого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Internet Explorer, вСрсии ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΠΉ установлСнному Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², прСдоставляСмых классом WebBrowser нСдостаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эффСктивно ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ страницы Π²Π΅Π±-сайта, поэтому Π±Ρ‹Π»ΠΎ создано Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса.

Π‘Π°ΠΉΡ‚ molotok.ru являСтся ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π°ΡƒΠΊΡ†ΠΈΠΎΠ½ΠΎΠΌ с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ количСством ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ²Π°Ρ€. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ список ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, с ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ влоТСнности Ρ‚.ΠΊ. это потрСбуСтся Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌ. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Π΅Π±-страницы сайта «ΠšΠ°Ρ€Ρ‚Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ» (http://molotok.ru/category_map.php). На ΡΠ°ΠΉΡ‚Π΅ прСдставлСно Π±ΠΎΠ»Π΅Π΅ 5000 ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Ρ‹ ΠΎΠ΄Π½Π° Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ. Π’ΠΎ Π΅ΡΡ‚ΡŒ фактичСски список ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ являСтся Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ структурой. ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности — Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ. ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ уровня Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Π° ΡΠ²Π»ΡΡŽΡ‚ся лишь Π°Π³Ρ€Π΅Π³Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ для ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ уровня. На Π²Π΅Π±-страницС «ΠšΠ°Ρ€Ρ‚Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ» прСдставлСны ссылки Π½Π° Π²ΡΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π°ΡƒΠΊΡ†ΠΈΠΎΠ½Π°, каТдая катСгория содСрТится Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ html-элСмСнта

Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ html-тэгов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для извлСчСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠ°Ρ‚Сгориях ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ рСгулярныС выраТСния. На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π΄Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° для получСния ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ.

Рис. 2. Алгоритм получСния ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ с Π²Π΅Π±-рСсурса

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ этап состоит Π² ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ ссылок Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ². Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ страницы ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, учитывая, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько страниц с Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ, Π½ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΡ‚Ρ€Π°Π½ΠΈΡ†Π΅ отобраТаСтся Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 25 Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ². ΠžΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ страницы с ΡΠ°ΠΌΠΈΠΌΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π°ΠΌΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ вся нСобходимая информация ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°Ρ… содСрТится Π² html-элСмСнтС

, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Π² ΡΠ΅Π±Π΅ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΈ Π²ΡΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ…. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π° Ρ‚ΠΈΠΏΠ°: тСкстовая (Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΎΠ²Π°Ρ€Π°) ΠΈ Π³Ρ€Π°Ρ„ичСская (Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Ρ‚ΠΎΠ²Π°Ρ€Π°). Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-Π°ΡƒΠΊΡ†ΠΈΠΎΠ½ сохраняСт всС изобраТСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π½Π° Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌ хостингС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ ΠΎΠ½ΠΈ проходят ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΡΡ‚ся ΠΊ Π΄Π²ΡƒΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ: 64×48 ΠΈ 400×300. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π‘Π” ссылки Π½Π° Π΅Π³ΠΎ изобраТСния. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ссылки Ρ€Π°Π·Π΄Π΅Π»Π°ΡŽΡ‚ΡΡ Π½Π° Π΄Π²Π° Ρ‚ΠΈΠΏΠ°, согласно Π΄Π²ΡƒΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎΡ‚ этап происходит Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ². На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π΄Π°Π»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

Рис. 3. Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°Ρ…

На ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ этапС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° считываСт ΠΈΠ· Π‘Π” ссылки Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ изобраТСния ΠΈ ΡΠΎΡ…раняСт ΠΈΡ… Π½Π° Π΄ΠΈΡΠΊ, структурируя ΠΈΡ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄: ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° изобраТСния, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ изобраТСния, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ‚ΠΎΠ²Π°Ρ€Π° изобраТСния. Π’Π°ΠΊ ΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π‘Π” для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ссли ссылки ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ этапС. Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΡΡ‹Π»ΠΊΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ классы WebRequestΠΈ WebResponse. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° происходит Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅.

2.2 ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

Для классификации ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ искусствСнныС Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти. Π’Π°ΠΊ ΠΊΠ°ΠΊ количСство ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ Π²Π΅Π»ΠΈΠΊΠΎ, Ρ‚ΠΎ Π΅Π΄ΠΈΠ½Π°Ρ нСйронная ΡΠ΅Ρ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ рСсурсоёмкой, поэтому ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ соотвСтствуСт своя нСйронная ΡΠ΅Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сказываСтся Π½Π° Π±Ρ‹ΡΡ‚родСйствии, Π½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ рСсурсы памяти, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈΠ· ΠΏΠ°ΠΌΡΡ‚ΠΈ сСти ΠΏΠΎΠΎΠ΄ΠΈΠ½ΠΎΡ‡ΠΊΠ΅, Ρ‡Ρ‚ΠΎ, Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΡ€ΠΈΠ΄Π°Ρ‘Ρ‚ систСмС Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ слоёв Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ сСти Ρ€Π°Π²Π½ΠΎ Ρ‚Ρ€Ρ‘ΠΌ. ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ распространСния ошибки. Для удобства обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ обучСния приводятся ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π·Π°Ρ‚Ρ€Π°Ρ‡ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π½Π° ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅. ΠžΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Ρ‹, содСрТащиС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²Π΅ΡΠΎΠ²Ρ‹Ρ… коэффициСнтах сСти, количСствС Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΠ»ΠΎΠ΅Π², Π° Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ±ΡƒΡ‡Π°Π»Π°ΡΡŒ данная ΡΠ΅Ρ‚ΡŒ.

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

2.3 Алгоритм классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

На ΠΏΠ΅Ρ€Π²ΠΎΠΌ этапС классификации ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° Π²Ρ…ΠΎΠ΄ подаётся ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π°, послС Ρ‡Π΅Π³ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ подготавливаСтся для ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄Ρ‹ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. Для ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ изобраТСния примСняСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. Π‘ΡƒΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ†Π²Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ пиксСля усрСдняСтся ΠΏΡƒΡ‚Ρ‘ΠΌ нахоТдСния срСднСго арифмСтичСского ΠΈΠ· Π΅Π³ΠΎ RGB-ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…, Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ число дСлится Π½Π° 255 ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚аСтся ΠΈΠ· Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, наибольшСй Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ для Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Ρ‚Ρ‘ΠΌΠ½Ρ‹Π΅ Ρ†Π²Π΅Ρ‚Π°. Π’Π°ΠΊ ΠΆΠ΅, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€ изобраТСния отличаСтся ΠΎΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для ΠΏΠΎΠ΄Π°Ρ‡ΠΈ Π½Π° Π²Ρ…ΠΎΠ΄ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти, ΠΎΠ½ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ся ΠΊ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ стандартных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°ΡΡ‚Ρ€ΠΎΠ²Ρ‹ΠΌΠΈ изобраТСниями, встроСнных Π² ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ.NET. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ массив Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ этапС Π²Ρ‹Ρ…ΠΎΠ΄Ρ‹ сСтСй Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ согласно структурС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π½Π΅Π΅ с ΡΠ°ΠΉΡ‚Π°, ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² ΡΠ΅Π±Π΅ каТдая ΠΈΠ· ΡΠ΅Ρ‚Π΅ΠΉ.

На Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅ΠΌ этапС вычисляСтся срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ сСтСй, ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚ся Π²Ρ‹Π²ΠΎΠ΄ ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π° ΠΊ Ρ‚ΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΈ, ΠΊΠ°ΠΊ слСдствиС, ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ.

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4 прСдставлСна схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² для ΠΎΠ΄Π½ΠΎΠ³ΠΎ изобраТСния, Ссли ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ нСсколько, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ всС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°, ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй, Ссли ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π΅ Π±Ρ‹Π»Π° освобоТдСна Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Рис. 4. Π‘Ρ…Π΅ΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

2.4 ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°Ρ…

Π‘Ρ‚ΠΎΠΈΡ‚ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ основныС Π²ΠΈΠ΄Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅: описаниС Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ссылки Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², настройки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, изобраТСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Π΄Π°Π½Π½Ρ‹Π΅ для обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

Для хранСния Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ссылок Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ рСляционная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ MSSQLServer 2008 R2 ExpressSP1.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² осущСствляСтся Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ способом, Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ…, ΠΏΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ‚ΠΎΠ²Π°Ρ€Ρƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ изобраТСния. КаТдой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ соотвСтствуСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТатся ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит изобраТСния, присущиС ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ‚ΠΎΠ²Π°Ρ€Ρƒ. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ для обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй хранится Π² Π²ΠΈΠ΄Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ², Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… сСтям. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй хранятся Π² Ρ„Π°ΠΉΠ»Π°Ρ… Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ структуры.

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° структура Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Рис. 5. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ описаниС Ρ‚Π°Π±Π»ΠΈΡ†, ΠΏΠΎΠ»Π΅ΠΉ ΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…:

Π’Π°Π±Π»ΠΈΡ†Π° SettingsΡ…Ρ€Π°Π½ΠΈΡ‚ Π² ΡΠ΅Π±Π΅ настройки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ для сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ ΠΏΠΎΡ‚ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ описаниС ΠΏΠΎΠ»Π΅ΠΉ:

setting — Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ настройки, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… varchar.

value — Ρ…Ρ€Π°Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ настройки, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… varchar.

Π’Π°Π±Π»ΠΈΡ†Π° ImagesΡ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ… Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², ΠΎ Ρ‚ΠΎΠΌ, ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ Ρ‚ΠΎΠ²Π°Ρ€Ρƒ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ описаниС ΠΏΠΎΠ»Π΅ΠΉ:

itemId — Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ изобраТСния, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… с Π²Π΅Π±-рСсурса, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… bigint.

categoryId — Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ относится ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int.

URL — Ρ…Ρ€Π°Π½ΠΈΡ‚ ссылку Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… varchar.

isBig — Ρ„Π»Π°Π³, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ, ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ большоС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… bit.

Π’Π°Π±Π»ΠΈΡ†Π° CategoriesΡ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΊΠ°Ρ‚Сгориях ΠΈ ΠΈΡ… ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ описаниС ΠΏΠΎΠ»Π΅ΠΉ:

id — Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ с Π²Π΅Π±-рСсурса, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int.

[level] - ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int.

name — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… varchar.

url — ссылка Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… varchar.

parentUrl — ссылка Π½Π° Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ, Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… varchar.

Π“Π»Π°Π²Π° 3. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация. Апробация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ

3.1 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π°ΡƒΠΊΡ†ΠΈΠΎΠ½ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹ΠΉ ΡΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования C# Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.NET4.0 Π’ срСдС программирования MicrosoftVisualStudio 2010 UltimateEdition. Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… осущСствлСно с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π‘Π£Π‘Π” MSSQLServer2008 R2 ExpressEditionSP1.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‰Π°Ρ Π΄Π°Π½Π½Ρ‹Π΅ с Π²Π΅Π±-рСсурса ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

1. Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π°, с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°Ρ….

2. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Ρ‚ΠΎΠ²Π°Ρ€Π°.

3. Бсылка Π½Π° Ρ‚ΠΎΠ²Π°Ρ€

4. ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ Ρ‚ΠΎΠ²Π°Ρ€Π°

5. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Ρ‚ΠΎΠ²Π°Ρ€Π°.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния являСтся:

ЗаполнСнная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΊΠ°Ρ‚Сгориях ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ… Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅, сохранённыС локально изобраТСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°:

1. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

2. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ для обучСния сСтСй

3. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ сСтСй Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния являСтся:

ΠžΡ‚Π²Π΅Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π° ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ.

Как ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСт ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π°Ρ…, ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ… ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ классификации. Π’ ΡΠ²ΡΠ·ΠΈ с ΡΡ‚ΠΈΠΌ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ этап выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 6прСдставлСна структурная схСма прилоТСния:

Рис. 6. Бтруктурная схСма прилоТСния

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 7 прСдставлСна структура Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ с Π²Π΅Π±-рСсурса:

Рис. 7. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ с Π²Π΅Π±-рСсурса

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 8 прСдставлСна структура Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹:

Рис. 8. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния, ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с Π²Π΅Π±-рСсурса:

Program — Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прилоТСния, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Π΅Π³ΠΎ запуск.

Grabber — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ°Ρ€ΡΠΈΠ½Π³ Π²Π΅Π±-рСсурса

Components — Π½Π°Π±ΠΎΡ€ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ парсингС ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

DBEngine — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для осущСствлСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π”.

ThreadHelper — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, содСрТащий Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для распрСдСлСния ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΎΠ±ΡŠΡ‘ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ.

LoggerΠΌΠΎΠ΄ΡƒΠ»ΡŒ, ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния, ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹:

Program — Π³Π»Π°Π²Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прилоТСния, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° Π΅Π³ΠΎ запуск.

NeuralNetworkΠΌΠΎΠ΄ΡƒΠ»ΡŒ, содСрТащий Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ ΡΠ΅Ρ‚ΡŒΡŽ.

TrainDataΠΌΠΎΠ΄ΡƒΠ»ΡŒ формирования ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

NetworkControllerΠΌΠΎΠ΄ΡƒΠ»ΡŒ для управлСния Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ массива Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

NetworkPoolΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° классификации.

ОписаниС классов.

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ поставлСнной Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π½Π°Π±ΠΎΡ€ классов ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структуры:

Класс CategoryописываСт ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ структуру класса:

public class Category

{

public int id; //Π˜Π” ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ сайта

public int level; //Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ влоТСния

public string name; //НазваниС

public string url; //ссылка

public string parentURL; //ссылка Π½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ

public List categoryImages; //изобраТСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

}

Класс Image описываСт ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Π°.

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ структуру класса:

public class Image

{

public Int64 itemId; //Π˜Π” Ρ‚ΠΎΠ²Π°Ρ€Π°

public int categoryId; //Π˜Π” ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

public string URL; // ссылка Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ

public bool isBig; // Ρ„Π»Π°Π³, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ большоС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

}

Класс ImageSaver ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π½Π° Π΄ΠΈΡΠΊ, являСтся статичСским ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ»Π΅ΠΉ.

Класс DBEngineявляСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ структуру класса:

public class DBEngine

{

string connectionString; //строка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

public CategoryTable categoryTable; //Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

public ImageTable imageTable; //Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

public SettingsTable settingsTable; //Ρ‚Π°Π±Π»ΠΈΡ†Π° настроСк

}

Класс EngineTable являСтся классом-Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ классам для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ структуру класса:

public class EngineTable

{

protected string tableName; //Имя Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

protected string connectionString; //строка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

}

Класс CategoryTable ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, являСтся наслСдником класса EngineTable.

Класс ImageTable ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, являСтся наслСдником класса EngineTable.

Класс SettingsTable ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ настроСк Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, являСтся наслСдником класса EngineTable.

Класс BrowserExtensions ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй встроСнного классаWebBrowser.

Класс TreeViewExtension ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй встроСнного классаTreeView.

Класс GrabberслуТит для извлСчСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ с Π²Π΅Π±-рСсурса.

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ структуру класса:

class Grabber

{

DBEngine.DBEngine dbEngine; //Π΄Π²ΠΈΠΆΠΎΠΊ Π‘Π”

List categories; //ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

int getItemCounter; //счСтчик получСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

int getItemWorkAmount; //ΠΎΠ±ΡŠΡ‘ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ получСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

int getItemThreadCount; //количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² получСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

public int GetItemThreadCount

{

get { return getItemThreadCount; }

set { getItemThreadCount = value; }

}

int saveImageCounter; //счСтчик сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

int saveItemWorkAmount; //ΠΎΠ±ΡŠΡ‘ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

int saveItemThreadCount; //количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

public int SaveItemThreadCount

{

get { return saveItemThreadCount; }

set { saveItemThreadCount = value; }

}

}

Класс NeuralNetworkΡƒ управляСт Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ ΡΠ΅Ρ‚ΡŒΡŽ.

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ структуру класса:

partial class NeuralNetwork

{

NeuralNet net; //нСйронная ΡΠ΅Ρ‚ΡŒ

uint[] neuronsInLayers; //количСство Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² Π² ΡΠ»ΠΎΡΡ…

public int id; //Π˜Π”

public Category levelTwoParent; //катСгория Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ уровня 2

public Category category; //катСгория

public string Name //имя

{

get { return category.name; }

}

public int Level //ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ

{

get { return category. level; }

}

}

Класс NetworkPool ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ сСтСй ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° классификации, Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΏΠΎΠ»Π΅ΠΉ.

Класс NetworkController управляСт массивом Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ структуру класса:

class NetworkController

{

DBEngine dbEngine; //Π΄Π²ΠΈΠΆΠΎΠΊ Π‘Π”

List smallNetworks; //малСнькиС сСти

List bigNetworks; //большиС сСти

public Dictionary workResult; //Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСтСй

bool smallNetworksInitialized; //Ρ„Π»Π°Π³ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ°Π»Ρ‹Ρ… сСтСй

public bool SmallNetworksInitialized

{

get { return smallNetworksInitialized; }

}

bool bigNetworksInitialized; //Ρ„Π»Π°Π³ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сСтСй

public bool BigNetworksInitialized

{

get { return bigNetworksInitialized; }

set { bigNetworksInitialized = value; }

}

string initialDirectory; //рабочая дирСктория

public string InitialDirectory

{

get { return initialDirectory; }

}

uint[] smallNetworkLayers = { 3072, 512, 1 }; //слои ΠΌΠ°Π»Ρ‹Ρ… сСтСй

uint[] bigNetworkLayers = { 12 000, 1000, 1 }; //слои Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сСтСй

int trainDataCreationCounter; //счСтчик создания Π΄Π°Π½Π½Ρ‹Ρ… для обучСния

int trainDataCreationWorkAmount; //ΠΎΠ±ΡŠΡ‘ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… обучСния

int trainDataCreationThreadCount; //количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… обучСния

public int TrainDataCreationThreadCount

{

get { return trainDataCreationThreadCount; }

set { trainDataCreationThreadCount = value; }

}

int networkTrainCounter; //счСтчик обучСния сСтСй

int networkTrainWorkAmount; //ΠΎΠ±ΡŠΡ‘ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ обучСния сСтСй

int networkTrainThreadCount; //количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² обучСния сСтСй

public int NetworkTrainThreadCount

{

get { return networkTrainThreadCount; }

set { networkTrainThreadCount = value; }

}

int networkCreateCounter; //счСтчик создания сСтСй

int networkCreateWorkAmount; //ΠΎΠ±ΡŠΡ‘ΠΌ создания сСтСй

int networkCreateThreadCount; //ΠΏΠΎΡ‚ΠΎΠΊΠΈ создания сСтСй

public int NetworkCreateThreadCount

{

get { return networkCreateThreadCount; }

set { networkCreateThreadCount = value; }

}

}

ОписаниС интСрфСйса Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ появляСтся Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ прилоТСния:

Рис. 9. Окно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ послС запуска

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ описаниС интСрфСйса Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ с ΡΠ°ΠΉΡ‚Π°, Π»ΠΈΠ±ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ€Π°Π½Π΅Π΅ сохранённый список ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

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

Рис. 10. Окно ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΌ списком ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ парс ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅, Π° Ρ‚Π°ΠΊ ΠΆΠ΅, Ссли Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ количСства ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ. ПослС наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ «ΠŸΠ°Ρ€ΡΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ» начнСтся процСсс извлСчСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, прогрСсс отобраТаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ProgressBar ΠΈ Π² ΡΡ‚атусной строкС.

Рис. 11. ΠŸΡ€ΠΎΡ†Π΅ΡΡ парсинга ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

ПослС окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Рис. 12. Π Π°Π±ΠΎΡ‚Π° ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½Π°

Для продолТСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ². ΠŸΡ€ΠΈ запускС прилоТСния ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Рис. 13. Π“Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ для обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй, ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ сСти ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. ΠŸΡ€ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для обучСния сСтСй Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ число ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², такая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ имССтся ΠΈ ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ для обучСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ‡Π½Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ:

Рис. 14. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² обучСния

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Ρ‹ обучСния Π±ΡƒΠ΄ΡƒΡ‚ Π³ΠΎΡ‚ΠΎΠ²Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти, для этого Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «ΠžΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти», ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Π² количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² для обучСния. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ обучСния сСтСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²Π° ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

Для классификации Ρ‚ΠΎΠ²Π°Ρ€Π°, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ», Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ этого Ρ‚ΠΎΠ²Π°Ρ€Π°, ΠΈ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° классификации.

Рис. 15. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ классификации

3.2 Апробация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ

Для тСстирования ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° случайная Π²Ρ‹Π±ΠΎΡ€ΠΊΠ° 20 ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ΠΎΠ±Ρ‰Π΅Π΅ количСство Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² составило 8442, ΠΎΠ±Ρ€Π°Π·ΠΎΠ² — 19 863. ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ»Π°ΡΡŒ Π² Π²ΠΎΡΠ΅ΠΌΡŒ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Для осущСствлСния тСстирования Π±Ρ‹Π»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π½Ρ‹ 2000 случайных Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², ΠΏΠΎ 100 ΡˆΡ‚ΡƒΠΊ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ тСстирования для ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΎΠ²Π°Ρ€Π° считался, Ссли ΡΠ΅Ρ‚ΡŒ, ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠ²Π°Ρ€, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ сигнал Π½Π° 90% ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ эталонному сигналу. Настройки Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй: число Π½Π΅ΠΉΡ€ΠΎΠ½ΠΎΠ² Π²ΠΎ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΌ слоС — 3072, Π² ΡΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ — 512, Π² Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌ — 1, шаг обучСния 1*10-10, максимальноС количСство эпох ΠΏΡ€ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠΈ — 1*109, максимально допустимая ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ — 1*10-10.

Рис. 16. ΠŸΡ€ΠΎΡ†Π΅Π½Ρ‚ Π²Π΅Ρ€Π½ΠΎ классифицированных Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΏΠΎ ΠΊΠ°Ρ‚Сгориям

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, прСдставлСнного Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π²Ρ‹ΡˆΠ΅, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚ 66 Π΄ΠΎ 89%. Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ классификации Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° ΠΎΠ±Ρ€Π°Π·ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π΄Π°Π½ΠΎ сСти для обучСния. Максимальная Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π±Ρ‹Π»Π° достигнута для сСти с 4867 ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ. БоотвСтствиС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 1.

Π’Π°Π±Π»ΠΈΡ†Π° 1

НаимСнованиС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

НоТи

Π€ΠΎΠ½Π°Ρ€ΠΈ

Π¦ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Π·Π΅Ρ€ΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹

Π ΠΎΠ»ΠΈΠΊΠΎΠ²Ρ‹Π΅ коньки

Π”Π΅Ρ„Π»Π΅ΠΊΡ‚ΠΎΡ€Ρ‹

ΠŸΠ°Π»Π°Ρ‚ΠΊΠΈ

Π€Π°Ρ€ΠΊΠΎΠΏΡ‹

Π“ΠΈΡ€ΠΈ

Π“Π°Π½Ρ‚Π΅Π»ΠΈ

ΠœΡΡ‡ΠΈ

ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ½ΡΠΊΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ‹

Π¨Π°Ρ…ΠΌΠ°Ρ‚Ρ‹

iPhone

iPhone3GS

iPhone 3GS White

iPhone4S

iPhone 4S White

USB Ρ„Π»Π΅ΡˆΠΊΠΈ

ΠœΠ΅Ρ‚Π°Π»Π»ΠΎΠΈΡΠΊΠ°Ρ‚Π΅Π»ΠΈ

НСйронныС сСти Π² ΠΎΡΠ½ΠΎΠ²Π΅ систСмы Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΌΠ°Π»ΠΎΠ²Π°ΠΆΠ½Ρ‹ΠΌ аспСктом Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся Π΅Ρ‘ Π±Ρ‹ΡΡ‚родСйствиС, Π΄Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ осущСствлСно тСстированиС скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния.

ВСстовая конфигурация Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 2.

Π’Π°Π±Π»ΠΈΡ†Π° 2

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€

AMD FX-8120 4600 MHz

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ

Kingston HyperXT1 16Gb 1866 MHz

ЖСсткий диск

OCZ Vertex Turbo 30Gb, 2xWD Caviar Green 1Tb Raid1

Π‘Π»ΠΎΠΊ питания

Enermax Revolution85+ 920W

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ прСдставлСны Π² ΠΏΠΎΡ€ΡΠ΄ΠΊΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния всСх ΡƒΠ·Π»ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: ΠΎΡ‚ ΠΏΠ°Ρ€ΡΠ° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π΄ΠΎ Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. ВсСго Π½Π° ΡΠ°ΠΉΡ‚Π΅ прСдставлСно 5116 ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, ΠΎΠ±Ρ‰Π΅Π΅ врСмя парса всСх ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ составляСт 36−38 сСкунд.

Рис. 17. ВрСмя парсинга ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

На Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠΌ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 17, прСдставлСны ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ 11 ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, максимальноС врСмя парса составляСт 0,0204 сСк, минимальноС — 0,0058 сСк, срСднСС — 0,0122 сСк.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ тСст ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ парсингС Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ². Π’ΠΎΠ²Π°Ρ€Ρ‹ Π½Π° ΡΠ°ΠΉΡ‚Π΅ прСдставлСны страницами ΠΏΠΎ 25 Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ страницС. МаксимальноС врСмя парса страницы -2,8057 сСк, минимальноС -1,6170 сСк, срСднСС — 2,1116 сСк.

Рис. 18. ВрСмя парсинга Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 18ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π³Ρ€Π°Ρ„ΠΈΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ прСдставлСны 50 случайных Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈ Π²Ρ€Π΅ΠΌΡ ΠΈΡ… ΠΏΠ°Ρ€ΡΠΈΠ½Π³Π°. МинимальноС врСмя составляСт 0,0003 сСк, максимальноС — 0,0023 сСк, срСднСС врСмя — 0,0007 сСк.

Рис. 19. ВрСмя сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π΄ΠΈΡΠΊ

На Π΄Π°Π½Π½ΠΎΠΌ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅ (рис. 19) прСдставлСн Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ тСстирования ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ сохранСния 250 случайных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° Π΄ΠΈΡΠΊ. МинимальноС врСмя Ρ€Π°Π²Π½ΠΎ 0,0662 сСк, максимальноС составляСт 0,3213 сСк, срСднСС — 0,0996 сСк.

Π Π°Π½Π΅Π΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Ρ‰Π΅Π΅ число ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ для тСстирования составляСт 19 863. ΠŸΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ тСстированиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΡΡ‚Π°ΠΏΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² для дальнСйшСго обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. ΠžΠ±Ρ€Π°Π·Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹ΠΌ сСтям. МаксимальноС врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ — 0,3 217 сСк, минимальноС — 0,1 103 сСк, срСднСС — 0,2 054. Π“Ρ€Π°Ρ„ΠΈΠΊ, наглядно ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ врСмя, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, прСдставлСн Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 20.

Рис. 20. ВрСмя ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

Рис. 21. ВрСмя обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 21 прСдставлСн Π³Ρ€Π°Ρ„ΠΈΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ врСмя обучСния Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. МаксимальноС врСмя составляСт 0,2057 сСк, минимальноС — 0,1054 сСк, срСднСС — 0,0932 сСк.

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ сСтСй Π½Π° Π΄ΠΈΡΠΊ. На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 22 прСдставлСно тСстированиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ сохранСнии Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° Π΄ΠΈΡΠΊ.

Рис. 22. ВрСмя сохранСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй Π½Π° Π΄ΠΈΡΠΊ

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ², прСдставлСнных Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 22, максимальноС врСмя сохранСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° сСти составляСт 5,68 сСк, минимальноС — 5,52 сСк, срСднСС — 5,60 сСк.

Для классификации ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹. Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ тСстирования ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΡΡ‚Π°ΠΏΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

Рис. 23. ВрСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй

Из Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ², прСдставлСнных Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 23, Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ максимальноС врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти Ρ€Π°Π²Π½ΠΎ 6,12 сСк, минимальноС — 5,95 сСк, срСднСС — 6,00 сСк.

ПослСдним ΠΈ ΡΠ°ΠΌΡ‹ΠΌ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹ΠΌ Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ этапом Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ являСтся нСпосрСдствСнно Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй.

Рис. 24. ВрСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй

Π˜Π·ΡƒΡ‡ΠΈΠ² Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ с Ρ€ΠΈΡΡƒΠ½ΠΊΠ° 24 ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ максимальноС врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΉ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΠΎΠΉ сСти составляСт 0,1 046 сСк, минимальноС — 0,860 сСк, срСднСС — 0,915 сСк.

Из ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π°ΠΏΡ€ΠΎΠ±Π°Ρ†ΠΈΠΈ Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π΅Π²Π΅Π»ΠΈΠΊΠΎ, Π° ΡΠ°ΠΌΡ‹ΠΌ Π³Π»Π°Π²Π½Ρ‹ΠΌ достоинством являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ довольно высокой точности классификации ΠΏΡ€ΠΈ ΠΎΡ‡Π΅Π½ΡŒ нСбольшом Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ обучСния ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Ρ… сСтСй. ВрСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ затрачиваСтся Π½Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ сильно ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° Ρ‚ΠΎΠ²Π°Ρ€Π½Ρ‹Ρ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ, прСдставлСнных Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Π½ΠΎ Π² ΡΡ€Π΅Π΄Π½Π΅ΠΌ для ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, содСрТащих Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 2000 Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ составляСт 2 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ Π΄ΠΈΠΏΠ»ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΏΠΎ ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΠΌ.

Π’Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ Π°Π½Π°Π»ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° исслСдования ΠΈ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Π΅ΠΌΡ‹Ρ… для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ².

Алгоритм классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΏΠΎ ΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΠΌ Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C#. Π Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ»Π°ΡΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°.

Апробация ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π½Π° Ρ„актичСских Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… случайных ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ Π²Π΅Π±-рСсурса molotok.ru.

Разработанная систСма классификации Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² Π±Ρ‹Π»Π° Π²Π½Π΅Π΄Ρ€Π΅Π½Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся для осущСствлСния коммСрчСской Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠΈ ООО «ΠΠ»ΡΠ΅Π½ΠΈ».

1. Абрамян М. VisualC# Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ…. — Π‘Π°Π½ΠΊΡ‚ ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³: BHV-Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2008 — 496с.

2. ЕвсССва О. Н., ШамшСв А. Π‘. Π Π°Π±ΠΎΡ‚Π° с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C#. ВСхнология ADO.NET. — Π£Π»ΡŒΡΠ½ΠΎΠ²ΡΠΊ: Π£Π»Π“Π’Π£, 2009 — 176с.

3. ΠšΠΎΠΌΠ°Ρ€Ρ†ΠΎΠ²Π° Π›. Π“., Максимов А. Π’. ΠΠ΅ΠΉΡ€ΠΎΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹. — Πœ.: ΠœΠ“Π’Π£ ΠΈΠΌ. Π. Π­. Π‘Π°ΡƒΠΌΠ°Π½Π°, 2004. — 400с.

4. ΠšΡ€ΡƒΠ³Π»ΠΎΠ² Π’. Π’., Борисов Π’. Π’. Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти. ВСория ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°. — Πœ.: Горячая линия — Π’Π΅Π»Π΅ΠΊΠΎΠΌ, 2001. — 382с.

5. Π₯Π°Π±Ρ€Π°Ρ…Π°Π±Ρ€ [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]: РаспараллСливаниС Π·Π°Π΄Π°Ρ‡. Π‘Π»ΡƒΡ‡Π°ΠΉ «ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ». Π§Π°ΡΡ‚ΡŒ 1. Π Π΅ΠΆΠΈΠΌ доступа: http://habrahabr.ru/post/104 078/ - Π—Π°Π³Π». с ΡΠΊΡ€Π°Π½Π°.

6. Π₯Π°Π±Ρ€Π°Ρ…Π°Π±Ρ€ [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]: РаспараллСливаниС Π·Π°Π΄Π°Ρ‡. Π‘Π»ΡƒΡ‡Π°ΠΉ «ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ». Π§Π°ΡΡ‚ΡŒ 2. Π Π΅ΠΆΠΈΠΌ доступа: http://habrahabr.ru/post/104 103/ - Π—Π°Π³Π». с ΡΠΊΡ€Π°Π½Π°.

7. Π­Π½Π΄Ρ€ΡŽ ВроСлсСн. Π―Π·Ρ‹ΠΊ программирования C# 2010 ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°.NET 4. — Πœ.: Π’ΠΈΠ»ΡŒΡΠΌΡ, 2010. — 1392с.

8. MSGeeks [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]: РСгулярныС выраТСния Π² C#. Π Π΅ΠΆΠΈΠΌ доступа: http://www.msgeeks.ru/?artid=47 — Π—Π°Π³Π». с ΡΠΊΡ€Π°Π½Π°.

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

Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Threading

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

namespace grabberMolotok. Threading

{

public class ThreadHelper

{

public static List[] SplitList (List list, int splits)

{

int count = list. Count;

if (count < splits)

{

List[] resultList = new List[count];

for (int i = 0; i < count; i++)

{

resultList[i] = new List ();

resultList[i]. Add (list[i]);

}

return resultList;

}

List[] splittedList = new List[splits];

int splitSize = count / splits;

int lastSplit = count% splits;

for (int i = 0; i < splits — 1; i++)

{

splittedList[i] = new List ();

for (int j = 0; j < splitSize; j++)

{

splittedList[i]. Add (list[i * splitSize + j]);

}

}

splittedList[splits — 1] = new List ();

for (int j = 0; j < splitSize + lastSplit; j++)

{

splittedList[splits — 1]. Add (list[splits — 1 * splitSize + j]);

}

return splittedList;

}

public static int CountWorkAmount (List[] list)

{

int counter = 0;

foreach (var l in list)

foreach (var el in l)

counter++;

return counter;

}

}

}

ΠœΠΎΠ΄ΡƒΠ»ΡŒDBWorker

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System. Data;

using System.Data.SqlClient;

namespace grabberMolotok. DBEngine

{

public class DBEngine

{

string connectionString; //строка ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

public CategoryTable categoryTable; //Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ

public ImageTable imageTable; //Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

public SettingsTable settingsTable; //Ρ‚Π°Π±Π»ΠΈΡ†Π° настроСк

public DBEngine ()

{

SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder ();

builder.DataSource = «.\SQLExpress» ;

builder.InitialCatalog = «molotokdb» ;

builder.IntegratedSecurity = true;

connectionString = builder. ToString ();

InitTables ();

}

void InitTables ()

{

categoryTable = new CategoryTable (connectionString);

imageTable = new ImageTable (connectionString);

settingsTable = new SettingsTable (connectionString);

}

public void ClearTables ()

{

categoryTable.Clear ();

imageTable.Clear ();

}

}

}

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System. Data;

using System.Data.SqlClient;

namespace grabberMolotok. DBEngine

{

public class CategoryTable: EngineTable

{

public CategoryTable (string connectionString)

{

this.tableName = «Categories» ;

this.connectionString = connectionString;

}

public void Insert (List categories)

{

lock (this)

{

SqlConnection connection = new SqlConnection (connectionString);

SqlCommand insertCategoryCommand = new SqlCommand («sp_InsertCategory», connection);

insertCategoryCommand.CommandType = CommandType. StoredProcedure;

insertCategoryCommand.UpdatedRowSource = UpdateRowSource. OutputParameters;

GetCommandParameters (insertCategoryCommand.Parameters);

connection.Open ();

foreach (var category in categories)

{

FillCommandParameters (insertCategoryCommand.Parameters, category);

insertCategoryCommand.ExecuteNonQuery ();

}

connection.Close ();

}

}

public void Insert (Category c)

{

lock (this)

{

SqlConnection connection = new SqlConnection (connectionString);

SqlCommand insertCategoryCommand = new SqlCommand («sp_InsertCategory», connection);

insertCategoryCommand.CommandType = CommandType. StoredProcedure;

insertCategoryCommand.UpdatedRowSource = UpdateRowSource. OutputParameters;

GetCommandParameters (insertCategoryCommand.Parameters);

connection.Open ();

FillCommandParameters (insertCategoryCommand.Parameters, c);

insertCategoryCommand.ExecuteNonQuery ();

connection.Close ();

}

}

public List GetAll ()

{

lock (this)

{

SqlConnection connection = new SqlConnection (connectionString);

List categoryList = new List ();

SqlCommand getCommand = new SqlCommand («SELECT * FROM «+ tableName, connection);

connection.Open ();

SqlDataReader reader = getCommand. ExecuteReader ();

while (reader.Read ())

{

categoryList.Add (GetFromReader (reader));

}

connection.Close ();

return categoryList;

}

}

public Category GetById (int id)

{

lock (this)

{

Category c = null;

SqlConnection connection = new SqlConnection (connectionString);

List categoryList = new List ();

SqlCommand getCommand = new SqlCommand («SELECT * FROM «+ tableName + «WHERE id=@id», connection);

getCommand.Parameters.Add (new SqlParameter («@id», id));

connection.Open ();

SqlDataReader reader = getCommand. ExecuteReader ();

if (reader.Read ())

c = GetFromReader (reader);

connection.Close ();

return c;

}

}

#region МСлкиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

protected Category GetFromReader (SqlDataReader reader)

{

Category c = new Category ();

c.id = (int)reader[" id" ];

c.level = (int)reader[" level" ];

c.name = (string)reader[" name" ];

c.url = (string)reader[" url" ];

c.parentURL = (string)reader[" parentUrl" ];

return c;

}

protected void GetCommandParameters (SqlParameterCollection parameters)

{

parameters.Clear ();

parameters.Add («@id», SqlDbType.Int);

parameters.Add («@level», SqlDbType.Int);

parameters.Add («@name», SqlDbType. VarChar);

parameters.Add («@url», SqlDbType. VarChar);

parameters.Add («@parentUrl», SqlDbType. VarChar);

}

protected void FillCommandParameters (SqlParameterCollection parameters, Category c)

{

parameters[" @id" ]. Value = c. id;

parameters[" @level" ]. Value = c. level;

parameters[" @name" ]. Value = c.name;

parameters[" @url" ]. Value = c. url;

parameters[" @parentUrl" ]. Value = c. parentURL;

}

#endregion

}

}

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Grabber

using System;

using System.Collections.Generic;

using System. Linq;

using System. Text;

using System.Net;

using System. IO;

using System.Windows.Forms;

using System.Text.RegularExpressions;

using System. Threading;

using System. Diagnostics;

using grabberMolotok. Threading;

namespace grabberMolotok

{

class Grabber

{

DBEngine.DBEngine dbEngine; //Π΄Π²ΠΈΠΆΠΎΠΊ Π‘Π”

List categories; //ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ

int getItemCounter; //счСтчик получСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

int getItemWorkAmount; //ΠΎΠ±ΡŠΡ‘ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ получСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

int getItemThreadCount; //количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² получСния Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ²

public int GetItemThreadCount

{

get { return getItemThreadCount; }

set { getItemThreadCount = value; }

}

int saveImageCounter; //счСтчик сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

int saveItemWorkAmount; //ΠΎΠ±ΡŠΡ‘ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

int saveItemThreadCount; //количСство ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² сохранСния ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

public int SaveItemThreadCount

{

get { return saveItemThreadCount; }

set { saveItemThreadCount = value; }

}

#region Бобытия

public delegate void AllCategoriesParseCompletedEventHandler ();

public static event AllCategoriesParseCompletedEventHandler AllCategoriesParseCompletedEvent;

public delegate void AllCategoriesImageSaveCompletedEventHandler ();

public static event AllCategoriesImageSaveCompletedEventHandler AllCategoriesImageSaveCompletedEvent;

public delegate void CategoriesGotEventHandler ();

public static event CategoriesGotEventHandler CategoriesGotEvent;

void OnCategoryParseComplete ()

{

getItemCounter++;

if (getItemCounter == getItemWorkAmount)

{

AllCategoriesParseCompletedEvent ();

}

}

void OnCategoryImageSaveComplete ()

{

saveImageCounter++;

if (saveImageCounter == saveItemWorkAmount)

{

if (AllCategoriesImageSaveCompletedEvent ≠ null)

AllCategoriesImageSaveCompletedEvent ();

}

}

#endregion Бобытия

public Grabber ()

{

Category.CategoryParseCompletedEvent += new Category. CategoryParseCompletedEventHandler (this.OnCategoryParseComplete);

Category.CategoryImageSaveCompletedEvent += new Category. CategoryImageSaveCompletedEventHandler (this.OnCategoryImageSaveComplete);

dbEngine = new DBEngine. DBEngine ();

categories = new List ();

getItemCounter = 0;

getItemWorkAmount = -1;

getItemThreadCount = 8;

saveImageCounter = 0;

saveItemWorkAmount = -1;

saveItemThreadCount = 8;

}

/// ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ список ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ с ΠΌΠΎΠ»ΠΎΡ‚ΠΊΠ°

public void GetCategories ()

{

Debug.WriteLine («ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ с ΡΠ°ΠΉΡ‚Π°»);

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