Алгоритм Квайна та Девіса-Патнема доведення теорем у штучному інтелекті

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2017
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Методи і системи штучного інтелекту

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІСЬКА ПОЛІТЕХНІКА» Кафедра ІСМ Звіт До лабораторної роботи №5 З дисципліни: «Методи та системи штучного інтелекту» На тему: «Алгоритм Квайна та Девіса-Патнема доведення теорем у штучному інтелекті» Мета роботи: полягає у вивченні алгоритмів Квайна та Девіса-Патнема доведення теорем у штучному інтелекті. Теоретичні відомості Особливість алгоритму Девіса–Патнема (M. Davis, H. Putnam) полягає у використанні евристик для видалення з фор- мул, які перевіряють на заперечуваність, окремих елементів, та формулюванні висновку про розв’язок отриманням спеціальної форми логічної формули. Алгоритм Девіса–Патнема є модифікацією алгоритму Куайна, у якій доведення виконують побудовою відповідного семантичного дерева з вибором атомів базису в певній послідовності. Завдання лабораторної роботи: Скласти програму, яка дозволяє доводити теореми у штучному інтелекті застосуванням алгоритмів Квайна та Девіса-Патнема. Програма повинна доводити невиконанність заданої множини диз’юнктів або демонструвати її виконанність. Результати виконання роботи: vovk_6; public class rrrrr extends javax.swing.JFrame { // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { jLabel1 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); jTextField3 = new javax.swing.JTextField(); jTextField4 = new javax.swing.JTextField(); jTextField5 = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); jTextField6 = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); jLabel6 = new javax.swing.JLabel(); jTextField7 = new javax.swing.JTextField(); jTextField8 = new javax.swing.JTextField(); jTextField9 = new javax.swing.JTextField(); jTextField10 = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); jTextField11 = new javax.swing.JTextField(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText("S = {"); jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField1ActionPerformed(evt); } }); jTextField2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField2ActionPerformed(evt); } }); jTextField3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField3ActionPerformed(evt); } }); jLabel2.setText("}"); jTextField6.setText("Теорема за алгоритмом Девіса-Патмена"); jTextField6.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField6ActionPerformed(evt); } }); jButton1.setText("Довести/Спростувати"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jLabel3.setText("p"); jLabel4.setText("q"); jLabel5.setText("r"); jLabel6.setText("s"); jTextField7.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField7ActionPerformed(evt); } }); jLabel8.setText("Результат"); private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { String s1 = jTextField1.getText(); String s2 = jTextField2.getText(); String s3 = jTextField3.getText(); String s4 = jTextField4.getText(); String s5 = jTextField5.getText(); int[] res = new int[5]; res[0] = res(s1); res[1] = res(s2); res[2] = res(s3); res[3] = res(s4); res[4] = res(s5); jTextField6.setText(Integer.toString(res(s1))); jTextField7.setText(Integer.toString(res(s2))); jTextField8.setText(Integer.toString(res(s3))); jTextField9.setText(Integer.toString(res(s4))); jTextField10.setText(Integer.toString(res(s5))); int count = 0; for(int i = 0; i < res.length; i++){ if(res[i] == 0){count++;} } if(count == 0){jTextField11.setText("Доведено");} else {jTextField11.setText("Спростовано");} } public int res(String s){ int var1=0; int var2=0; if(s.charAt(0) == 'p'){ var1 = Integer.parseInt(jTextField7.getText()); } else if(s.charAt(0) == 'q'){ var1 = Integer.parseInt(jTextField8.getText()); } else if(s.charAt(0) == 'r'){ var1 = Integer.parseInt(jTextField9.getText()); } else if(s.charAt(0) == 's'){ var1 = Integer.parseInt(jTextField10.getText()); } if(s.charAt(2) == 'p'){ var2 = Integer.parseInt(jTextField7.getText()); } else if(s.charAt(2) == 'q'){ var2 = Integer.parseInt(jTextField8.getText()); } else if(s.charAt(2) == 'r'){ var2 = Integer.parseInt(jTextField9.getText()); } else if(s.charAt(2) == 's'){ var2 = Integer.parseInt(jTextField10.getText()); } if(s.charAt(1) == '&'){ if(var1 == 1 && var2 == 1){return 1;} else return 0; } else if(s.charAt(1) == '|'){ if(var1 == 0 && var2 == 0){return 0;} else return 1; } else if(s.charAt(1) == '>'){ if(var1 == var2){return 1;} else return 0; } return 1; } private void jTextField7ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: } try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new rrrrr().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField10; private javax.swing.JTextField jTextField11; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private javax.swing.JTextField jTextField4; private javax.swing.JTextField jTextField5; private javax.swing.JTextField jTextField6; private javax.swing.JTextField jTextField7; private javax.swing.JTextField jTextField8; private javax.swing.JTextField jTextField9; // End of variables declaration } / Рис. 1. Доведення невиконання теореми / Рис. 2. Доведення виконання теореми Висновок Виконавши дану лабораторну роботу, вивчила застосування алгоритмів Квайна та Девіса-Патнема, а також доведення теорем у штучному інтелекті.
Антиботан аватар за замовчуванням

30.05.2019 15:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!