Алгоритм үргэлж хүргэдэг гэсэн утгатай шинж чанар.Алгоритмын үндсэн шинж чанарууд. Тодорхойлолт нь алгоритмын ямар шинж чанарт хамаарах вэ?

    Тээврийн сүлжээн дэх хамгийн их урсгалыг олох асуудлыг шийддэг. Алгоритм нь Форд Фулкерсоны алгоритмын онцгой тохиолдол биш юм. Тусгай сайжруулалтгүйгээр хэрэгжүүлсэн алгоритм нь цагтаа ажилладаг. Өөр хэдэн сайжруулалт... Википедиа

    Орон нутгийн хайлтын алгоритмууд нь хайлтыг зөвхөн одоогийн төлөвийн үндсэн дээр хийдэг алгоритмуудын бүлэг бөгөөд өмнө нь дамжуулагдсан төлөвүүдийг тооцдоггүй, санахгүй байдаг. Хайлтын гол зорилго нь... ... Википедиа руу явах оновчтой замыг олох явдал биш юм

    Энэ нэр томъёо нь өөр утгатай, Ангараг (утга) -ыг үзнэ үү. MARS Үүсгэсэн: 1998 Нийтлэгдсэн: 1998 Түлхүүр хэмжээ ... Википедиа

    Энэ нэр томъёо нь өөр утгатай, Ангараг (утга) -ыг үзнэ үү. MARS Үүсгэсэн: 1998 ... Википедиа

    Энэ нэр томъёо нь өөр утгатай, Алгоритм (утга) харна уу. Энэ нийтлэлийг сайжруулахын тулд энэ нь зүйтэй болов уу?: Дүрэм журмын дагуу дизайныг дахин боловсруулах ... Википедиа

    Энэ нийтлэлд англи Википедиагийн холбогдох өгүүллийн энэ хувилбарын материалыг багтаасан болно. Үйлдлийн өөрчлөлт (OT) нь дэвшилтэт системүүдийн хамтын ажиллагааны хүрээг дэмжих технологи юм... ... Википедиа

    График хайлтын алгоритмууд A* B* Беллман Фордын алгоритм Хоёр чиглэлтэй хайлт Дийкстрагийн алгоритм Жонсоны алгоритм Өргөн-эхний хайлт Гүн-эхний хайлт Гүн-хязгаарлагдмал хайлт Эхний хамгийн сайн тохирох хайлт Флойд Варшаллын алгоритм Хайлт... ... Wikipedia

    Энэ нь жагсаалт дахь элементүүдийг эрэмблэх алгоритм юм. Жагсаалтын зүйл олон талбартай бол эрэмбийн шалгуур болох талбарыг эрэмбэлэх түлхүүр гэж нэрлэдэг. Практикт тоог ихэвчлэн түлхүүр болгон ашигладаг бөгөөд бусад салбарт ... ... Википедиа

    BMW (eng. BMW Blue Midnight Wish) нь n битийн гаралттай криптограф хэш функц (hf) бөгөөд энд n=224,256, 384 эсвэл 512 байна. Хэш функц нь дурын мессежийн “хурууны хээ” эсвэл “зацлан боловсруулах” зориулалттай. бит урт.... ... Википедиа

    Энэ нийтлэлийг Wikified байх ёстой. Нийтлэлийг форматлах дүрмийн дагуу форматлана уу. Энэ нэр томъёо нь өөр утгатай, TEA (утга) ... Википедиа-г үзнэ үү

Номууд

  • Лукасевичийн логик ба анхны тоо, А.С.Карпенко, Дэлхийн уран зохиолд анх удаа монографийн судалгаагаар логик ба анхны тоонуудын хооронд шууд холбоо тогтоожээ. Хэдийгээр Лукасевичийн олон үнэ цэнэтэй логик нь няцаалтын үр дүн байсан ч... Ангилал: Логик Нийтлэгч: Librocom,
  • Асуулт, хариулт дахь логик. Сурах бичиг, Кобзар Владимир Иванович, Сурах бичиг нь уламжлалт (ерөнхий, гүн ухааны) албан ёсны логикийн сургалтын хөтөлбөрийн дагуу бичигдсэн болно. Сэтгэцийн үйл ажиллагааны үндсэн хэлбэр, аргуудыг судалж, тэдгээрийн... Ангилал:

