ტურინგის მანქანა არის გამოთვლის თეორიული მოდელი, რომელიც შემოიღო ალან ტურინგმა 1936 წელს. იგი შედგება უჯრედებად დაყოფილი უსასრულოდ გრძელი ლენტისაგან, წაკითხვის/ჩაწერის თავისაგან, რომელსაც შეუძლია გადაადგილება ლენტის გასწვრივ და საკონტროლო განყოფილებისგან, რომელიც განსაზღვრავს აპარატის ქცევას. . ლენტი თავდაპირველად ცარიელია, ხოლო მანქანაში შეყვანა მოცემულია ცალკე შეყვანის ფირზე. გამოთვლის შედეგი იწერება გამომავალ ფირზე.
ფუნქციის გამოსათვლელად, ტურინგის მანქანა მიჰყვება ინსტრუქციების ერთობლიობას, რომელსაც ეწოდება პროგრამა. პროგრამა განსაზღვრავს, თუ როგორ უნდა მოიქცეს მანქანა მისი ამჟამინდელი მდგომარეობისა და ლენტიდან წაკითხული სიმბოლოს მიხედვით. მანქანა იწყება საწყის მდგომარეობაში და ის არაერთხელ ასრულებს შემდეგ ნაბიჯებს:
1. წაკითხვა: მანქანა კითხულობს სიმბოლოს წაკითხვის/ჩაწერის ხელმძღვანელის ქვეშ.
2. პროცესი: მიმდინარე მდგომარეობიდან და წაკითხული სიმბოლოდან გამომდინარე, მანქანა განსაზღვრავს შემდეგ მდგომარეობას და სიმბოლოს ფირზე დასაწერად.
3. გადაადგილება: აპარატი წაიყვანს წაკითხვის/ჩაწერის თავსა ერთ უჯრედს მარცხნივ ან მარჯვნივ.
4. გაიმეორეთ: მანქანა უბრუნდება პირველ საფეხურს და გრძელდება მანამ, სანამ არ მიაღწევს გაჩერების მდგომარეობას.
შეყვანის ფირის როლი არის გამოთვლაში შეყვანის უზრუნველყოფა. შეყვანის ლენტი თავდაპირველად ივსება შეყვანის სიმბოლოებით, რომლებსაც მანქანა კითხულობს გამოთვლის დროს. შეყვანის ლენტი არის მხოლოდ წაკითხვადი, რაც იმას ნიშნავს, რომ მანქანას არ შეუძლია შეცვალოს მისი შინაარსი.
გამომავალი ფირის როლი არის გამოთვლის გამოსავლის შენახვა. როდესაც მანქანა ამუშავებს შეყვანის სიმბოლოებს, მას შეუძლია დაწეროს სიმბოლოები გამომავალ ფირზე, რათა გამოიტანოს სასურველი შედეგი. გამომავალი ფირზე არის მხოლოდ ჩაწერა, რაც იმას ნიშნავს, რომ მანქანას შეუძლია მხოლოდ მასზე წერა და არ შეუძლია წაიკითხოს მისი შინაარსი.
ტურინგის აპარატის ფუნქციების გამოთვლის უნარი ეფუძნება ფირზე სიმბოლოებით მანიპულირების უნარს წესების მიხედვით. ეს წესები საშუალებას აძლევს მანქანას შეასრულოს არითმეტიკული ოპერაციები, ლოგიკური ოპერაციები და სხვა გამოთვლები. ამ წესების დაცვით, ტურინგის მანქანას შეუძლია ნებისმიერი ალგორითმული გამოთვლების სიმულაცია.
მაგალითად, განვიხილოთ ტურინგის მანქანა, რომელიც ითვლის ორი რიცხვის ჯამს. შეყვანის ლენტი შეიცავს ორ რიცხვს, გამოყოფილი სპეციალური სიმბოლოთი. მანქანა წაიკითხავდა შეყვანის სიმბოლოებს, შეასრულებდა დამატებით ოპერაციას და წერდა შედეგს გამომავალ ფირზე.
ტურინგის მანქანა ითვლის ფუნქციას პროგრამით განსაზღვრული ინსტრუქციების ნაკრების მიხედვით. შეყვანის ლენტი უზრუნველყოფს შეყვანას გამოთვლაში, ხოლო გამომავალი ლენტი ინახავს გამოთვლის გამომავალს. მანქანა მანიპულირებს ფირზე სიმბოლოებით გამოთვლების შესასრულებლად, რაც საშუალებას აძლევს მას მოახდინოს ნებისმიერი ალგორითმული გამოთვლების სიმულაცია.
სხვა ბოლოდროინდელი კითხვები და პასუხები გამოთვლადი ფუნქციები:
- რას ნიშნავს ტურინგის მანქანების სხვადასხვა ვარიაციები გამოთვლით შესაძლებლობებში ექვივალენტური იყოს?
- ახსენით კავშირი გამოთვლილ ფუნქციასა და ტურინგის მანქანის არსებობას შორის, რომელსაც შეუძლია მისი გამოთვლა.
- რა მნიშვნელობა აქვს ტურინგის მანქანას, რომელიც ყოველთვის ჩერდება გამოთვლითი ფუნქციის გამოთვლისას?
- შეიძლება თუ არა ტურინგის მანქანის შეცვლა ისე, რომ ყოველთვის მიიღოს ფუნქცია? ახსენით რატომ ან რატომ არა.
- რა არის გამოთვლითი ფუნქცია გამოთვლითი სირთულის თეორიის კონტექსტში და როგორ განისაზღვრება იგი?