คำถามติดแท็ก prolog

ภาษาโปรแกรมตรรกะ

18
หนึ่งจะจัดการ IF หลายพัน IF ... แล้ว ... กฎอื่น ๆ ได้อย่างไร
ฉันกำลังพิจารณาที่จะสร้างแอปพลิเคชั่นซึ่งที่หลักของมันจะประกอบไปด้วยหาก ... แล้ว ... งบอื่น วัตถุประสงค์ของแอปพลิเคชั่นนี้คือเพื่อให้สามารถทำนายได้ว่าวัวเคลื่อนไปรอบ ๆ ในแนวนอนใด พวกเขาได้รับผลกระทบจากสิ่งต่าง ๆ เช่นดวงอาทิตย์ลมแหล่งอาหารเหตุการณ์ฉับพลัน ฯลฯ แอปพลิเคชันดังกล่าวสามารถจัดการได้อย่างไร? ฉันจินตนาการว่าหลังจากสองสามร้อยประโยค IF มันจะดีเท่าที่คาดเดาไม่ได้ว่าโปรแกรมจะตอบสนองและดีบั๊กอะไรที่นำไปสู่ปฏิกิริยาบางอย่างจะหมายความว่าเราจะต้องสำรวจต้นไม้คำสั่ง IF ทั้งหมดทุกครั้ง ฉันได้อ่านนิดหน่อยเกี่ยวกับเอ็นจิ้นกฎ แต่ฉันไม่เห็นว่าพวกเขาจะรับมือกับความซับซ้อนนี้ได้อย่างไร