Манай дэлхий дээрх бараг бүх зүйл ямар нэгэн хууль, дүрэмд захирагддаг. Орчин үеийн шинжлэх ухаан зогсохгүй байгаа бөгөөд үүний ачаар хүн төрөлхтөн маш олон томьёо, алгоритмыг мэддэг бөгөөд үүний дагуу байгалиас бий болгосон олон үйлдэл, бүтцийг тооцоолж, дахин бүтээх, хүний ​​зохион бүтээсэн санааг амьдралд хэрэгжүүлэх боломжтой болсон.

Энэ нийтлэлд бид алгоритмын үндсэн ойлголтуудыг авч үзэх болно.

Алгоритмуудын үүссэн түүх

Алгоритм бол 12-р зуунд үүссэн ойлголт юм. "Алгоритм" гэдэг үг нь өөрөө "Энэтхэгийн тооцооллын тухай" номыг бичсэн Ойрхи Дорнодын алдарт математикч Мухаммед аль-Хорезмигийн нэрийг латинаар орчуулснаас гаралтай. Энэхүү номонд араб тоогоор натурал тоог хэрхэн зөв бичих талаар тайлбарласан бөгөөд ийм тоон дээрх баганатай ажиллах алгоритмын тайлбарыг өгсөн болно.

12-р зуунд "Энэтхэгийн нягтлан бодох бүртгэлийн тухай" номыг латин хэл рүү орчуулсан бөгөөд тэр үед энэ тодорхойлолт гарч ирэв.

Хүн ба машинтай алгоритмын харилцан үйлчлэл

Алгоритм бүтээхэд бүтээлч байх шаардлагатай тул зөвхөн амьд амьтан л дараалсан үйлдлийн шинэ жагсаалтыг үүсгэж чадна. Гэхдээ одоо байгаа зааврыг хэрэгжүүлэхийн тулд төсөөлөлтэй байх шаардлагагүй, тэр ч байтугай сүнсгүй технологи ч үүнийг даван туулж чадна.

Зааврыг яг дагаж мөрдөж байгаагийн гайхалтай жишээ бол дотор нь хоол байхгүй байсан ч ажиллаж байгаа хоосон богино долгионы зуух юм.

Алгоритмын мөн чанарыг ойлгох шаардлагагүй субьект эсвэл объектыг албан ёсны гүйцэтгэгч гэж нэрлэдэг. Хүн мөн албан ёсоор гүйцэтгэгч болж болох ч тодорхой үйлдэл нь ашиггүй байвал сэтгэдэг гүйцэтгэгч бүхнийг өөрийнхөөрөө хийж чадна. Тиймээс гол гүйцэтгэгчид нь компьютер, богино долгионы зуух, утас болон бусад тоног төхөөрөмж юм. Компьютерийн шинжлэх ухаанд алгоритмын тухай ойлголт хамгийн чухал юм. Алгоритм бүрийг хүлээн зөвшөөрөгдсөн үйлдлүүдийг харгалзан тодорхой сэдвийг харгалзан эмхэтгэсэн. Субьект зааварчилгааг хэрэглэж болох объектууд нь гүйцэтгэгчийн орчинг бүрдүүлдэг.

Манай дэлхий дээрх бараг бүх зүйл ямар нэгэн хууль, дүрэмд захирагддаг. Орчин үеийн шинжлэх ухаан зогсохгүй байгаа бөгөөд үүний ачаар хүн төрөлхтөн маш олон томьёо, алгоритмыг мэддэг бөгөөд үүний дагуу байгалийн олон үйлдэл, бүтээлийг тооцоолж, дахин бүтээх, хүний ​​зохион бүтээсэн санааг амьдралд хэрэгжүүлэх боломжтой болсон. Энэ нийтлэлд бид алгоритмын үндсэн ойлголтуудыг авч үзэх болно.

Алгоритм гэж юу вэ?

Бидний амьдралын туршид хийдэг ихэнх үйлдлүүд нь хэд хэдэн дүрмийг дагаж мөрдөхийг шаарддаг. Түүнд өгсөн даалгаврыг биелүүлэх чанар, үр дүн нь тухайн хүн юу, хэрхэн, ямар дарааллаар хийх ёстой талаар хэр зөв ойлголттой байгаагаас хамаарна. Бага наснаасаа эхлэн эцэг эхчүүд хүүхдийнхээ үндсэн үйлдлүүдийн алгоритмыг боловсруулахыг хичээдэг, жишээлбэл: сэрэх, ороо засах, шүдээ угаах, угаах, дасгал хийх, өглөөний цай уух гэх мэт. Өглөөний амьдралыг бас нэг төрлийн алгоритм гэж үзэж болно.

