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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІСЬКА ПОЛІТЕХНІКА» Кафедра ІСМ Звіт До лабораторної роботи №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:59

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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