ดังที่แสดงให้เห็นในสองบทแรก การคำนวณทำงานโดยการจัดการกับการแทนค่า (representations) ซึ่งก็คือสัญลักษณ์หรือเครื่องหมายที่ใช้ยืนแทนสิ่งที่มีความหมาย เราได้เห็นแล้วว่า Hansel และ Gretel ใช้ก้อนกรวดเป็นตัวแทนของตำแหน่งที่ตั้งเพื่อสนับสนุนอัลกอริทึม (algorithm) การหาเส้นทางของพวกเขา การที่ก้อนกรวดจะทำงานได้นั้นจำเป็นต้องมีคุณสมบัติหลายประการที่เรามองข้ามไป การพิจารณาคุณสมบัติเหล่านี้อย่างละเอียดจะช่วยให้เราเข้าใจมากขึ้นว่าการแทนค่าคืออะไร และมันสนับสนุนการคำนวณได้อย่างไร
การแทนค่าประกอบด้วยสองส่วนอย่างน้อย คือ สิ่งที่ใช้แทน และสิ่งที่ถูกแทน ความจริงข้อนี้ถูกอธิบายด้วยแนวคิดของ สัญลักษณ์ (sign) ต่อไปนี้คือสามประเด็นเกี่ยวกับสัญลักษณ์ที่ควรจดจำ: สัญลักษณ์สามารถทำงานได้หลายระดับ สัญลักษณ์สามารถคลุมเครือได้ (สัญลักษณ์เดียวสามารถแทนสิ่งที่แตกต่างกันได้) และสิ่งหนึ่งสามารถถูกแทนด้วยสัญลักษณ์ที่แตกต่างกันได้ บทนี้ยังกล่าวถึงกลไกต่างๆ ที่ทำให้สัญลักษณ์สามารถทำหน้าที่เป็นการแทนค่าได้
Signs of Representation (สัญลักษณ์แห่งการแทนค่า)
คุณเคยสงสัยหรือไม่ว่า 1 + 1 มีค่าเท่ากับ 2? อาจจะไม่สงสัย เว้นแต่ว่าคุณเป็นนักเดินทางข้ามเวลาจากโรมโบราณ ในกรณีนั้นสัญลักษณ์ตัวเลขคงดูแปลกสำหรับคุณ และคุณอาจจะเห็นด้วยว่า I + I เท่ากับ II ถ้ามีคนอธิบายความหมายของสัญลักษณ์ + ให้คุณฟัง ซึ่งชาวโรมันไม่เคยรู้จัก (สัญลักษณ์นี้ถูกใช้ครั้งแรกในศตวรรษที่สิบห้า) และถ้าคุณถามคอมพิวเตอร์อิเล็กทรอนิกส์ซึ่งใช้ระบบเลขฐานสอง มันก็จะตอบว่าคุณว่า 1 + 1 เท่ากับ 10 1 เกิดอะไรขึ้นกันแน่?
ตัวอย่างนี้แสดงให้เห็นว่าการพูดคุยเกี่ยวกับข้อเท็จจริงทางคณิตศาสตร์ที่ง่ายมากก็ยังต้องอาศัยข้อตกลงร่วมกันเกี่ยวกับสัญลักษณ์ที่ใช้แทนปริมาณต่างๆ และแน่นอนว่านี่เป็นจริงเช่นเดียวกันกับการคำนวณเกี่ยวกับปริมาณ การเพิ่มเป็นสองเท่าของ 11 ได้ผลลัพธ์เป็น 22 ในระบบเลขฐานสิบซึ่งมีพื้นฐานจากตัวเลขฮินดู-อารบิก ในโรมโบราณการเพิ่มเป็นสองเท่าของ II จะได้ IV (ไม่ใช่ IIII) 2 และผลลัพธ์จากคอมพิวเตอร์อิเล็กทรอนิกส์จะเป็น 110 เนื่องจาก 11 ในระบบเลขฐานสองแทนค่าเลข 3 และ 110 แทนค่าเลข 6 3
สิ่งนี้แสดงให้เห็นว่าความหมายของการคำนวณขึ้นอยู่กับความหมายของการแทนค่าที่มันแปลงเปลี่ยน ตัวอย่างเช่น การคำนวณที่แปลง 11 เป็น 110 หมายถึงการเพิ่มเป็นสองเท่าถ้าตีความตัวเลขเป็นเลขฐานสอง ในขณะที่มันหมายถึงการคูณด้วย 10 ถ้าตีความตัวเลขเป็นเลขฐานสิบ และการแปลงนี้ไม่มีความหมายภายใต้การตีความแบบเลขโรมันเพราะชาวโรมันไม่มีสัญลักษณ์แทนศูนย์
เนื่องจากการแทนค่ามีบทบาทสำคัญอย่างยิ่งในการคำนวณ การทำความเข้าใจว่ามันคืออะไรจริงๆ จึงเป็นสิ่งสำคัญ และเนื่องจากคำว่า "การแทนค่า" (representation) ถูกใช้ในหลายความหมาย เราจึงต้องชัดเจนเกี่ยวกับความหมายของมันในวิทยาการคอมพิวเตอร์ ด้วยเหตุนี้ ผมจึงขออาศัยความช่วยเหลือจาก Sherlock Holmes นักสืบชื่อดังที่วิธีการไขคดีของเขาสามารถเปิดเผยให้เห็นถึงวิธีการทำงานของการแทนค่าที่สนับสนุนการคำนวณได้เป็นอย่างดี Sherlock Holmes มักจะสังเกตรายละเอียดเล็กๆ น้อยๆ อย่างเฉียบคมและตีความมันในวิธีที่น่าประหลาดใจ การอนุมานเหล่านี้มักจะช่วยไขคดี แต่บางครั้งก็เป็นเพียงวิธีที่สนุกสนานในการเปิดเผยข้อมูลเพื่อดำเนินเรื่องต่อไป ไม่ว่าในกรณีใด การอนุมานของ Sherlock Holmes มักจะอยู่บนพื้นฐานของการตีความการแทนค่า
การแทนค่ามีบทบาทสำคัญในหนึ่งในเรื่องผจญภัยที่โด่งดังและเป็นที่นิยมที่สุดของ Sherlock Holmes เรื่อง The Hound of the Baskervilles ตามสไตล์ของ Sherlock Holmes เรื่องราวเริ่มต้นด้วยการสังเกตการณ์หลายอย่างเกี่ยวกับไม้เท้าที่ผู้มาเยือนคนหนึ่งคือ Dr. Mortimer ทิ้งไว้ Holmes และ Watson ตีความข้อความสลักบนไม้เท้าซึ่งอ่านได้ว่า "To James Mortimer, MRCS, from his friends of the CCH" การที่อาศัยอยู่ในอังกฤษ Holmes และ Watson จึงรู้ว่า "MRCS" ย่อมาจาก หรือ แทนค่า Member of the Royal College of Surgeons และจากนั้นด้วยความช่วยเหลือของสมุดรายชื่อแพทย์ Holmes จึงอนุมานว่า "CCH" ต้องย่อมาจาก Charing Cross Hospital เนื่องจาก Dr. Mortimer เคยทำงานที่นั่นมาระยะหนึ่ง เขายังอนุมานอีกว่าไม้เท้านี้ต้องถูกมอบให้ Dr. Mortimer เพื่อแสดงความขอบคุณในบริการเมื่อเขาลาออกจากโรงพยาบาลเพื่อไปเป็นแพทย์ประจำท้องถิ่น ถึงแม้ว่าภายหลังจะพบว่าการอนุมานนี้ไม่ถูกต้อง และแท้จริงแล้ว Dr. Mortimer ได้รับไม้เท้านี้ในโอกาสวันครบรอบแต่งงานของเขา
ข้อความสลักบนไม้เท้าประกอบด้วยการแทนค่าที่สังเกตได้สามอย่างทันที คือ ตัวย่อสองตัว และข้อความทั้งหมดที่แทนเหตุการณ์วันครบรอบแต่งงานของ Dr. Mortimer การแทนค่าแต่ละอย่างถูกบันทึกอยู่ในรูปแบบของ สัญลักษณ์ (sign) ซึ่งเป็นแนวคิดที่ Ferdinand de Saussure นักภาษาศาสตร์ชาวสวิสเป็นผู้ริเริ่ม สัญลักษณ์ประกอบด้วยสองส่วนคือ ตัวหมาย (signifier) และ ความหมาย (signified) ตัวหมายคือสิ่งที่รับรู้หรือนำเสนอ ในขณะที่ความหมายคือแนวคิดหรือความคิดที่ตัวหมายยืนแทน เพื่อเชื่อมโยงแนวคิดเรื่องสัญลักษณ์นี้กับการแทนค่า เราสามารถพูดได้ว่าตัวหมาย แทนค่า ความหมาย เนื่องจากผมใช้คำว่า "แทนค่า" (represent) ในความหมายของ "การยืนแทน" เสมอ เราจึงสามารถพูดได้ว่าตัวหมาย ยืนแทน ความหมาย
แนวคิดเรื่องสัญลักษณ์มีความสำคัญเพราะมันรวบรวมแนวคิดเรื่องการแทนค่าได้อย่างกระชับ โดยเฉพาะอย่างยิ่ง ความสัมพันธ์ระหว่างตัวหมายกับสิ่งที่มันแทนค่านั้นก่อให้เกิดความหมายสำหรับเรา — ในกรณีของไม้เท้าก็คือส่วนหนึ่งของประวัติศาสตร์วิชาชีพของ Dr. Mortimer ความหมาย (signified) มักถูกเข้าใจผิดว่าเป็นวัตถุทางกายภาพในโลก แต่จริงๆ แล้ว Saussure ไม่ได้หมายถึงสิ่งนั้น ตัวอย่างเช่น คำว่า "tree" ไม่ได้หมายถึงต้นไม้จริงๆ แต่หมายถึงแนวคิดของต้นไม้ที่เรามีอยู่ในความคิดของเรา
แง่มุมนี้ทำให้การเขียนเกี่ยวกับสัญลักษณ์ค่อนข้างยุ่งยาก เพราะในแง่หนึ่ง ข้อความและแผนภาพที่ใช้เขียนเกี่ยวกับสัญลักษณ์ก็เป็นสัญลักษณ์เสียเอง และในอีกแง่หนึ่ง แนวคิดนามธรรมหรือความคิดในจิตใจไม่สามารถแสดงให้เห็นได้โดยตรง แต่ต้องถูกแทนด้วยสัญลักษณ์ในท้ายที่สุดเช่นกัน ในวรรณกรรมเกี่ยวกับสัญศาสตร์ (semiotics) ซึ่งเป็นทฤษฎีของสัญลักษณ์และความหมาย แนวคิดเรื่องสัญลักษณ์มักถูกอธิบายด้วยแผนภาพที่มีคำว่า "tree" เป็นตัวอย่างของตัวหมาย และภาพวาดต้นไม้เป็นสิ่งที่ถูกหมายถึงโดย "tree" อย่างไรก็ตาม ภาพวาดนั้นก็เป็นสัญลักษณ์ของแนวคิดเรื่องต้นไม้เช่นกัน ดังนั้นแผนภาพจึงอาจทำให้เข้าใจผิด เนื่องจาก "tree" ไม่ใช่ตัวหมายของภาพวาด แต่หมายถึงสิ่งที่ภาพวาดหมายถึง ซึ่งก็คือแนวคิดของต้นไม้
เนื่องจากเราจำเป็นต้องใช้ภาษาในการพูดถึงภาษาและการแทนค่า จึงไม่มีทางออกจากภาวะกลืนไม่เข้าคายไม่ออกนี้ และเราไม่สามารถนำเสนอแนวคิดหรือความคิดใดๆ ได้นอกจากผ่านทางภาษา ไม่ว่าเราจะต้องการพูดถึงตัวหมายหรือความหมาย เราก็ต้องใช้ตัวหมายเพื่อทำสิ่งนั้นเสมอ โชคดีที่เราสามารถหลีกเลี่ยงปัญหานี้ได้เกือบตลอดเวลาด้วยการใส่เครื่องหมายคำพูดรอบคำหรือวลีที่ใช้เป็นตัวหมาย หรือด้วยการจัดรูปแบบพิเศษเช่นตัวเอียง เครื่องหมายคำพูดมีผลทำให้เราอ้างถึงคำหรือวลีในฐานะตัวมันเอง โดยไม่ตีความความหมาย ในทางกลับกัน คำหรือวลีที่ใช้โดยไม่มีเครื่องหมายคำพูดจะถูกตีความในฐานะสิ่งที่มันยืนแทน นั่นคือแนวคิดที่เป็นความหมาย
ดังนั้น "tree" จึงหมายถึงคำสี่ตัวอักษร ในขณะที่คำที่ไม่มีเครื่องหมายคำพูดหมายถึงแนวคิดของต้นไม้ การแบ่งแยกระหว่างคำที่มีเครื่องหมายคำพูดซึ่งยืนแทนตัวมันเอง กับการใช้โดยไม่ใส่เครื่องหมายคำพูดซึ่งยืนแทนสิ่งที่มันหมายถึง ถูกเรียกว่า use-mention distinction (ความแตกต่างระหว่างการใช้และการกล่าวถึง) ในปรัชญาวิเคราะห์ คำที่ไม่มีเครื่องหมายคำพูดนั้นถูก ใช้ (used) และหมายถึงสิ่งที่มันแทนค่า ในขณะที่คำที่มีเครื่องหมายคำพูดนั้นถูก กล่าวถึง (mentioned) เท่านั้น และไม่ได้อ้างถึงสิ่งที่มันยืนแทน การใส่เครื่องหมายคำพูดหยุดการตีความไม่ให้กระทำต่อส่วนที่ถูกอ้างถึง และทำให้เราสามารถแยกแยะระหว่างการพูดถึงคำกับความหมายของมันได้อย่างชัดเจน ตัวอย่างเช่น เราสามารถพูดว่า "tree" มีสี่ตัวอักษร ในขณะที่ต้นไม้ (tree) ไม่มีตัวอักษรแต่มีกิ่งก้านและใบไม้
แนวคิดที่ดูเหมือนเรียบง่ายของสัญลักษณ์นั้นมีความยืดหยุ่นมากมาย ตัวอย่างเช่น สัญลักษณ์สามารถทำงานได้หลายระดับ สัญลักษณ์สามารถมีความหมายได้หลายอย่าง และความเชื่อมโยงระหว่างตัวหมายและความหมายสามารถถูกสร้างขึ้นได้ในหลายวิธี ผมจะอธิบายสามประเด็นนี้ในหัวข้อต่อไปนี้
Signs All the Way Down (สัญลักษณ์ซ้อนทับกันเป็นชั้น)
นอกจากสัญลักษณ์สามอย่างบนไม้เท้าที่ผมระบุไปแล้ว — "MRCS" ที่หมายถึง Member of the Royal College of Surgeons, "CCH" ที่หมายถึง Charing Cross Hospital และข้อความทั้งหมดที่หมายถึงวันครบรอบแต่งงานของ Dr. Mortimer — จริงๆ แล้วยังมีสัญลักษณ์อีกหลายอย่างที่ทำงานอยู่ตรงนี้ ประการแรก "Member of the Royal College of Surgeons" หมายถึงการเป็นสมาชิกของสมาคมวิชาชีพ และในทำนองเดียวกัน "Charing Cross Hospital" หมายถึงโรงพยาบาลแห่งหนึ่งในลอนดอน (แนวคิดของโรงพยาบาล ไม่ใช่ตัวอาคาร) แต่นั่นยังไม่หมด นอกจากนี้ "MRCS" ยังหมายถึงการเป็นสมาชิกสมาคมศัลยแพทย์ และ "CCH" ก็หมายถึงโรงพยาบาลในลอนดอนเช่นกัน
ดังนั้นตัวย่อหนึ่งตัวจึงมีความหมายได้สองแบบ และสามารถมีสิ่งที่ถูกหมายถึง (signified) ที่แตกต่างกันสองอย่าง เนื่องจากมันขยายไปถึงความหมายของความหมายอีกทอดหนึ่ง สิ่งนี้หมายความว่าอย่างไร? เนื่องจากสิ่งที่ "CCH" หมายถึงคือวลี "Charing Cross Hospital" ซึ่งตัวมันเองก็เป็นตัวหมายถึงโรงพยาบาลในลอนดอน CCH จึงสามารถแทนโรงพยาบาลในลอนดอนได้โดยการรวมการแทนค่าสองระดับเข้าด้วยกัน โดยที่ความหมายของระดับแรกเป็นตัวหมายของระดับที่สอง ในทำนองเดียวกัน "MRCS" ก็รวมการแทนค่าสองระดับเป็นหนึ่งเดียว เนื่องจากมันแทนการเป็นสมาชิกสมาคมศัลยแพทย์โดยอ้างถึงความหมายของ "Member of the Royal College of Surgeons"
ทำไมเรื่องนี้ถึงสำคัญ และมันเกี่ยวข้องกับวิทยาการคอมพิวเตอร์อย่างไร? ลองนึกถึงการแทนค่าสองรูปแบบที่เราแยกแยะไว้ใน chapter 1 ได้แก่ การแทนค่าปัญหา (problem representation) และการแทนค่าการคำนวณ (computation representation) ความจริงที่ว่าสัญลักษณ์สามารถรวมการแทนค่าสองระดับเป็นหนึ่งเดียว ทำให้เราสามารถเพิ่มความหมายให้กับการคำนวณที่ปกติแล้วเป็นเพียงสัญลักษณ์ล้วนๆ ผมจะอธิบายแนวคิดนี้ด้วยตัวอย่างที่ใช้การแทนค่าตัวเลขที่เราพูดถึงก่อนหน้านี้
เมื่อมองเป็นเลขฐานสอง ตัวหมาย "1" แทนค่าเลขหนึ่งในระดับการแทนค่าการคำนวณ ตัวเลขนี้สามารถแทนข้อเท็จจริงที่แตกต่างกันในบริบทที่ต่างกัน และดังนั้นจึงมีการแทนค่าปัญหาที่แตกต่างกัน ถ้าคุณเล่นรูเล็ต มันอาจแทนจำนวนเงินที่คุณวางเดิมพันบนสีดำ การแปลงที่ต่อท้าย 0 เข้ากับ 1 หมายถึงในระดับการแทนค่าการคำนวณคือการเพิ่มเลขหนึ่งเป็นสองเท่าเป็นสอง ในบริบทของการแทนค่าปัญหา การแปลงนี้ยังหมายถึงว่าสีดำออกจริง และคุณชนะเดิมพันและตอนนี้มีเงินเป็นสองเท่า
ในทำนองเดียวกัน ก้อนกรวดในป่าเป็นตัวหมายที่แทนตำแหน่งที่ตั้งสำหรับ Hansel และ Gretel และอยู่ในกลุ่มการแทนค่าการคำนวณ นอกจากนี้ แต่ละตำแหน่งที่ตั้งยังแทนตำแหน่งของอันตรายในการแทนค่าปัญหา เพื่อแยกความแตกต่างระหว่างตำแหน่งต่างๆ เราอาจวัดระดับอันตรายตามระยะทางของตำแหน่งนั้นจากบ้านของ Hansel และ Gretel การเคลื่อนที่จากก้อนกรวดหนึ่งไปยังอีกก้อนหนึ่งหมายถึงการเปลี่ยนตำแหน่งในการแทนค่าการคำนวณ แต่ยังหมายถึงการลดลงของอันตรายในการแทนค่าปัญหาด้วย ถ้าตำแหน่งที่เคลื่อนไปนั้นใกล้บ้านมากขึ้น การถ่ายทอดของสัญลักษณ์ (transitivity of signs) คือเหตุผลที่ทำให้ "He worked at CCH" หมายความว่าเขาทำงานที่ Charing Cross Hospital ไม่ใช่ หมายความว่าเขาทำงานที่ "Charing Cross Hospital" ซึ่งจะไม่สมเหตุสมผล เพราะเราไม่สามารถทำงานที่ชื่อของโรงพยาบาลได้
Making Sense of Signifiers (การทำความเข้าใจตัวหมาย)
สัญลักษณ์ที่ทำงานข้ามระดับการแทนค่าที่แตกต่างกันเป็นตัวอย่างของตัวหมายที่ผูกติดกับความหมายหลายอย่าง สัญลักษณ์ "1" ในตัวอย่างรูเล็ตหมายถึงเลขหนึ่งและการเดิมพัน ก้อนกรวดที่ Hansel และ Gretel ใช้แทนตำแหน่งที่ตั้งและอันตราย กองก้อนกรวดแทนเส้นทางและหนทางจากอันตรายสู่ความปลอดภัย ดังนั้นตัวย่อใดๆ ก็ตามจึงแทนชื่อที่มันย่อและแนวคิดที่ชื่อนั้นยืนแทน
อย่างไรก็ตาม ตัวหมายหนึ่งตัวยังสามารถแทนแนวคิดที่ไม่เกี่ยวข้องกันหลายแนวคิดได้ และแนวคิดหนึ่งก็สามารถถูกแทนด้วยตัวหมายที่ไม่เกี่ยวข้องกันหลายตัวได้เช่นกัน ตัวอย่างเช่น "10" หมายถึงเลขสิบในการแทนค่าแบบฐานสิบ และหมายถึงเลขสองในการแทนค่าแบบฐานสอง ยิ่งไปกว่านั้น เลขสองถูกแทนด้วยตัวหมาย "2" ในการแทนค่าแบบฐานสิบ และด้วยตัวหมาย "10" ในการแทนค่าแบบฐานสอง แน่นอนว่าการแทนค่าหลายรูปแบบยังมีอยู่ในระดับการแทนค่าปัญหาด้วย เช่นเดียวกัน เลขหนึ่งสามารถใช้แทนสิ่งอื่นนอกเหนือจากการเดิมพันสีดำบนโต๊ะรูเล็ตได้
ปรากฏการณ์สองอย่างนี้เป็นที่รู้จักกันดีในภาษาศาสตร์ คำหนึ่งถูกเรียกว่า คำพ้องรูป (homonym) ถ้ามันยืนแทนแนวคิดที่แตกต่างกันสองแนวคิดขึ้นไป ตัวอย่างเช่น คำว่า "trunk" สามารถหมายถึงลำต้นของต้นไม้ งวงของช้าง หรือช่องเก็บสัมภาระของรถยนต์ ในทางตรงกันข้าม สองคำถูกเรียกว่า คำพ้องความหมาย (synonym) ถ้าทั้งสองคำแทนแนวคิดเดียวกัน ตัวอย่างเช่น "bike" และ "bicycle" หรือ "hound" และ "dog" ในบริบทของการคำนวณ คำพ้องรูปทำให้เกิดคำถามสำคัญหลายข้อ
ตัวอย่างเช่น ถ้าตัวหมายหนึ่งสามารถแทนความหมายที่แตกต่างกันได้ แล้วการแทนค่าใดที่ทำงานจริงเมื่อใช้ตัวหมายนั้น? ไม่น่าแปลกใจที่การแทนค่าที่ตัวหมายเรียกขึ้นมานั้นขึ้นอยู่กับบริบทที่มันถูกใช้ ตัวอย่างเช่น เมื่อเราถามว่า "CCH" ย่อมาจากอะไร เรากำลังสอบถามความหมายของตัวย่อ ซึ่งก็คือชื่อ "Charing Cross Hospital" ในทางตรงกันข้าม คำถามเช่น "คุณเคยไป CCH หรือไม่" ใช้ประโยชน์จากความจริงที่ว่ามันหมายถึงโรงพยาบาล และจึงเลือกการแทนค่าที่สอง ยิ่งไปกว่านั้น ตัวหมาย "10" แทนค่าสิบหรือสอง ขึ้นอยู่กับว่าใช้การแทนค่าแบบฐานสิบหรือฐานสอง เรื่องราวของ Hansel และ Gretel ยังแสดงให้เห็นว่าบริบทการใช้งานมีความสำคัญต่อสัญลักษณ์ในการมีบทบาทในการแทนค่าที่เฉพาะเจาะจง ตัวอย่างเช่น เมื่อก้อนกรวดวางอยู่หน้าบ้านของ Hansel และ Gretel พวกมันไม่ได้แทนสิ่งใดเป็นพิเศษ ในทางตรงกันข้าม เมื่อพวกมันถูกวางอย่างตั้งใจในป่า พวกมันกลับแทนตำแหน่งที่ใช้สำหรับหาเส้นทาง
ตัวหมายเดียวกันยังสามารถมีความหมายที่แตกต่างกันสำหรับตัวแทน (agent) ที่แตกต่างกันในการตีความสัญลักษณ์ ตัวอย่างเช่น เศษขนมปังที่ Hansel และ Gretel ใช้ในคืนที่สองนั้นหมายถึงตำแหน่งที่ตั้งสำหรับ Hansel และ Gretel อย่างไรก็ตาม นกในป่าตีความพวกมันเป็นอาหาร การตีความเศษขนมปังทั้งสองแบบนั้นสมเหตุสมผลและใช้การได้ ไม่ว่าจะจากมุมมองของ Hansel และ Gretel หรือของนก ไม่ต้องใช้จินตนาการมากนักที่จะเห็นว่าคำพ้องรูปสามารถก่อให้เกิดปัญหาในอัลกอริทึมได้ เนื่องจากมันสร้างความกำกวมที่ต้องได้รับการแก้ไขไม่ทางใดก็ทางหนึ่ง แล้วทำไมใครๆ ถึงต้องการหรือจำเป็นต้องให้ชื่อเดียวแทนค่าที่แตกต่างกันในอัลกอริทึม? ดูเพิ่มเติมใน chapter 13 ซึ่งผมจะอธิบายวิธีแก้ปัญหาความกำกวมที่เกิดขึ้นเหล่านี้ด้วย
สุดท้ายนี้ ยังเป็นไปได้ที่จะเข้าใจผิดเกี่ยวกับการแทนค่า และเชื่อมโยงความหมายที่ไม่ถูกต้องเข้ากับตัวหมาย ตัวอย่างคือการอนุมานของ Sherlock Holmes ที่ว่าข้อความสลักบนไม้เท้าของ Dr. Mortimer แทนการเกษียณอายุของเขา ในขณะที่จริงๆ แล้วมันแทนวันครบรอบแต่งงานของ Dr. Mortimer (ดู figure 3.1 ) การตีความที่ผิดพลาดนี้ถูกอภิปรายและไขความกระจ่างในเรื่อง The Hound of the Baskervilles เอง
Figure 3.1 สัญลักษณ์ (Signs) เป็นพื้นฐานของการแทนค่า สัญลักษณ์ประกอบด้วยตัวหมาย (signifier) ที่แทนแนวคิดบางอย่าง เรียกว่าความหมาย (signified) ตัวหมายหนึ่งตัวสามารถยืนแทนแนวคิดที่แตกต่างกันได้
ความถูกต้องของการแทนค่าเป็นสิ่งสำคัญอย่างยิ่งสำหรับการคำนวณ เพราะถ้าการคำนวณได้รับการแทนค่าที่ไม่ถูกต้องเป็นข้อมูลนำเข้า มันจะให้ผลลัพธ์ที่ไม่ถูกต้อง ข้อเท็จจริงนี้บางครั้งเรียกว่า "garbage in, garbage out" ไม่น่าแปลกใจที่การคำนวณที่อาศัยข้อมูลนำเข้าที่ไม่ถูกต้องและนำไปสู่ผลลัพธ์ที่ผิดพลาดอาจส่งผลกระทบร้ายแรงได้ ถ้าก้อนกรวดแทนเส้นทางที่ลึกเข้าไปในป่า ไม่มีอัลกอริทึมหาเส้นทางที่ถูกต้องใดๆ ที่จะช่วยให้ Hansel และ Gretel หาทางกลับบ้านได้ และพวกเขาก็จะตายในป่า
เครื่องเตือนใจถึงความสำคัญของการเลือกการแทนค่าอย่างรอบคอบคือเหตุการณ์สูญเสียยาน Mars Climate Orbiter ซึ่งเป็นยานอวกาศไร้คนขับที่ NASA ปล่อยขึ้นในปี 1998 เพื่อสำรวจสภาพอากาศและบรรยากาศของดาวอังคาร ระหว่างการปรับวิถีโคจร ยานเข้าใกล้พื้นผิวมากเกินไปและแตกสลาย สาเหตุของความล้มเหลวคือการใช้การแทนค่าตัวเลขที่แตกต่างกันสองแบบโดยซอฟต์แวร์ควบคุมและยานอวกาศ ซอฟต์แวร์คำนวณแรงขับในหน่วยอังกฤษ (English units) ในขณะที่ตัวควบคุมแรงขับคาดหวังตัวเลขในหน่วยเมตริก (metric units) ความล้มเหลวของการแทนค่านี้มาพร้อมกับมูลค่าความเสียหายถึง 655 ล้านดอลลาร์ ผมจะพูดถึงวิธีการหลีกเลี่ยงข้อผิดพลาดประเภทนี้ใน chapter 14 .
Three Ways to Signify (สามวิธีในการสร้างความหมาย)
เมื่อพิจารณาถึงความสำคัญของการแทนค่าที่แม่นยำแล้ว ความสัมพันธ์ระหว่างสัญลักษณ์กับสิ่งที่มันหมายถึงนั้นถูกสร้างขึ้นได้อย่างไร? สิ่งนี้สามารถเกิดขึ้นได้หลายวิธี และสัญลักษณ์สามารถจำแนกประเภทตามนั้น Charles Sanders Peirce นักตรรกศาสตร์ นักวิทยาศาสตร์ และนักปรัชญา ได้ระบุสัญลักษณ์ไว้สามประเภท
ประการแรก สัญลักษณ์แบบรูปเหมือน (icon) แทนวัตถุโดยอาศัยความคล้ายคลึงหรือความเหมือนกับวัตถุนั้น ตัวอย่างเช่น ภาพวาดของคนที่แทนบุคคลนั้นโดยการเน้นลักษณะเฉพาะ ตัวอย่างที่ชัดเจนของการแทนค่าแบบรูปเหมือนใน The Hound of the Baskervilles คือภาพเหมือนของ Sir Hugo Baskerville ซึ่งแทนตัวเขาผ่านความคล้ายคลึง ภาพเหมือนยังดูคล้ายกับฆาตกรด้วย และจึงเป็นอีกตัวอย่างหนึ่งของตัวหมายที่สามารถยืนแทนความหมายที่แตกต่างกัน ความจริงที่ว่าภาพเหมือนเป็นสัญลักษณ์สองอย่างในเวลาเดียวกันช่วยให้ Sherlock Holmes คลี่คลายคดีได้ ตัวอย่างเพิ่มเติมคือตัวย่อ CCH และ MRCS เมื่อใช้แทนวลีที่พวกมันย่อ ความคล้ายคลึงนี้เกิดจากตัวอักษรที่วลีและตัวย่อมีร่วมกัน สุดท้าย Sherlock Holmes ใช้แผนที่ของทุ่ง Devonshire เพื่อทำความเข้าใจสถานที่ที่เกิดเหตุฆาตกรรม แผนที่เป็นแบบรูปเหมือน เนื่องจากลักษณะต่างๆ ที่มันบรรจุอยู่ (เส้นทาง แม่น้ำ ป่าไม้ ฯลฯ) มีความคล้ายคลึงกับวัตถุที่มันแทนค่า โดยส่วนใหญ่ในด้านรูปร่างและตำแหน่ง
ประการที่สอง สัญลักษณ์แบบดัชนี (index) แทนวัตถุผ่านความสัมพันธ์เชิงกฎ (lawlike relationship) ที่ทำให้ผู้ดูดัชนีสามารถอนุมานวัตถุผ่านความสัมพันธ์นี้ได้ ตัวอย่างเช่น ลูกศรบอกทิศทางลมที่เราสามารถอนุมานทิศทางลมได้จากทิศทางของมัน ตัวอย่างอื่นๆ ได้แก่ เครื่องวัดชนิดต่างๆ ที่ถูกออกแบบให้เป็นดัชนีสำหรับปรากฏการณ์ทางกายภาพต่างๆ (อุณหภูมิ ความดัน ความเร็ว ฯลฯ) สุภาษิตที่ว่า "Where there is smoke, there is fire" มีพื้นฐานมาจากควันเป็นดัชนีของไฟ สัญลักษณ์แบบดัชนีถูกกำหนดโดยวัตถุที่มันหมายถึงผ่านความสัมพันธ์เชิงกฎระหว่างพวกมัน สัญลักษณ์แบบดัชนีที่สำคัญอื่นๆ ใน The Hound of the Baskervilles (และในเรื่อง Sherlock Holmes อื่นๆ) คือรอยเท้า ตัวอย่างเช่น รอยเท้าสุนัขที่พบใกล้ศพของ Charles Baskerville หมายถึงสุนัขขนาดใหญ่ ยิ่งไปกว่านั้น ความจริงที่ว่ารอยเท้าหยุดในระยะหนึ่งจาก Sir Charles ถูกตีความโดย Sherlock Holmes ว่าสุนัขไม่ได้สัมผัสทางกายภาพกับเขา รอยเท้าของ Sir Charles ในรูปแบบพิเศษบ่งบอกว่าเขากำลังวิ่งหนีสุนัข ดัชนีอีกอย่างคือปริมาณขี้เถ้าจากซิการ์ของ Sir Charles ที่พบในที่เกิดเหตุ ซึ่งบ่งบอกเวลาที่เขารออยู่ในสถานที่ที่เขาเสียชีวิต โดยบังเอิญ Peirce เองก็ใช้ตัวอย่างของฆาตกรและเหยื่อของเขาเป็นตัวอย่างของดัชนี เมื่อนำมาใช้กับเรื่องนี้ ก็หมายความว่า Sir Charles ที่เสียชีวิตเป็นดัชนีของฆาตกรของเขา
ประการที่สาม สัญลักษณ์แบบธรรมนิยม (symbol) แทนวัตถุโดยอาศัยข้อตกลงเท่านั้น ไม่มีความคล้ายคลึงหรือความเชื่อมโยงเชิงกฎเกี่ยวข้องในการแทนค่า เนื่องจากความเชื่อมโยงระหว่างตัวหมายและความหมายนั้นเป็นไปตามอำเภอใจโดยสิ้นเชิง ผู้สร้างและผู้ใช้สัญลักษณ์จึงต้องตกลงร่วมกันเกี่ยวกับนิยามและการตีความของสัญลักษณ์เพื่อให้มันทำงานได้ ภาษาสมัยใหม่ส่วนใหญ่เป็นแบบธรรมนิยม ความจริงที่ว่าคำว่า "tree" หมายถึงต้นไม้ไม่สามารถอนุมานได้ แต่เป็นข้อเท็จจริงที่ต้องเรียนรู้ ในทำนองเดียวกัน ที่ว่า "11" เป็นสัญลักษณ์ของสิบเอ็ดและสาม และที่ว่าก้อนกรวดเป็นสัญลักษณ์ของตำแหน่งที่ตั้ง ล้วนเป็นข้อตกลงร่วมกัน จากสัญลักษณ์ที่เรากล่าวถึงใน The Hound of the Baskervilles ตัวย่อ MRCS และ CCH เป็นสัญลักษณ์แบบธรรมนิยมถ้าใช้แทนการเป็นสมาชิกสมาคมศัลยแพทย์และโรงพยาบาลตามลำดับ เนื่องจากพวกมันไม่มีความคล้ายคลึงและไม่ได้เกิดจากความสัมพันธ์เชิงกฎใดๆ นอกจากนี้ สัญลักษณ์ 2704 ยังแทนรถแท็กซี่ที่ Holmes และ Watson ตามเพื่อระบุตัวผู้ต้องสงสัยที่ถูกกล่าวหาว่าข่มขู่ทายาทของ Baskerville คือ Sir Henry
Using Representations Systematically (การใช้การแทนค่าอย่างเป็นระบบ)
เมื่อเราได้แยกแยะสัญลักษณ์แบบรูปเหมือน ดัชนี และธรรมนิยมออกจากกันแล้ว ตอนนี้เราสามารถดูว่ารูปแบบการแทนค่าที่แตกต่างกันเหล่านี้ถูกใช้ในการคำนวณอย่างไร เนื่องจากการคำนวณทำงานผ่านการเปลี่ยนรูปการแทนค่า กลไกการแทนค่าที่แตกต่างกันของสัญลักษณ์แบบรูปเหมือน ดัชนี และธรรมนิยมจึงนำไปสู่รูปแบบการคำนวณที่แตกต่างกัน
ตัวอย่างเช่น เนื่องจากสัญลักษณ์แบบรูปเหมือนแทนวัตถุผ่านความคล้ายคลึง พวกมันจึงสามารถถูกเปลี่ยนรูปเพื่อเปิดเผยหรือซ่อนลักษณะเฉพาะของวัตถุที่ถูกแทนได้ เครื่องมือตกแต่งภาพถ่ายมีเอฟเฟกต์มากมายในการปรับเปลี่ยนภาพอย่างเป็นระบบ เช่น การเปลี่ยนสีหรือบิดเบือนสัดส่วนของภาพ การคำนวณนี้เปลี่ยนความคล้ายคลึงของสัญลักษณ์แบบรูปเหมือนอย่างมีประสิทธิภาพ อีกวิธีหนึ่งในการคำนวณด้วยการแทนค่าแบบรูปเหมือนที่เกี่ยวข้องกับอาชีพของ Sherlock Holmes คือการสร้างภาพวาดผู้ต้องสงสัย หรือภาพประกอบใบหน้าตามคำบอกเล่าของพยานผู้เห็นเหตุการณ์ พยานรายงานลักษณะของใบหน้า เช่น ขนาดและรูปร่างของจมูก หรือสีและความยาวของเส้นผม ซึ่งถูกตีความโดยนักวาดภาพของตำรวจเป็นคำสั่งในการวาดเพื่อสร้างภาพผู้ต้องสงสัย การคำนวณภาพวาดผู้ต้องสงสัยเป็นผลลัพธ์ของอัลกอริทึมที่กำหนดโดยพยานและดำเนินการโดยนักวาดภาพของตำรวจ ด้วยธรรมชาติที่เป็นอัลกอริทึม จึงไม่น่าแปลกใจที่วิธีนี้ถูกทำให้เป็นระบบอัตโนมัติ
วิธีนี้เป็นผลงานของ Alphonse Bertillon ซึ่งแนวคิดเกี่ยวกับมานุษยวิทยามิติ (anthropometry) หรือการวัดสัดส่วนร่างกายของมนุษย์ ถูกนำมาใช้โดยตำรวจปารีสในปี 1883 เป็นวิธีการระบุตัวอาชญากร เขาสร้างระบบจำแนกลักษณะใบหน้าที่เดิมใช้ค้นหาผู้ต้องสงสัยเฉพาะจากกลุ่มภาพถ่าย mug shots ของอาชญากรจำนวนมาก วิธีนี้เป็นตัวอย่างของการคำนวณที่ใช้ภาพร่างสำหรับการค้นหา ซึ่งเป็นปัญหาทางอัลกอริทึมที่สำคัญ (ดู chapter 5 ) Sherlock Holmes เป็นผู้ชื่นชมผลงานของ Bertillon แม้ว่าเขาจะไม่ได้พูดถึงเขาในทางที่ดีนักใน The Hound of the Baskervilles ก็ตาม การคำนวณอีกอย่างหนึ่งด้วยภาพร่างคือกระบวนการอนุมานตัวตนของผู้ต้องสงสัยจากภาพประกอบใบหน้า การคำนวณนี้เป็นการสร้างสัญลักษณ์ขึ้นมา โดยที่ตัวหมายคือภาพร่างและผู้ต้องสงสัยคือความหมาย สัญลักษณ์ยังถูกสร้างขึ้นเมื่อผู้ต้องสงสัยถูกระบุตัวตนด้วยความช่วยเหลือของภาพร่างหรือรูปภาพ สิ่งนี้เกิดขึ้นเมื่อ Sherlock Holmes จดจำฆาตกรได้ในภาพเหมือนของ Sir Hugo Baskerville
เป็นตัวอย่างของการคำนวณด้วยสัญลักษณ์แบบดัชนี ลองนึกถึงแผนที่ของทุ่ง Devonshire ในการหาตำแหน่งที่ถนนสายหนึ่งตัดกับแม่น้ำ Sherlock Holmes สามารถคำนวณจุดตัดของเส้นสองเส้นที่แทนแม่น้ำและถนนตามลำดับ อันที่จริง การแทนค่าบนแผนที่มีจุดดังกล่าวที่คำนวณไว้เรียบร้อยแล้ว ดังนั้นจึงสามารถอ่านค่าได้จากแผนที่โดยตรง หากแผนที่ถูกต้อง จุดที่ได้ก็จะแทนตำแหน่งที่ต้องการ 4 Sherlock Holmes ยังสามารถคำนวณความยาวของเส้นทางบนแผนที่ และใช้มาตราส่วนของแผนที่เพื่อหาระยะทางของเส้นทางในทุ่ง Devonshire และเวลาที่ต้องใช้ในการเดินทาง เช่นเดียวกัน สิ่งนี้ใช้ได้ถ้าแผนที่ถูกวาดตามมาตราส่วน การคำนวณแบบดัชนีใช้ประโยชน์จากความสัมพันธ์เชิงกฎระหว่างสัญลักษณ์กับสิ่งที่มันหมายถึง เพื่อเคลื่อนจากความหมายหนึ่งไปยังอีกความหมายหนึ่งผ่านการเปลี่ยนรูปของดัชนี
การคำนวณด้วยสัญลักษณ์แบบธรรมนิยมอาจเป็นรูปแบบที่พบได้บ่อยที่สุดในวิทยาการคอมพิวเตอร์ เนื่องจากสัญลักษณ์แบบธรรมนิยมทำให้สามารถแทนค่าได้ทุกปัญหา การคำนวณที่ใช้สัญลักษณ์แบบธรรมนิยมที่ชัดเจนที่สุดเกี่ยวข้องกับตัวเลขและเลขคณิต และเราสามารถพบตัวอย่างดังกล่าวในการผจญภัยครั้งแรกของ Sherlock Holmes เรื่อง A Study in Scarlet , 5 ซึ่งเขาคำนวณความสูงของผู้ต้องสงสัยจากความยาวของก้าวเดิน การคำนวณนี้เป็นเรื่องง่ายมาก ประกอบด้วยการคูณเพียงครั้งเดียว และอัลกอริทึมที่เกี่ยวข้องก็มีเพียงขั้นตอนเดียว
สิ่งที่น่าสนใจกว่าในมุมมองของการคำนวณคือความพยายามของ Sherlock Holmes ในการถอดรหัสข้อความที่ถูกเข้ารหัส ในเรื่อง The Valley of Fear เขาพยายามทำความเข้าใจข้อความที่ส่งถึงเขาซึ่งเริ่มต้นดังนี้: 534 C2 13 127 36 … รหัสนี้หมายถึงข้อความหนึ่ง ภารกิจแรกของ Sherlock Holmes คือการหาอัลกอริทึมที่ใช้สร้างรหัส เนื่องจากสิ่งนี้จะทำให้เขาสามารถถอดรหัสข้อความได้ เขาสรุปว่า 534 ต้องเป็นหมายเลขหน้าของหนังสือบางเล่ม C2 หมายถึง "คอลัมน์ที่สอง" และตัวเลขที่ตามมาหมายถึงคำในคอลัมน์นั้น
แต่รหัสนั้นเป็นสัญลักษณ์แบบธรรมนิยมจริงหรือ? เนื่องจากรหัสถูกสร้างขึ้นโดยอัลกอริทึมจากข้อความที่กำหนด ดูเหมือนว่าอัลกอริทึมการเข้ารหัสจะสร้างความสัมพันธ์เชิงกฎระหว่างข้อความและรหัสของมัน ดังนั้น รหัสจึงไม่ใช่สัญลักษณ์แบบธรรมนิยม แต่เป็นสัญลักษณ์แบบดัชนี นี่แสดงให้เห็นอีกวิธีหนึ่งที่การคำนวณเกี่ยวข้องกับสัญลักษณ์ ในขณะที่การตีความสร้างความหมาย (signified) จากตัวหมาย (signifier) ที่กำหนด อัลกอริทึมสำหรับการสร้างค่าดัชนีทำงานในทิศทางตรงกันข้าม และสร้างตัวหมายจากความหมายที่กำหนด
บรรทัดล่างคือสิ่งนี้: การแทนค่าคือพื้นฐานของการคำนวณ ธรรมชาติและคุณสมบัติพื้นฐานของมันสามารถเข้าใจได้ผ่านเลนส์ของสัญลักษณ์ และเช่นเดียวกับที่งานศิลปะสามารถมีพื้นฐานจากวัสดุที่แตกต่างกันมากมาย (ดินเหนียว หินอ่อน สี ฯลฯ) การคำนวณก็สามารถมีพื้นฐานจากการแทนค่าที่แตกต่างกัน ความสำคัญของการแทนค่าถูกเน้นย้ำใน chapter 1 : ไม่มีการคำนวณใดเกิดขึ้นได้หากปราศจากการแทนค่า