Аль аргыг ашиглах нь хэд хэдэн хүчин зүйлээс хамаарна: асуудлын нарийн төвөгтэй байдал, асуудлыг шийдвэрлэх үйл явц хэр нарийн байх ёстой гэх мэт.

Алгоритмын график хувилбар

График алгоритм гэдэг нь тодорхой асуудлыг шийдвэрлэхийн тулд гүйцэтгэх шаардлагатай үйлдлүүдийг тодорхой геометрийн хэлбэрт задлах гэсэн ойлголт юм.

Тэднийг санамсаргүй байдлаар дүрсэлсэнгүй. Тэдгээрийг хэн ч ойлгохын тулд блок диаграмм болон Нусси-Шнайдерманы бүтцийн диаграммыг ихэвчлэн ашигладаг.

Мөн блок диаграммыг ГОСТ-19701-90 ба ГОСТ-19.003-80 стандартын дагуу дүрсэлсэн болно.
Алгоритмд ашигласан график дүрсийг дараахь байдлаар хуваана.

    Үндсэн.Асуудлыг шийдвэрлэх үед өгөгдлийг боловсруулахад шаардлагатай үйлдлүүдийг харуулахын тулд үндсэн зургуудыг ашигладаг.

    Туслах.Туслах зургууд нь асуудлыг шийдвэрлэхэд хамгийн чухал биш харин хувь хүнийг харуулах шаардлагатай.

График алгоритмд өгөгдлийг илэрхийлэхэд ашигладаг блокуудыг блок гэж нэрлэдэг.

Бүх блокууд "дээрээс доош", "зүүнээс баруун тийш" гэсэн дарааллаар явдаг - энэ бол урсгалын зөв чиглэл юм. Зөв дарааллаар блокуудыг холбосон шугамууд чиглэлийг харуулахгүй. Бусад тохиолдолд шугамын чиглэлийг сум ашиглан зааж өгнө.

Зөв алгоритмын схем нь боловсруулалтын блокуудын нэгээс илүү гаралт, нөхцлийн биелэлтийг шалгах үүрэгтэй блокуудын хоёроос бага гаралттай байх ёсгүй.

Алгоритмыг хэрхэн зөв бүтээх вэ?

Дээр дурдсанчлан алгоритмын бүтэц нь ГОСТ-ийн дагуу баригдсан байх ёстой, эс тэгвээс бусдад ойлгомжтой, хүртээмжгүй байх болно.

Бичлэгийн ерөнхий аргачлалд дараахь зүйлс орно.

Энэ схемийг ашиглан ямар асуудлыг шийдэж болохыг тодорхой болгох нэр.

Алгоритм бүр тодорхой тодорхойлогдсон эхлэл, төгсгөлтэй байх ёстой.

Алгоритмууд нь оролт, гаралтын аль алинд нь бүх өгөгдлийг тодорхой бөгөөд тодорхой дүрсэлсэн байх ёстой.

Алгоритмыг эмхэтгэхдээ сонгосон өгөгдөл дээр асуудлыг шийдвэрлэхэд шаардлагатай үйлдлүүдийг хийх боломжийг танд олгоно. Алгоритмын жишээ:

  • Схемийн нэр.
  • Өгөгдөл.
  • Эхлэх.
  • Багууд.
  • Төгсгөл.

Хэлхээг зөв барих нь алгоритмын тооцоог ихээхэн хөнгөвчлөх болно.

Алгоритм дахь янз бүрийн үйлдлийг хариуцдаг геометрийн дүрсүүд

Хэвтээ зууван нь эхлэл ба төгсгөл юм (дууссан шинж тэмдэг).

Хэвтээ тэгш өнцөгт нь тооцоолол эсвэл бусад үйлдэл (үйл явцын тэмдэг) юм.

Хэвтээ параллелограмм - оролт эсвэл гаралт (өгөгдлийн тэмдэг).

Хэвтээ байрлалтай алмаз нь нөхцөл байдлыг шалгах (шийдлийн тэмдэг) юм.

Урт сунасан, хэвтээ байрлалтай зургаан өнцөгт нь өөрчлөлт (бэлтгэлийн шинж тэмдэг) юм.