4
ทำไม Prolog ถึงดีสำหรับการเขียนโปรแกรม AI [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันกำลังค้นคว้าภาษาการเขียนโปรแกรมที่ใช้สำหรับการเขียนโปรแกรม AI ฉันรู้ว่า LISP ถูกสอนเป็นภาษาโปรแกรม AI ในมหาวิทยาลัยของฉัน แต่ Prolog ไม่ค่อยเป็น ฉันชอบ Prolog แต่ฉันไม่ใช่โปรแกรมเมอร์ AI ดังนั้นฉันไม่คิดว่าฉันมีคุณสมบัติที่จะตัดสินด้วยตัวเองว่าทำไม Prolog ดีกว่า LISP / Scheme ฉันสงสัยว่าโปรแกรมเมอร์มีอินพุตในหัวข้อนี้หรือไม่ คุณจะยืนยันได้อย่างไรว่า Prolog จะมีประโยชน์มากกว่าสำหรับการเขียนโปรแกรม AI? ฉันได้ทำการค้นคว้ามาบ้างแล้วและข้อโต้แย้งพื้นฐานที่ฉันได้เห็นบ่อยครั้งก็คือความคิดนั้นถูกนำเสนอในเชิงตรรกะและ Prolog เป็นภาษาการเขียนโปรแกรมเชิงตรรกะ Prolog สามารถสร้างเครื่องตัดสินใจได้อย่างง่ายดาย มีอะไรอีกบ้างที่สามารถพูดได้สำหรับ Prolog ใน AI?

4
ความสัมพันธ์ระหว่างเอ็นจิน Business Rules และภาษาการเขียนโปรแกรมข้อ จำกัด
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา ถ้ามีคนดูคู่มือ Drools หรือบางทีอาจจะเป็นกฎเก่า ๆ ภาพหนึ่งในมูลค่าเพิ่มของพวกเขาก็คือการไขปริศนาเช่น Puzzle Miss Manners (คู่มือของ Drools) ตอนนี้ปริศนาดังกล่าวได้รับการพัฒนาและแก้ไขตามธรรมชาติโดยใช้ภาษาโปรล็อกหรือภาษาโปรแกรมข้อ จำกัด ล่าสุดและสงสัยว่าทำไมทุกคนจะใช้ Drools เพื่อจุดประสงค์นี้ มูลค่าเพิ่มที่ Prolog และ CPL ให้ไว้ในกรณีนี้คือความสามารถในการกำหนดตัวไขปริศนาตามชุดของตรรกะและเพื่อค้นหาพื้นที่ของการแก้ปัญหาโดยอัตโนมัติ (โดย CPL มีประสิทธิภาพมากกว่าในแง่นี้) แต่มูลค่าเพิ่มของผลิตภัณฑ์เช่น Drools คืออะไร (ฉันหมายถึงนอกเหนือจากเสียงระฆังและเสียงนกหวีดแห่งการถ่ายเช่นไฟล์ Excel และแปลเป็นชุดของกฎ) โดยเฉพาะอย่างยิ่ง Prolog ใช้การค้นหาย้อนรอย CLP ใช้การค้นหาย้อนรอยด้วยการเผยแพร่ข้อ จำกัด และดังนั้นแทนที่จะค้นหาเพื่อพูดผลิตภัณฑ์คาร์ทีเซียนทั้งหมดของช่องว่างสำหรับตัวแปรแต่ละตัวจะตัดส่วนที่มีขนาดใหญ่ของพื้นที่ผลิตภัณฑ์นี้ สิ่งนี้ทำให้พวกเขามีประสิทธิภาพและมีประโยชน์ ทั้ง Prolog …

5
อะไรทำให้ภาษาโปรแกรมเชิงฟังก์ชั่นมีความหมายต่างกับความจำเป็น?
ในหลาย ๆ บทความที่อธิบายถึงประโยชน์ของการเขียนโปรแกรมเชิงปฏิบัติฉันได้เห็นภาษาโปรแกรมที่ใช้งานได้เช่น Haskell, ML, Scala หรือ Clojure เรียกว่า "ภาษาที่ประกาศ" ซึ่งแตกต่างจากภาษาที่จำเป็นเช่น C / C ++ / C # / Java คำถามของฉันคือสิ่งที่ทำให้ภาษาโปรแกรมการทำงานประกาศเมื่อเทียบกับความจำเป็น คำอธิบายที่พบบ่อยซึ่งอธิบายถึงความแตกต่างระหว่างการเขียนโปรแกรมเชิงประกาศและเชิงบังคับคือในการเขียนโปรแกรมเชิงบังคับคุณต้องบอกคอมพิวเตอร์ว่า "ทำอย่างไร" ซึ่งต่างจาก "สิ่งที่ต้องทำ" ในภาษาที่ประกาศ ปัญหาที่ฉันมีกับคำอธิบายนี้คือคุณกำลังทำทั้งสองอย่างในภาษาการเขียนโปรแกรมทั้งหมด แม้ว่าคุณจะลงไปที่แอสเซมบลีระดับต่ำสุดที่คุณยังบอกคอมพิวเตอร์ว่า "สิ่งที่ต้องทำ" คุณบอกซีพียูเพื่อเพิ่มตัวเลขสองตัวคุณไม่ได้บอกวิธีการเพิ่ม ถ้าเราไปที่ปลายอีกด้านหนึ่งของภาษาที่มีฟังก์ชั่นบริสุทธิ์ระดับสูงอย่าง Haskell คุณกำลังบอกคอมพิวเตอร์ว่าจะทำภารกิจเฉพาะอย่างได้อย่างไร นั่นคือสิ่งที่โปรแกรมของคุณเป็นลำดับของคำแนะนำเพื่อให้ได้งานเฉพาะซึ่งคอมพิวเตอร์ไม่ทราบว่าจะบรรลุผลได้อย่างไร ฉันเข้าใจว่าภาษาเช่น Haskell, Clojure ฯลฯ มีระดับที่สูงกว่า C / C ++ / C # / Java อย่างเห็นได้ชัดและมีคุณสมบัติเช่นการประเมินแบบขี้เกียจโครงสร้างข้อมูลที่ไม่เปลี่ยนรูปแบบฟังก์ชันที่ไม่ระบุชื่อการปิดบังโครงสร้างข้อมูลถาวร ฟังก์ชั่นการเขียนโปรแกรมเป็นไปได้และมีประสิทธิภาพ …

3
เหตุใดจึงไม่เขียนกฎของโปรแกรมลงใน Prolog [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา จากสิ่งที่ฉันได้เห็นจาก Prolog ดูเหมือนว่ามันจะเหมาะสำหรับการสร้างเอ็นจิ้นกฎสำหรับแอพ แต่ฉันไม่เชื่อว่าฉันเคยเห็นเครื่องมือสร้างกฎที่เขียนใน Prolog มีข้อ จำกัด บางอย่างใน Prolog (เช่นอัลกอริทึมการรวบรวมขยะที่ไม่ดี) ที่จะป้องกันไม่ให้มันถูกใช้เพื่อสร้างกฎของเครื่องมือหรือไม่?

5
ภาษาโปรแกรมล่าสุดสำหรับ AI หรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา ไม่กี่ทศวรรษที่ผ่านมาการเขียนโปรแกรมภาษาของทางเลือกสำหรับ AI เป็นอย่างใดอย่างหนึ่งเปิดฉากหรือLISP , และอื่น ๆ อีกสองสามคนที่ไม่ได้เป็นที่รู้จักกันเป็นอย่างดี ส่วนใหญ่ออกแบบมาก่อนยุค 70 การเปลี่ยนแปลงเกิดขึ้นมากมายในหลาย ๆ โดเมนเฉพาะภาษา แต่ในโดเมน AI มันไม่ได้โผล่ขึ้นมามากเหมือนในเว็บภาษาหรือสคริปต์เฉพาะเป็นต้น มีภาษาโปรแกรมล่าสุดที่มีจุดประสงค์เพื่อเปลี่ยนเกมใน AI และเรียนรู้จากความไม่เพียงพอของภาษาเดิมหรือไม่?

9
อารัมภบทมีประโยชน์อย่างมืออาชีพหรือไม่?
ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันเรียน Prolog เมื่อหลายปีก่อนในมหาวิทยาลัย ในช่วงชีวิตการงานของฉันฉันไม่จำเป็นต้องใช้ Prolog ฉันพลาดอะไรเป็นพิเศษไหม? เท่าที่ฉันจำได้ว่า Prolog ต้องการความคิดที่แตกต่างอย่างสิ้นเชิงเมื่อเทียบกับภาษาการเขียนโปรแกรมที่โดดเด่น Prolog เคยใช้บางสิ่งบางอย่างที่มีประโยชน์อย่างมืออาชีพหรือไม่?

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

4
ตัวอย่างก่อนหน้านี้สำหรับเหตุผลที่ Prolog ได้รับความนิยมน้อยกว่า SQL ในการเขียนโปรแกรมเชิงซ้อน [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา มันดูเหมือนว่าจะเขียนบอกเล่า SQLเป็นที่นิยมมากในการเขียนโปรแกรมจำเป็น อย่างไรก็ตามมันก็ดูเหมือนว่าการเขียนDeclarative Prologสามารถบันทึกความซับซ้อนมากมาย แต่นี่ไม่ใช่เรื่องธรรมดา มีแบบอย่างในอดีตสำหรับการตั้งค่าที่ชัดเจนของ SQL มากกว่า Prolog นี้หรือไม่? หากเหตุผลคือขาดการสนับสนุนดั้งเดิมโดยภาษาที่จำเป็นแล้วเป็นไปได้ไหมที่จะตอบว่าทำไมผู้สร้างภาษาไม่พบว่ามีประโยชน์ในการสนับสนุนโดยกำเนิดPrologตั้งแต่แรก? เพื่อให้ตัวอย่างเฉพาะ: ตัวอย่างที่ 1 การ ประเมินแอปพลิเคชันสินเชื่ออาจเป็นโค้ดเพียงไม่กี่บรรทัดPrologเช่นSELECT/JOINข้อความค้นหาที่เป็นโค้ดเพียงไม่กี่บรรทัดSQLแต่ดูเหมือนว่าข้อดีจะไม่ชัดเจนเท่าที่SQLควร ตัวอย่างที่ 2 นี่คือปัญหาตัวอย่างอื่นและวิธีแก้ไขใน Prolog โปรแกรมตรรกะข้อ จำกัด ต่อไปนี้แสดงชุดข้อมูลที่ง่ายของประวัติของ john ในฐานะครู: teaches(john, hardware, T) :- 1990 ≤ T, T < 1999. teaches(john, software, T) :- 1999 ≤ T, T …

1
อารัมภบทขนาน
มีล่ามอารัมภบทที่สามารถย่อยสลาย 'โปรแกรม' ของคุณเพื่อปรับปรุงประสิทธิภาพได้หรือไม่? ฉันรู้ว่ามีงานวิจัยเกี่ยวกับล่ามอารัมภบทที่มีความเร็วใกล้เคียง C ผ่านการขนาน (ชนิดที่โปรแกรมเมอร์ C ทั่วไปไม่สามารถ "เห็น") ไม่มีใครรู้เพิ่มเติมเกี่ยวกับหัวข้อนี้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.