แลมบ์ดาสุ่มของสกอตต์


19

เมื่อเร็ว ๆ นี้ Dana Scott ได้เสนอแคลคูลัสแลมบ์ดาซึ่งเป็นความพยายามที่จะแนะนำองค์ประกอบที่น่าจะเป็นลงในแคลคูลัสแลมบ์ดา (ไม่ได้พิมพ์) ขึ้นอยู่กับความหมายที่เรียกว่าแบบจำลองกราฟ คุณสามารถหาสไลด์ของเขาในบรรทัดได้ที่นี่และบทความของเขาในJournal of Applied Logic , vol. 12 (2014)

แต่ด้วยการค้นหาอย่างรวดเร็วบนเว็บที่ผมพบว่างานวิจัยก่อนหน้าคล้ายกันเช่นว่าสำหรับระบบการพิมพ์ Hindley-มิลเนอร์ วิธีที่พวกเขาแนะนำความหมายที่น่าจะเป็นคล้ายกับของสก็อตต์ (ในอดีตพวกเขาใช้พระในขณะที่สก็อตต์หลังใช้สไตล์การส่งต่อเนื่อง)

งานของสก็อตต์แตกต่างจากงานก่อนหน้านี้ในแง่ของทฤษฎีหรือแอปพลิเคชันที่เป็นไปได้ในแง่ใด


เนื่องจากฉันใช้เวลาสักครู่ในการค้นหานี่คือลิงค์: sciencedirect.com/science/article/pii/S1570868314000238
Blaisorblade

คำตอบ:


15

จุดแข็งของสิ่งหนึ่งที่ชัดเจนของวิธีการของเขาก็คือมันช่วยให้ฟังก์ชันลำดับสูงกว่า (เช่นคำแลมบ์ดา) เป็นผลลัพธ์ที่สังเกตได้ซึ่งทฤษฎีการวัดโดยทั่วไปทำให้ค่อนข้างยุ่งยาก (ปัญหาพื้นฐานคือว่าช่องว่างของฟังก์ชั่นที่สามารถวัดได้โดยทั่วไปไม่มี Borel พีชคณิตที่ฟังก์ชั่นการใช้งาน - บางครั้งเรียกว่า "EVAL" - เป็นที่วัดดูบทนำกระดาษโครงสร้าง Borel สำหรับพื้นที่ฟังก์ชั่น .) สกอตต์นี้ไม่ใช้ การเข้ารหัสGödelจากเงื่อนไขแลมบ์ดาไปเป็นตัวเลขธรรมชาติและทำงานโดยตรงกับเงื่อนไขการเข้ารหัส หนึ่งจุดอ่อนของวิธีการนี้อาจเป็นการเข้ารหัสที่ยากที่จะขยายด้วยจำนวนจริงเป็นค่าของโปรแกรม (แก้ไข: นี่ไม่ใช่จุดอ่อน - ดูความคิดเห็นของ Andrej ด้านล่าง)σ

การใช้ CPS นั้นดูเหมือนว่าจะเป็นการกำหนดลำดับรวมของการคำนวณเป็นหลักเพื่อกำหนดลำดับทั้งหมดในการเข้าถึงแหล่งข้อมูลแบบสุ่ม รัฐ monad ควรทำเช่นกัน

สกอตต์ "ตัวแปรสุ่ม" ดูเหมือนจะเป็นเช่นเดียวกับสวนสาธารณะ "ฟังก์ชั่นการสุ่มตัวอย่าง" ของเขาในความหมายในการดำเนินงาน เทคนิคการเปลี่ยนค่ามาตรฐานเครื่องแบบเข้าไปในค่าที่มีการกระจายใด ๆ ที่เป็นที่รู้จักกันอย่างแพร่หลายมากขึ้นเป็นสิ่งที่ตรงกันข้ามเปลี่ยนการสุ่มตัวอย่าง

ฉันเชื่อว่ามีความแตกต่างพื้นฐานเพียงอย่างเดียวระหว่างความหมายของ Ramsey และ Scott Ramsey's ตีความโปรแกรมเป็นการคำนวณที่สร้างการวัดบนผลลัพธ์ของโปรแกรม สกอตต์ถือว่าหน่วยวัดที่มีอยู่เดิมในอินพุตและตีความโปรแกรมเป็นการแปลงอินพุตเหล่านั้น (หลักการในการวัดเอาท์พุทสามารถคำนวณได้โดยใช้คำนำหน้า) สกอตต์นั้นคล้ายคลึงกับการใช้ monad แบบสุ่มใน Haskell

ในวิธีการโดยรวมความหมายของสก็อตต์ดูเหมือนจะคล้ายกับวิทยานิพนธ์ครึ่งหลังของฉันเกี่ยวกับภาษาที่น่าจะเป็น - ยกเว้นว่าฉันติดอยู่กับค่าลำดับแรกแทนที่จะใช้การเข้ารหัสที่ฉลาดใช้ต้นไม้ที่ไม่มีที่สิ้นสุดของตัวเลขสุ่มแทนสตรีม การคำนวณลูกศร (ลูกศรหนึ่งคำนวณการแปลงจากพื้นที่ความน่าจะเป็นแบบคงที่เป็นเอาต์พุตโปรแกรมส่วนอีกอันคำนวณคำนำหน้าและค่าประมาณโดยประมาณ) บทที่ 7 ของวิทยานิพนธ์ของฉันอธิบายว่าทำไมฉันจึงคิดว่าโปรแกรมแปลความหมายเป็นการแปลงพื้นที่ความน่าจะเป็นแบบคงที่ ที่สร้างการวัด โดยพื้นฐานแล้วมันลงไปที่ "จุดตรึงของมาตรการมีความซับซ้อน แต่เราเข้าใจจุดเปลี่ยนของโปรแกรมที่ค่อนข้างดี"


3
λλλ

1
@ มาร์ติน: ฉันไม่สามารถตอบได้อย่างรวดเร็วเพราะฉันไม่รู้มากเกี่ยวกับแคลคูลัสของกระบวนการ แต่ดูเหมือนว่ามันจะคุ้มค่าที่จะดู ฉันอยากรู้ว่าคุณสมบัติของกระบวนการที่มีลักษณะเป็นอย่างไรหลังจากถ่ายโอนมันไปแล้วและคุณสมบัติการถ่ายโอนนั้นสามารถยกระดับได้ไม่ว่าด้วยวิธีใดก็ตาม
Neil Toronto

2
T0λ

@ อังเดร: การขยายการเข้ารหัสด้วยจำนวนจริงไม่น่าจะมีปัญหางั้นเหรอ?
Neil Toronto

1
λλ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.