Алгоритм загваруудыг доорх зурагт үзүүлэв.

Алгоритм бүтээх томъёо-амаар хувилбар.

Томьёо-аман алгоритмыг чөлөөт хэлбэрээр, тухайн асуудал хамаарах салбарын мэргэжлийн хэлээр бичдэг. Ийм байдлаар үйлдлүүдийн тайлбарыг үг, томъёо ашиглан гүйцэтгэдэг.

Компьютерийн шинжлэх ухаан дахь алгоритмын тухай ойлголт

Компьютерийн салбарт бүх зүйл алгоритм дээр суурилдаг. Тусгай код хэлбэрээр оруулсан тодорхой зааваргүй бол нэг ч техник, програм ажиллахгүй. Компьютерийн шинжлэх ухааны хичээлээр оюутнуудад алгоритмын үндсэн ойлголтуудыг зааж, тэдгээрийг хэрхэн ашиглах, өөрсдөө хэрхэн бүтээхийг заадаг.

Компьютерийн шинжлэх ухаанд алгоритм үүсгэх, ашиглах нь жишээлбэл, математикийн асуудлыг шийдвэрлэх зааврыг дагаж мөрдөхөөс илүү бүтээлч үйл явц юм.

Мөн “Алгоритм” хэмээх тусгай программ байдаг бөгөөд энэ нь програмчлалын талаар мэдлэггүй хүмүүст өөрийн програмаа бүтээхэд тусалдаг. Ийм нөөц нь компьютерийн шинжлэх ухаанд анхны алхмуудыг хийж байгаа, өөрийн тоглоом эсвэл бусад програмыг бүтээхийг хүсч буй хүмүүст зайлшгүй туслах туслах болно.

Нөгөө талаас аливаа программ бол алгоритм юм. Гэхдээ алгоритм нь зөвхөн таны өгөгдлийг оруулах замаар хийх шаардлагатай үйлдлүүдийг агуулж байгаа бол програм нь аль хэдийн бэлэн өгөгдлийг агуулдаг. Өөр нэг ялгаа нь програмыг патентжуулж, өмчлөх боломжтой боловч алгоритм нь боломжгүй юм. Алгоритм гэдэг нь программаас илүү өргөн ойлголт юм.

Дүгнэлт

Энэ нийтлэлд бид алгоритмын тухай ойлголт, түүний төрлүүдийг судалж, график диаграммыг хэрхэн зөв бичих талаар сурсан.

АЛГОРИТМЫН ОЙЛГОЛТ. АЛГОРИТМЫН ХИЧЭЭЛ. АЛГОРИТМЫН ТӨРЛҮҮД. АЛГОРИТМЫГ ТОДОРХОЙЛОХ АРГА

Алгоритм гэдэг нь тухайн асуудлыг шийдвэрлэхэд чиглэсэн үйлдлүүдийн дарааллыг гүйцэтгэх тодорхой бөгөөд ойлгомжтой заавар юм. "Алгоритм" гэдэг үг нь арифметик үйлдлийг гүйцэтгэх дүрмийг боловсруулсан математикч Аль Хорезмигийн нэрнээс гаралтай. Анхандаа алгоритм гэдэг нь зөвхөн тоон дээр дөрвөн арифметик үйлдэл хийх дүрмийг л хэлдэг байсан. Хожим нь энэ ойлголтыг ерөнхийд нь аливаа өгөгдсөн даалгаврыг шийдвэрлэхэд чиглэсэн үйлдлүүдийн дарааллыг илэрхийлэхэд ашиглаж эхэлсэн. Тооцооллын процессын алгоритмын тухай ярихдаа алгоритмыг ашигласан объектууд нь өгөгдөл гэдгийг ойлгох хэрэгтэй. Тооцооллын асуудлыг шийдвэрлэх алгоритм нь эх өгөгдлийг үр дүн болгон хувиргах дүрмийн багц юм.

