คำถามติดแท็ก reversible-computing

1
เกม Pebble ขนานบนสาย
ในเกม pebbleที่บรรทัดมี N + 1 โหนดที่มีป้ายกำกับ 0 ถึง N เกมเริ่มต้นด้วย pebble บนโหนด 0 หากมี pebble บนโหนด i คุณสามารถเพิ่มหรือลบ pebble จาก node i + 1 เป้าหมายคือการวางก้อนกรวดบนโหนด N โดยไม่ต้องวางก้อนกรวดจำนวนมากบนบอร์ดในเวลาเดียวกันและโดยไม่ต้องทำตามขั้นตอนมากเกินไป วิธีการแก้ปัญหาที่ไร้เดียงสาคือการวางก้อนกรวดบน 1 จากนั้น 2 จากนั้น 3 และอื่น ๆ สิ่งนี้เหมาะสมที่สุดในแง่ของจำนวนขั้นตอน มันไม่ดีที่สุดในจำนวนก้อนกรวดสูงสุดบนกระดานในเวลาเดียวกัน: ในระหว่างขั้นตอนสุดท้ายจะมีก้อนกรวด N ก้อนบนกระดาน (ไม่นับตัวต่อ 0) กลยุทธ์ที่วางก้อนกรวดน้อยลงบนกระดานพร้อมกันนั้นอยู่ในบทความนี้ พวกเขามาถึงโหนด N โดยไม่เกินΘ(lgN)Θ(lg⁡N)\Theta(\lg N)ก้อนกรวดในเวลา แต่ค่าใช้จ่ายของการเพิ่มจำนวนของขั้นตอนที่จะΘ(nlg23)Θ(nlg2⁡3)\Theta(n^{\lg_2 3}) ) …

1
อัลกอริทึมการผกผันของโปรแกรมสำหรับโปรแกรมลำดับสูงกว่า
คำว่าการผกผันของโปรแกรม มีหลายความหมาย แต่อาจเริ่มด้วยงานของ J. McCarthy ในปี 1956 การกลับมาของฟังก์ชั่นที่นิยามโดย Turing Machinesในบริบทของ AI โดยขณะนี้มีการค้นพบการเชื่อมต่อจำนวนมากระหว่างการผกผันของโปรแกรมและฟิลด์อื่น ๆ เช่นการเขียนโปรแกรมแบบย้อนกลับได้ (ทางกายภาพและตรรกะ) การประเมินผลบางส่วนการตรวจสอบการเขียนโปรแกรมแบบสองทิศทางการเขียนโปรแกรมเชิงตรรกะ การกลับรายการคืออะไร ในการประมาณแรกมันจะเป็นแบบนี้: ให้โปรแกรมรับอาร์กิวเมนต์ประเภท Aและส่งคืนผลลัพธ์ของ type Bสร้างโปรแกรมP - 1ที่ "ตรงกันข้าม" Pอย่างใดอย่างหนึ่ง ฉันจงใจที่จะคลุมเครือที่นี่เนื่องจากแนวคิดสามารถ (และเป็น) ชี้แจงในรูปแบบต่างๆ: เช่นPจะต้องฉีด? ควร P - 1 ( ข)กลับมาทั้งหมดหรือเพียงบางส่วนดังกล่าวว่าP ( ) = BP: A → BP:A→BP : A \rightarrow BAAABBBP−1P−1P^{-1}PPPPPPP−1(b)P−1(b)P^{-1}(b)aaaP(a)=bP(a)=bP(a) = b? มีวิธีทั่วไปในการแปลงโปรแกรมเช่นการใช้ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.