Decidability ของการตรวจสอบ antiderivative


9

สมมุติว่าฉันมีสองฟังก์ชั่น Fและและฉันสนใจที่จะพิจารณาว่าG

F(x)=G(x)dx.

สมมติว่าฟังก์ชั่นของฉันประกอบด้วยฟังก์ชั่นพื้นฐาน (พหุนาม, เอ็กซ์โปเนนเชียล, บันทึกและฟังก์ชั่นตรีโกณมิติ) แต่ไม่ใช่พูดซีรีย์เทย์เลอร์

ปัญหานี้ตัดสินได้หรือไม่? ถ้าไม่มันเป็น semidecidable?

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


คุณดูเหมือนจะถามถึงความแตกต่างเชิงสัญลักษณ์ คุณอาจจะดูที่en.wikipedia.org/wiki/Symbolic_computationและen.wikipedia.org/wiki/Computer_algebra_system ไม่ชัดเจนสำหรับฉันว่าคุณอนุญาตฟังก์ชั่นใด คุณอนุญาตให้จัดองค์ประกอบแบบใด เช่นอนุญาตหรือไม่ ฉันขอแนะนำให้คุณลองทำเป็นชั้นฟังก์ชั่นที่คุณสนใจเกี่ยวกับการใช้คำจำกัดความซ้ำ คุณลองดูว่าจะเกิดอะไรขึ้นเมื่อคุณใช้กฎลูกโซ่และดูว่าคุณจะได้อัลกอริทึมแบบเรียกซ้ำที่จัดการทุกกรณีได้หรือไม่? F(x)=sin(cos(ex))+log(2x3+3)
DW

3
เนื่องจากความแตกต่างนั้นง่ายคุณจึงถามว่าเราสามารถตัดสินใจได้หรือไม่ว่านิพจน์เป็นศูนย์เหมือนกันหรือไม่ นี่อาจเป็นปัญหาในการค้นหาข้อมูลที่ง่ายกว่า F
Yuval Filmus

คำตอบ:


8

คำตอบสั้น ๆ สำหรับคำถามของคุณคือ "ไม่" ทฤษฎีบทของริชาร์ดสันและส่วนขยายในภายหลังโดยทั่วไประบุว่าทันทีที่คุณรวมฟังก์ชั่นตรีโกณมิติเบื้องต้นปัญหาของการตัดสินใจว่า (และถ้าเนื่องจากนี่เป็นสิ่งเดียวกัน ) แก้ไม่ได้f(x)=0f(x)=g(x)f(x)g(x)=0

สิ่งที่น่าสนใจเกี่ยวกับเรื่องนี้ก็คือทฤษฎีลำดับที่หนึ่งของสนามปิดจริงนั้นสามารถตัดสินใจได้ เหตุผลที่เพิ่มฟังก์ชันตรีโกณมิติทำให้ระบบลำดับแรก undecidable เนื่องจากคุณสามารถสร้างจำนวนเต็มผ่านและทฤษฎีของจำนวนเต็มไม่สามารถอธิบายได้ .{xR:sin(πx)=0}

หรือไม่ว่าทฤษฎีของสาขาที่ปิดจริงกับเป็น decidable เป็นปัญหาที่มีชื่อเสียงเปิดอย่างเป็นธรรมex

ที่น่าสนใจยิ่งกว่าคือนี่คือถ้าคุณมี oracle ที่ "แก้ไข" ปัญหาคงที่ (เช่น oracle ที่สามารถบอกคุณได้ว่าหรือไม่) จากนั้นการรวมฟังก์ชั่นพื้นฐานในเงื่อนไข จำกัด แน่นอนและ รู้จักอัลกอริทึมในทางปฏิบัติ ดังนั้นเมื่อ , เราสามารถหาหรือรู้ว่าไม่มีอินทิกรัลครบวงจรของในเงื่อนไข จำกัดf(x)=0G(x)F(x)G


6

ดูเหมือนว่าปัญหาของคุณจะลดคำถามที่ง่ายขึ้นดังต่อไปนี้:

รับสองฟังก์ชั่น F,G ในคลาสของฟังก์ชั่นเรามี F(x)=G(x) เพื่อทุกสิ่ง x? (กล่าวอีกนัยหนึ่งพวกเขามีค่าเท่ากันทุกที่หรือไม่)

ฉันไม่รู้ว่านี่เป็นสิ่งที่ตัดสินใจได้หรือไม่สำหรับฟังก์ชั่นชั้นนี้ ถ้าเป็นเช่นนั้นปัญหาของคุณควรจะตัดสินใจได้เช่นกัน


สำหรับปัญหาของคุณวิธีการทั่วไปคือ: แตกต่างเชิงสัญลักษณ์ F(x) เพื่อรับ F(x)จากนั้นตรวจสอบว่าเรามี F(x)=G(x) เพื่อทุกสิ่ง x.