Үндсэн шинж чанарууд алгоритмууд нь:

  1. детерминизм (тодорхой байдал). Энэ нь өгөгдсөн анхны өгөгдөл бүхий тооцооллын процессын хоёрдмол утгагүй үр дүнг олж авна гэж үздэг. Энэ өмчийн улмаас алгоритмыг гүйцэтгэх үйл явц нь механик шинж чанартай байдаг;
  2. үр ашиг. Өгөгдсөн алгоритмын дагуу гүйцэтгэсэн тооцоолох үйл явц нь хязгаарлагдмал тооны алхмуудын дараа зогсч, хүссэн үр дүнг гаргах ёстой анхны өгөгдөл байгаа эсэхийг заана;
  3. массын дүр. Энэ шинж чанар нь алгоритм нь тухайн төрлийн бүх асуудлыг шийдвэрлэхэд тохиромжтой байх ёстой гэсэн үг юм;
  4. салангид байдал. Энэ нь алгоритмаар тодорхойлсон тооцооллын процессыг бие даасан үе шатуудад хуваахыг хэлдэг бөгөөд үүнийг гүйцэтгэгч (компьютер) гүйцэтгэх чадвар нь эргэлзээгүй юм.

Алгоритмыг тодорхой дүрмийн дагуу тодорхой харааны хэрэгслийг ашиглан албан ёсны болгох ёстой. Эдгээрт алгоритм бичих дараах аргууд орно: аман, томъёо-амаар, график, оператор схемийн хэл, алгоритмын хэл.

Тодорхой байдлаас шалтгаалан хамгийн өргөн тархсан нь алгоритмыг бүртгэх график (блок диаграм) арга юм.

Блок диаграм Мэдээлэл боловсруулах үйл явцын үе шат бүрийг гүйцэтгэсэн үйлдлүүдийн шинж чанараас хамааран тодорхой тохиргоотой геометрийн тэмдэг (блок) хэлбэрээр дүрсэлсэн алгоритмын логик бүтцийн график дүрслэл юм. Тэмдгүүдийн жагсаалт, тэдгээрийн нэр, харуулах функц, хэлбэр, хэмжээсийг ГОСТ-оор тодорхойлно.

Асуудлыг шийдвэрлэх олон янзын алгоритмуудын тусламжтайгаар тооцоолох процессын гурван үндсэн төрлийг ялгаж болно.

  • шугаман;
  • салбарлах;
  • мөчлөгийн.

Шугаман нь асуудлыг шийдвэрлэх бүх үе шатыг эдгээр үе шатуудыг бүртгэх байгалийн дарааллаар гүйцэтгэдэг тооцоолох үйл явц юм.

Салбарлах Мэдээллийг боловсруулах чиглэлийг сонгохдоо анхдагч эсвэл завсрын өгөгдлөөс (ямар нэгэн логик нөхцөлийн биелэлтийг шалгасны үр дүнд) хамаардаг тооцооллын процесс юм.

Цикл нь олон удаа давтагддаг тооцооллын хэсэг юм. Нэг буюу хэд хэдэн мөчлөг агуулсан тооцооллын процессыг нэрлэдэг мөчлөгийн . Гүйцэтгэлийн тооноос хамааран мөчлөгийг тодорхой (урьдчилан тодорхойлсон) давталттай, тодорхойгүй тооны давталттай мөчлөгт хуваана. Сүүлчийн давталтын тоо нь мөчлөгийг гүйцэтгэх хэрэгцээг тодорхойлсон зарим нөхцлийн ханалтаас хамаарна. Энэ тохиолдолд мөчлөгийн эхэнд нөхцөлийг шалгаж болно - дараа нь бид урьдчилсан нөхцөл бүхий мөчлөгийн тухай ярьж байна, эсвэл төгсгөлд - дараа нь энэ нь дараах нөхцөлтэй мөчлөг юм.

Алгоритмуудын шинж чанарууд

Дээр өгөгдсөн алгоритмын тодорхойлолтыг хатуу гэж үзэх боломжгүй - "яг жор" эсвэл "шаардлагатай үр дүнг хангах үйл ажиллагааны дараалал" гэж юу болох нь тодорхойгүй байна. Тиймээс алгоритмыг бусад заавраас ялгахын тулд алгоритмын хэд хэдэн ерөнхий шинж чанарыг ихэвчлэн томъёолдог.

Эдгээр шинж чанарууд нь:

Салангид байдал (тасралт, салангид байдал) - алгоритм нь асуудлыг шийдвэрлэх үйл явцыг энгийн (эсвэл өмнө нь тодорхойлсон) алхамуудын дараалсан гүйцэтгэл хэлбэрээр илэрхийлэх ёстой. Алгоритмоор өгөгдсөн үйлдэл бүрийг өмнөхийг нь гүйцэтгэсний дараа л гүйцэтгэнэ.

Тодорхой байдал - алгоритмын дүрэм бүр тодорхой, хоёрдмол утгагүй байх ёстой бөгөөд дур зоргоороо байх зай үлдээхгүй. Энэ шинж чанараас шалтгаалан алгоритмын гүйцэтгэл нь механик шинж чанартай бөгөөд шийдэгдэж буй асуудлын талаар нэмэлт заавар, мэдээлэл шаарддаггүй.

Үр ашиг (хязгаарлагдмал байдал) - алгоритм нь асуудлыг хязгаарлагдмал тооны алхмаар шийдвэрлэхэд хүргэх ёстой.

Масс масштаб - асуудлыг шийдэх алгоритмыг ерөнхий хэлбэрээр боловсруулсан, өөрөөр хэлбэл зөвхөн анхны өгөгдлөөр ялгаатай тодорхой ангиллын асуудалд хамаарах ёстой. Энэ тохиолдолд эхний өгөгдлийг алгоритмын хэрэглээний талбар гэж нэрлэдэг тодорхой хэсгээс сонгож болно.

Арифметик үйлдэл эсвэл геометрийн байгууламжийг гүйцэтгэх дүрэм нь алгоритм юм. Үүний зэрэгцээ алгоритмын тухай ойлголт нь "арга", "арга", "дүрэм" гэх мэт ойлголтуудаас юугаараа ялгаатай вэ гэсэн асуулт хариултгүй хэвээр байна. Та "алгоритм", "арга", "дүрэм" гэсэн үгс нь ижил утгатай (жишээ нь ижил утгатай) гэсэн үгтэй таарч болно, гэхдээ ийм мэдэгдэл нь "алгоритмын шинж чанарууд" -тай зөрчилддөг.

"Алгоритмын шинж чанарууд" гэсэн илэрхийлэл нь бүрэн зөв биш юм. Объектив бодит байдал нь шинж чанартай байдаг. Жишээлбэл, бид бодисын шинж чанарын талаар ярьж болно. Алгоритм бол зорилгодоо хүрэхийн тулд бидний бүтээсэн хиймэл бүтэц юм. Алгоритм нь зорилгоо биелүүлэхийн тулд тодорхой дүрмийн дагуу баригдсан байх ёстой. Тиймээс бид алгоритмын шинж чанарын тухай биш, харин алгоритмыг бий болгох дүрэм, эсвэл алгоритмд тавигдах шаардлагын талаар ярих хэрэгтэй.

Алгоритм бүтээх дүрэм

Эхний дүрэм бол алгоритмыг бүтээхдээ юуны өмнө алгоритм ажиллах объектын багцыг зааж өгөх шаардлагатай. Эдгээр объектуудын албан ёсны (кодлогдсон) дүрслэлийг өгөгдөл гэж нэрлэдэг. Алгоритм нь оролт гэж нэрлэгддэг тодорхой багц өгөгдөлтэй ажиллаж эхэлдэг бөгөөд түүний ажлын үр дүнд гаралт гэж нэрлэгддэг өгөгдлийг үүсгэдэг. Тиймээс алгоритм нь оролтын өгөгдлийг гаралтын өгөгдөл болгон хувиргадаг.

Энэ дүрэм нь алгоритмыг "арга" ба "арга" -аас нэн даруй салгах боломжийг олгодог. Оролтын өгөгдлийг албан ёсны болгох хүртэл бид алгоритм үүсгэж чадахгүй.

Хоёрдахь дүрэм бол алгоритм ажиллахын тулд санах ой шаарддаг. Санах ойд алгоритм ажиллаж эхлэх оролтын өгөгдөл, алгоритмын үр дүн болох завсрын өгөгдөл, гаралтын өгөгдөл хадгалагдана. Санах ой нь салангид, өөрөөр хэлбэл. бие даасан эсүүдээс бүрддэг. Нэрлэсэн санах ойн байршлыг хувьсагч гэж нэрлэдэг. Алгоритмын онолын хувьд санах ойн хэмжээ хязгаарлагдахгүй, өөрөөр хэлбэл бид алгоритмыг ажиллахад шаардлагатай ямар ч хэмжээний санах ойгоор хангаж чадна гэж үздэг.