ดังนั้นขั้นตอนสำคัญคือความแตกต่างของสัญลักษณ์ เรามาดูวิธีการทำอย่างละเอียดกันดีกว่า เราสามารถกำหนดระดับของฟังก์ชั่นที่อนุญาตซ้ำ:

F(x)::=c|x|ex|log(x)|sin(x)|cos(x)|tan(x)|F1(x)+F2(x)|F1(x)×F2(x)|F1(x)/F2(x)|F1(F2(x))

เมื่ออยู่เหนือค่าคงที่และอยู่เหนือฟังก์ชันcF,F1,F2

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

  • ถ้า , 0F(x)=cF(x)=0

  • ถ้า , 1F(x)=xF(x)=1

  • ถ้า , xF(x)=exF(x)=ex

  • ถ้า , xF(x)=log(x)F(x)=1/x

  • ถ้า ,(x)F(x)=sin(x)F(x)=cos(x)

  • ถ้า , 2F(x)=tan(x)F(x)=1+(tan(x))2

  • ถ้า ,(x)F(x)=F1(x)+F2(x)F(x)=F1(x)+F2(x)

  • ถ้า ,(x)F(x)=F1(x)×F2(x)F(x)=F1(x)F2(x)+F1(x)F2(x)

  • หาก , (กฎลูกโซ่)F(x)=F1(F2(x))F(x)=F1(F2(x))F2(x)

และอื่น ๆ ในแต่ละกรณีถ้าอยู่ในชั้นเรียนของฟังก์ชั่นที่อนุญาตแล้วเพื่อให้เป็นและคุณซ้ำสามารถทำงานออกแสดงออกสัญลักษณ์ - นี้เป็นที่รู้จักกันเป็นความแตกต่างที่เป็นสัญลักษณ์F(x)F(x)F(x)

สุดท้ายที่เหลือคือการตรวจสอบว่าสำหรับทุกxนั่นคือปัญหาที่ฉันพูดถึงที่ด้านบนของคำตอบของฉันF(x)=G(x)x


มีวิธีง่าย ๆ ในการตรวจสอบว่ามีฟังก์ชันสองอย่างที่เหมือนกันซึ่งฉันคาดว่าจะทำงานได้ดีในทางปฏิบัติหรือไม่ อัลกอริทึมคือ: เลือกค่าสุ่มเป็นซ้ำ ๆและตรวจสอบว่าเก็บค่าไว้หรือไม่ ถ้ามันมีความเสมอภาคสำหรับเลือกแบบสุ่มจำนวนมากดังนั้นเอาต์พุต "พวกมันจะเท่ากัน" หากคุณพบใด ๆที่จากนั้นเอาท์พุท "พวกมันต่างกัน"xF(x)=G(x)xxxF(x)G(x)

ไม่มีการรับประกันว่าสิ่งนี้จะได้ผล แต่สำหรับฟังก์ชั่นหลายคลาสผลลัพธ์ของขั้นตอนนี้จะถูกต้องด้วยความน่าจะเป็นสูง โดยเฉพาะอย่างยิ่งสมมติว่าเรามีการแจกแจงบางส่วนบนแทนด้วยตัวแปรสุ่มและอย่างที่เก็บไว้สำหรับทั้งหมดในชั้นเรียน สมมติว่าคลาสของฟังก์ชั่นที่อนุญาตปิดภายใต้การลบ (เช่นคลาสของคุณ) จากนั้นก็ต่อว่ารอบของขั้นตอนข้างต้นจะช่วยให้คำตอบที่ผิดปกติกับความน่าจะเป็นที่มากที่สุด RxXϵ>0Pr[F(X)=0]ϵFr(1ϵ)r

นอกจากนี้หากมีขั้นตอนการสุ่มสำหรับการทดสอบความเท่าเทียมกันของพหุนามปัญหาก็จะถูกตัดสินได้

ยังคงต้องถามว่าผลลัพธ์ดังกล่าวเก็บไว้สำหรับคลาสเฉพาะของฟังก์ชันหรือไม่ คำสั่งข้างต้นอาจจะไม่ถือ อย่างไรก็ตามหากเราโชคดีบางทีเราอาจจะสามารถพิสูจน์สิ่งต่อไปนี้:

สำหรับทั้งหมดบางทีเราสามารถหาการแจกแจงในจำนวนจริงเช่นตัวแปรสุ่มและค่าคงที่เช่นนั้นถือสำหรับทุกฟังก์ชั่ที่อยู่ในชั้นเรียนของคุณและมี "ขนาด" ที่มากที่สุดssNXsϵs>0Pr[F(X)=0]Fs

หากนี่เป็นเรื่องจริงมันจะตามมาว่ามีอัลกอริทึมแบบสุ่มสำหรับการทดสอบความเท่าเทียมกันของพหุนามและทำให้ปัญหาของคุณสามารถตัดสินใจได้

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