Сургуулийн "алгоритмын онол" -д эдгээр хоёр дүрмийг авч үздэггүй. Үүний зэрэгцээ алгоритм (програмчлал) бүхий практик ажил нь эдгээр дүрмийг хэрэгжүүлэхээс эхэлдэг. Програмчлалын хэлэнд санах ойн хуваарилалтыг зарлах операторууд (хувьсагчийн мэдэгдлийн операторууд) гүйцэтгэдэг.

Гурав дахь дүрэм бол салангид байдал юм. Алгоритм нь бие даасан алхмуудаас (үйлдэл, үйлдэл, тушаал) бүтээгдсэн. Мэдээжийн хэрэг алгоритмыг бүрдүүлдэг олон алхамууд байдаг.

Дөрөв дэх дүрэм бол детерминизм юм. Алхам бүрийн дараа та ямар алхам хийхээ зааж өгөх эсвэл зогсоох команд өгөх ёстой.

Тав дахь дүрэм бол нэгдэх (үр дүнтэй байдал) юм. Алгоритм нь хязгаарлагдмал тооны алхмуудын дараа дуусгавар болох ёстой. Энэ тохиолдолд алгоритмын үр дүн гэж юу болохыг зааж өгөх шаардлагатай.

Тэгэхээр алгоритм гэдэг нь алгоритмын онолд тодорхойлогдоогүй ойлголт юм. Алгоритм нь оролтын өгөгдлийн тодорхой багц бүрийг гаралтын тодорхой багц өгөгдөлтэй холбодог, өөрөөр хэлбэл функцийг тооцоолдог (хэрэгжүүлдэг). Алгоритмын онолын тодорхой асуудлуудыг авч үзэхдээ бид алгоритмын тодорхой загварыг үргэлж санаж байдаг.

Үгийн утга алгоритмүгийн утгатай тун төстэй жор,зааварчилгаа. Гэсэн хэдий ч аливаа алгоритм нь жор, аргаас ялгаатай нь дараахь шинж чанаруудтай байх ёстой.

1. Алгоритмын гүйцэтгэл нь дууссан үйлдэл-алхмуудын дараалалд хуваагдана. Зөвхөн нэг үйлдлийг (тушаал) гүйцэтгэсний дараа та дараагийн үйлдлийг гүйцэтгэж эхлэх боломжтой. Алгоритмын энэ шинж чанарыг гэж нэрлэдэг салангид байдал. Гүйцэтгэгч нь алгоритмын бичлэг (тушаал) дахь тусгай зааварчилгаагаар тус бүрийг бие даасан үйлдэл болгон гүйцэтгэхийг зааварчилдаг.

2. Ойлгомжтой байдал- алгоритм нь зааварчилгааг агуулаагүй байх ёстой, түүний утгыг гүйцэтгэгч хоёрдмол утгаар ойлгож болно, жишээлбэл. алгоритмын бичлэг нь маш тодорхой бөгөөд бүрэн гүйцэд байх ёстой бөгөөд гүйцэтгэгчид бие даасан шийдвэр гаргах шаардлагагүй болно. Алгоритм нь үргэлж "сэтгэлгээгүй" гүйцэтгэгчээр бүтээгдсэн байдаг. Алгоритм нь SKI-д багтсан командуудаас бүрдэнэ.

"Өдөр тутмын" алгоритмын алдартай жишээг авч үзье - гудамжны гарц алгоритм: "Зүүн тийш хар. Хэрэв машин байхгүй бол гудамжны голд алхаарай. Хэрэв байгаа бол тэднийг өнгөрөх хүртэл хүлээх хэрэгтэй гэх мэт." Нөхцөл байдлыг төсөөлөөд үз дээ: зүүн талд машин байгаа боловч хөдөлдөггүй - дугуйг нь сольж байна. Хэрэв та алгоритмыг гүйцэтгэгч хүлээх ёстой гэж бодож байгаа бол та энэ алгоритмыг ойлгож байна. Хэрэв та урьдчилан таамаглаагүй (таны бодлоор!) нөхцөл байдлын улмаас алгоритмыг зассан гэж үзвэл гудамжаар гарах боломжтой гэж шийдсэн бол та алгоритмын тухай ойлголтыг эзэмшээгүй гэсэн үг юм.

3. Детерминизм (баттай ба итгэлтэй байдал). Алгоритмын команд бүр нь гүйцэтгэгчийн тодорхой бус үйлдлийг тодорхойлдог бөгөөд дараа нь аль командыг гүйцэтгэхийг хоёрдмол утгагүй тодорхойлох ёстой. Өөрөөр хэлбэл, алгоритмыг нэг эх сурвалжийн багцад дахин дахин ашиглах юм бол түүний хүлээн авсан гаралт нь тухайн бүрт ижил үр дүн гарна.

4. Үр ашиг- алгоритмын гүйцэтгэлийг хязгаарлагдмал тооны үе шаттайгаар дуусгаж, асуудлыг шийдсэний үр дүнд хүрэх ёстой. Боломжит үр дүнгийн нэг нь асуудал ямар ч шийдэлгүй гэдгийг батлах явдал байж болох юм.

Үр дүнтэй байдлын өмч нь өмчийг агуулдаг мөчрүүд- алгоритмыг хязгаарлагдмал тооны алхамаар дуусгах.

5. Массын дүр- алгоритм нь тодорхой ангиллын асуудлаас аливаа асуудлыг шийдвэрлэхэд тохиромжтой, жишээлбэл. Алгоритм нь алгоритмын хэрэглээний домэйн гэж нэрлэгддэг анхны өгөгдлийн тодорхой багц дээр зөв ажилладаг.

Масс тэмдэгтийн шинж чанар нь заавал байх ёстой шинж чанаруудын нэг биш (тухайлбал, салангид байдал, ойлгомжтой байдал гэх мэт) алгоритмын чанарыг тодорхойлдог. Хэрэглэх цар хүрээ нь нэг багц өгөгдлөөр хязгаарлагддаг эсвэл бүр байхгүй алгоритмууд байдаг (жишээлбэл, p тооны зөв цифрүүдийн тогтмол тоог авах). Алгоритм нь түүний тодорхойлолтын домэйн болон үгийн бүх өгөгдөлд хамаарах ёстой гэж хэлэх нь илүү зөв юм. массын дүрийм өмчийг дүрслэхэд үргэлж тохиромжтой байдаггүй.

Алгоритм ойлголт

Дээр дурдсан зүйлсийг нэгтгэн дүгнэж үзвэл бид дараахь зүйлийг томъёоллоо үзэл баримтлалалгоритм.

Алгоритм - Анхны өгөгдлөөс хүссэн үр дүнд хүргэх эцсийн дарааллыг гүйцэтгэгчид гүйцэтгэх тодорхой бөгөөд нарийн заавар.

Дээрх тодорхойлолт нь тухайн үгийн математик утгаараа тодорхойлолт биш, i.e. Энэ бол албан ёсны тодорхойлолт биш (алгоритмын албан ёсны тодорхойлолтыг " нийтлэлээс үзнэ үү. Алгоритмын онол”).

Үүнийг тус бүрийн хувьд анхаарна уу жүжигчинЗөвшөөрөгдөх үйлдлүүдийн багц (SAC) үргэлж хязгаарлагдмал байдаг - ямар нэгэн үйлдэл хийхийг зөвшөөрдөг гүйцэтгэгч байж болохгүй. И.Кантийн тайлбарласан үндэслэл нь томъёолсон мэдэгдлийг дараах байдлаар нотолсон байна: "Хэрэв ийм жүжигчин байсан бол түүний зөвшөөрөгдөх үйлдлүүдийн дунд түүний өргөх боломжгүй чулууг бүтээх болно. Гэхдээ энэ нь "Ямар ч чулууг өргө" гэсэн үйлдэлтэй зөрчилдөж байна.

Ер нь хүн үүнийг шийдэх алгоритмыг мэдэхгүй байж шийдэж чадах асуудал байдаг нь сонирхолтой юм. Жишээлбэл, хүний ​​өмнө муур, нохойны гэрэл зураг байдаг. Даалгавар нь тухайн гэрэл зураг нь муур эсвэл нохой эсэхийг тодорхойлох явдал юм. Хүн энэ асуудлыг шийддэг боловч энэ асуудлыг шийдэх алгоритм бичих нь маш хэцүү хэвээр байна.

Нөгөөтэйгүүр, шийдвэрлэх арга замыг бий болгох нь ерөнхийдөө боломжгүй асуудлууд байдаг. Түүнээс гадна энэ баримтыг хатуу нотлох боломжтой. Та энэ тухай нийтлэлээс уншиж болно " Алгоритмын хувьд шийдэгдээгүй асуудлууд” 2.