Пример выполнения курсового проекта

Метод или свойство?

Границы между свойствами и методами расплывчаты. Есть, например, метод Move, который изменяет позицию объекта. Но есть и некоторые свойства (Top, Left), выполняющие аналогичные действия. Основное различие между методами и свойствами заключается в том, что со свойствами можно работать как во время разработки проекта, так и во время выполнения приложения, тогда как методы доступны только при выполнении. Следует заметить, что некоторые свойства могут быть также недоступны при разработке приложения, а во время его работы доступны только для чтения. Список свойств, которые разработчик может изменять при разработке приложения, отображается в окне свойств элемента управления.

«Работа с классами в Visual Basic»

· Введение

· Задание для курсового проектирования

· Реализация задания

o область проекта Class1

o область проекта Form1

· Работа пользователя с проектом

· Заключение

Введение

Объектно-ориентированное программирование - это методология разработки программ, основанная на использовании совокупности объектов, каждый из которых является реализацией определенного класса. Программный код и данные структурируются так, чтобы имитировалось поведение фактически существующих объектов. Содержимое объекта защищено от внешнего мира посредством инкапсуляции. Благодаря наследованию уже запрограммированные функциональные возможности можно использовать и для других объектов. Объекты являются программным представлением физических и/или логических сущностей реального мира. Они необходимы для моделирования поведения физических или логических объектов, которые они представляют. Для изменения поведения и состояния элементов управления используются их свойства, методы, поля и события. Классы задают структуру объектов. При программировании создаются объекты - представители классов. С другой стороны, классы составляют группы одноименных объектов. Внутренняя структура класса в Visual Basic передается объекту с использованием модуля класса. С использованием команды Project Add Class Module модуль класса можно добавить в проект. После добавления модуля класса выводится окно кода, в котором можно реализовать компоненты (свойства, поля, методы, события) класса.

Задание для курсового проектирования

Создать в предметной области «автомобили» класс с требуемой функциональностью (использовать компоненты класса: методы, поля и т.д.). Создать объект - экземпляр класса. Создать пример использования объектом компонентов класса.

Реализация задания

Приводится проект, дающий справку желающим приобрести автомобиль. Создан класс Class1, содержащий компоненты, определяющие название фирмы-изготовителя, модель автомобиля, его стоимость, изображение автомобиля и следующие технические характеристики:

· тип двигателя (бензин/дизель),

· число цилиндров/рабочий объём,

· система питания (карбюратор/впрыскивание),

· мощность (л.с),

· максимальная скорость (км/час),

· разгон 0 - 100 (км/час)/сек,

· привод (передний/задний/4х4).

Далее создаётся экземпляр класса: Dim av As New Class1, использующий компоненты класса. Пользователю предлагается решить вопрос о необходимости покупки, выбрать фирму-изготовителя, ответить на вопрос о выводе изображения покупаемого автомобиля, либо его технических характеристик, либо обеих категорий одновременно (используются процедуры Property Get и Property Let, созданные в классе Class1), после чего программа адекватно реагирует: либо выводятся вышеперечисленные данные, либо выводится некоторое сообщение.

Для реализации проекта нужно выполнить следующую последовательность действий:

1. добавить в стандартный проект модуль класса: стартовать Visual Basic и открыть «Standard.exe», затем по маршруту:

Project Add Class Module Class Module Открыть

2. создать:

· четыре метода класса, которые создаются в процедурах: Public Function Met1(), Public Function Met2(), Public Function Met3(), Public Function Met4()

Tools Add Procedure ввести имена Met1, Met2, Met3, Met4 выбрать Function выбрать Public

Четыре раза следует войти в падающее меню «Инструменты (Tools)».

· свойства класса. Свойства задаются с использованием процедур Property Get и Property Let по маршруту:

Tools Add Procedure, ввести имя Varian выбрать Property выбрать Public

· поля класса - avto, firma, model, stoim, pict, var, см. ниже программу.

3. создать на форме:

· два элемента управления ComboBox с именами Combo1 и Combo2,

· два элемента управления CommandButton с именами Command1 и Cоmmand2; значению свойства Caption объекта Command1 присвоить значение "OK", Cоmmand2 – «Exit»

· элементы управления Label1 - Label4, значениям свойств Caption присвоить: Label1 - "Хотите ли Вы купить машину?", Label2 - "Выберите фирму-изготовитель", Label3 - "Хотите ли Вы увидеть изображение выбранного автомобиля или его технические характеристики?", Label4- "", свойству Visible объекта Label4 присвоить False,

· массив элементов управления OptionButton (присвоить значения свойствам - Option1(0).Caption= "да", Option1(1).Caption= "нет"),

· массивы элементов управления PictureBox: Picture1(0) - Picture1(12) и Picture2(0) - Picture(12). Свойству Visible всех элементов управления присвоить значение False.

Свойству Picture каждого элемента управления присвоить значение изображения соответствующего автомобиля и списка технических характеристик (эти списки создаются в приложении Excel, далее таблицы передаются в приложение Paint и сохраняются как рисунки).

4. ввести код в область класса (см. ниже "область проекта Class1"),

5. ввести код, данный ниже, в области:

· General Declarations формы,

· Combo1, событие Click,

· Combo2, событие Click,

· Command1, событие Click,

· Command, событие Click,

· Form, событие Load,

· Form, событие Unload,

6. стартовать проект, получить справку о предполагаемой покупке.

Работа пользователя с проектом

Вид разработанной справочной системы представлен на рис. После старта проекта при отрицательном ответе на вопрос "Хотите ли Вы купить машину?" выводится сообщение: "Приносим свои извинения, мы даем информацию для желающих купить автомобиль". При положительном ответе на вопрос и выборе фирмы-изготовителя из списка на экран выводится сообщение о фирме, марке и стоимости автомобиля.

Далее покупатель может просмотреть или внешний вид, или технические характеристики, или одновременно обе категории, выбрав соответствующую строку во втором списке и сделав щелчок на кнопке OК (используются процедуры Property Get и Property Let), см.рис., где дан результат работы программы при выборе строки "все данные". При щелчке на кнопке Exit выводится сообщение: "Мы всегда рады помочь! Будем рады новой встрече!" и проводится выход из программы.

Заключение

Созданный проект позволяет клиенту получить справочные данные при покупке автомобиля. Представленная программа является лишь небольшим примером использования классов, в реальности же сфера применения свойств объектно-базирующегося программирования гораздо шире.

Код программы, используемый при разработке:

‘///////////////////////////область проекта Class1////////////////////////////////Public avto As Boolean Public firma As StringPublic model As StringPublic stoim As StringPublic pict As StringDim var As StringPrivate Sub Class_Initialize() ' инициализация полей классаavto = False: firma = "": model = "": stoim = "": var = ""End SubPublic Function Met1()' Если пользователь нажал кнопку (OptionButton) - Да, то выполнить процедуры ' Met2, Met3, Met4, результатом выполнения которых является вывод данных: ' марка, стоимость, изображение и технические характеристики, иначе' Met1 = False и выводится сообщение "Приносим свои извинения, мы даем ' информацию для желающих купить автомобиль"If avto = True Thenmodel = Met2()stoim = Met3()pict = Met4() ' поле pict определяет номера элементов массивов ' PictureBox, см. Met4Met1 = TrueElseMet1 = FalseEnd IfEnd Function' после щелчка на кнопках Да/Нет (два переключателя OptionButton) и выбора' фирмы из списка ComboBox c именем Combo1 определить марку автомобиляPublic Function Met2()Select Case firmaCase "AUDI": Met2 = "A6"Case "CITROEN": Met2 = "C5"Case "FORD": Met2 = "Focus"Case "HONDA": Met2 = "Accord"Case "HYUNDAI": Met2 = "Elanta"Case "JEEP": Met2 = "Grand Cherokee LTD"Case "LAND ROVER": Met2 = "Land Rover Discovery"Case "LEXSUS": Met2 = "RX330"Case "MITSUBISHI": Met2 = "Pajero III"Case "NISSAN": Met2 = "Primera(1.8)"Case "PEUGEOT": Met2 = "307 XR"Case "PORSCHE": Met2 = "Cayenne Turbo"Case "RENAULT": Met2 = "Laguna II"End SelectEnd Function' определить стоимость автомобиля в долларах СШАPublic Function Met3()Select Case firmaCase "AUDI": Met3 = "41500"Case "CITROEN": Met3 = "20100"Case "FORD": Met3 = "12430"Case "HONDA": Met3 = "33900"Case "HYUNDAI": Met3 = "13790"Case "JEEP": Met3 = "41690"Case "LAND ROVER": Met3 = "40850"Case "LEXSUS": Met3 = "65500"Case "MITSUBISHI": Met3 = "56640"Case "NISSAN": Met3 = "25100"Case "PEUGEOT": Met3 = "13808"Case "PORSCHE": Met3 = "140500"Case "RENAULT": Met3 = "22900"End SelectEnd FunctionPublic Function Met4()' при выборе данных из списка ComboBox с именем Combo2 ' (после щелчка на кнопке "OК") определяется номер элемента массива' PictureBox, соответствующий выбранной фирме-изготовителю и' на экран позднее выводится соответствующая фотография' и/или технические характеристики автомобиляSelect Case firmaCase "AUDI": Met4 = "0"Case "CITROEN": Met4 = "1"Case "FORD": Met4 = "2"Case "HONDA": Met4 = "3"Case "HYUNDAI": Met4 = "4"Case "JEEP": Met4 = "5"Case "LAND ROVER": Met4 = "6"Case "LEXSUS": Met4 = "7"Case "MITSUBISHI": Met4 = "8"Case "NISSAN": Met4 = "9"Case "PEUGEOT": Met4 = "10"Case "PORSCHE": Met4 = "11"Case "RENAULT": Met4 = "12"End SelectEnd Function' процедура Property Let используется для задания значения свойства, ' Property Get - для считывания значения свойстваPublic Property Get varian() As StringSelect Case varCase Is = 0: varian = "pict"Case Is = 1: varian = "texn"Case Is = 2: varian = "all"End SelectEnd PropertyPublic Property Let varian(ByVal vNewValue As String)Select Case vNewValueCase "изображение": var = 0Case "технические параметры": var = 1Case Else: var = 2End SelectEnd Property ‘////////////////////////////////область проекта Form1/////////////////////////////Dim av As Class1 ' av - экземпляр классаDim v As String Dim i As Integer, j As IntegerPrivate Sub Combo1_Click()' сделать невидимыми элементы управления Label и Picture ' (формирующие фотографии, технические характеристики, фирму, ' марку и стоимость), для того, чтобы впоследствии на форму ' выводились только те из них, которые определяет своими ' действиями покупательLabel5.Visible = FalseFor i = 0 To 12Picture1(i).Visible = FalsePicture2(i).Visible = FalseNextDim ot As String ' переменная для хранения сообщения программыav.firma = Combo1.Text ' значение поля firma объекта av взять из ' списка ComboBox с именем Combo1av.avto = Option1(0).Value ' значение поля avto объекта av взять' из поля массива OptionButton If av.Met1 = True Thenot = " " & CStr(av.firma) & vbCrLf: ot = ot & " " & vbCrLfot = ot & " модель " & CStr(av.model) & vbCrLf: ot = ot & " " & vbCrLfot = ot & " цена в $ " & CStr(av.stoim) & vbCrLf: ot = ot & " " & vbCrLfot = ot & "Для получения более полной информации обращайтесь_по телефону 7077888"MsgBox Title:="Мы можем предложить", Prompt:=otElseLabel5.Visible = FalsePicture1(Val(av.pict)).Visible = False ' аргумент Picture1: (av.pict) ' определяет индекс элемента массива PictureBoxot = "Приносим свои извинения, мы даем информацию для желающих_купить автомобиль"MsgBox Title:="Автосалон START", Prompt:=otEnd IfEnd SubPrivate Sub Combo2_Click()av.varian = Combo2.Text ' см. процедуру Property Let. Присваиваем ' свойству varian значение выбранные из списка ComboBox с именем Combo2End SubPrivate Sub Command1_Click()Label5.Visible = FalseLabel5.Caption = ""For i = 0 To 12Picture1(i).Visible = FalsePicture2(i).Visible = FalseNext iv = av.varian ' см. процедуру Property Get. Переменной v присваиваем ' значение свойства varian объекта avav.avto = Option1(0).ValueIf av.Met1 = True ThenSelect Case vCase "pict"Picture1(Val(av.pict)).Visible = TrueCase "texn"Picture2(Val(av.pict)).Visible = True ' технические характеристики' хранятся как изображения в соответствующих элементах' массива PictureBox2Case "all"Picture1(Val(av.pict)).Visible = TruePicture2(Val(av.pict)).Visible = TrueLabel5.Visible = TrueLabel5.Caption = CStr(av.firma) & " " & CStr(av.model) & _vbCrLf & "цена в $ " & CStr(av.stoim)End SelectElsePicture1(Val(av.pict)).Visible = FalsePicture2(Val(av.pict)).Visible = False MsgBox Title:="Автосалон START", Prompt:="Приносим свои_извинения, мы даем информацию для желающих купить автомобиль"End IfEnd SubPrivate Sub Command2_Click()MsgBox Title:="Автосалон START", Prompt: = "Мы всегда рады помочь!_ Будем рады новой встрече!"End ' выход из программы после сообщения MsgBox.End SubPrivate Sub Form_Load()Set av = New Class1 ' описание объектной переменной дано выше' заполнение списка ComboBox с именем Combo1 названиями фирмCombo1.AddItem "AUDI"Combo1.AddItem "CITROEN"Combo1.AddItem "FORD"Combo1.AddItem "HONDA"Combo1.AddItem "HYUNDAI"Combo1.AddItem "JEEP"Combo1.AddItem "LAND ROVER"Combo1.AddItem "LEXSUS"Combo1.AddItem "MITSUBISHI"Combo1.AddItem "NISSAN"Combo1.AddItem "PEUGEOT"Combo1.AddItem "PORSCHE"' заполнение списка ComboBox с именем Combo2 предложениями для ' выбора данных в процедурах Property Get и Property LetCombo2.AddItem "изображение"Combo2.AddItem "технические параметры"Combo2.AddItem "все данные"End SubPrivate Sub Form_Unload(Cancel As Integer)Set av = Nothing ' удалить объект из памятиEnd Sub

Лекция 10. Проблемы создания искусственного интеллекта (ИИ):

· терминология

· философское оправдание проблемы

· три закона робототехники

Термин интеллект (intelligence) происходит от латинского intellectus, что означает "ум, рассудок, разум; мыслительные способности человека". Соответственно искусственный интеллект (artificial intelligence) — ИИ (AI) обычно толкуется как свойство автоматических систем брать на себя отдельные функции интеллекта человека, например, выбирать и принимать оптимальные решения на основе ранее полученного опыта и рационального анализа внешних воздействий.

Мы, в нашем курсе, интеллектом будем называть способность мозга решать (интеллектуальные) задачи путем приобретения, запоминания и целенаправленного преобразования знаний в процессе обучения на опыте и адаптации к разнообразным обстоятельствам.

В этом определении под термином "знания" подразумевается не только та информация, которая поступает в мозг через органы чувств. Такого типа знания чрезвычайно важны, но недостаточны для интеллектуальной деятельности. Дело в том, что объекты окружающей нас среды обладают свойством не только воздействовать на органы чувств, но и находиться друг с другом в определенных отношениях. Ясно, что для того, чтобы осуществлять в окружающей среде интеллектуальную деятельность (или хотя бы просто существовать), необходимо иметь в системе знаний модель этого мира. В этой информационной модели окружающей среды реальные объекты, их свойства и отношения между ними не только отображаются и запоминаются, но и, как это отмечено в данном определении интеллекта, могут мысленно "целенаправленно преобразовываться". При этом существенно, что формирование модели внешней среды происходит "в процессе обучения на опыте и адаптации к разнообразным обстоятельствам".

Мы употребили термин "интеллектуальная задача". Чтобы пояснить, чем отличается интеллектуальная задача от просто задачи, необходимо ввести термин "алгоритм" — один из краеугольных терминов кибернетики.

Под алгоритмом понимают точное предписание о выполнении в определенном порядке системы операций для решения любой задачи из некоторого данного класса (множества) задач. Термин "алгоритм" происходит от имени узбекского математика Аль-Хорезми, который еще в IX веке предложил простейшие арифметические алгоритмы. В математике и кибернетике класс задач определенного типа считается решенным, когда для ее решения установлен алгоритм. Нахождение алгоритмов является естественной целью человека при решении им разнообразных классов задач. Отыскание алгоритма для задач некоторого данного типа связано с тонкими и сложными рассуждениями, требующими большой изобретательности и высокой квалификации. Принято считать, что подобного рода деятельность требует участия интеллекта человека. Задачи, связанные с отысканием алгоритма решения класса задач определенного типа, будем называть интеллектуальными.

Что же касается задач, алгоритмы решения которых уже установлены, то, как отмечает известный специалист в области ИИ М. Минский, "излишне приписывать им такое мистическое свойства, как "интеллектуальность"". В самом деле, после того, как такой алгоритм уже найден, процесс решения соответствующих задач становится таким, что его могут в точности выполнить человек, вычислительная машина (должным образом запрограммированная) или робот, не имеющие ни малейшего представления о сущность самой задачи. Требуется только, чтобы лицо, решающее задачу, было способно выполнять те элементарные операции, из которых складывается процесс, и, кроме того, чтобы оно педантично и аккуратно руководствовалось предложенным алгоритмом. Такое лицо, действуя, как говорят в таких случаях, чисто машинально, может успешно решать любую задачу рассматриваемого типа.

Поэтому представляется совершенно естественным исключить из класса интеллектуальных такие задачи, для которых существуют стандартные методы решения. Примерами этих задач могут служить чисто вычислительные задачи: решение системы линейных алгебраических уравнений, численное интегрирование дифференциальных уравнений и т. д. Для решения подобного рода задач имеются стандартные алгоритмы, представляющие собой определенную последовательность элементарных операций, которая может быть легко реализована в виде программы для вычислительной машины. В противоположность этому для широкого класса интеллектуальных задач, таких, как распознавание образов, игра в шахматы, доказательство теорем и т. п., напротив, формальное разбиение процесса поиска решения на отдельные элементарные шаги часто оказывается весьма затруднительным, даже если само их решение несложно.

Таким образом, мы можем перефразировать определение: интеллект — это универсальный сверхалгоритм, который способен создавать алгоритмы решения конкретных задач.

Еще одно интересное замечание: профессия программиста, исходя из наших определений, является одной из самых интеллектуальных, поскольку продуктом деятельности программиста являются программы — алгоритмы в чистом виде. Именно поэтому создание даже элементов ИИ должно очень сильно повысить производительность его труда.

Деятельность мозга (обладающего интеллектом), направленную на решение интеллектуальных задач, мы будем называть мышлением, или интеллектуальной деятельностью. Интеллект и мышление органически связаны с решением таких задач, как доказательство теорем, логический анализ, распознавание ситуаций, планирование поведения, игры и управление в условиях неопределенности. Характерными чертами интеллекта, проявляющимися в процессе решения задач, являются способность к обучению, обобщению, накоплению опыта (знаний и навыков) и адаптации к изменяющимся условиям в процессе решения задач. Благодаря этим качествам интеллекта мозг может решать разнообразные задачи, а также легко перестраиваться с решения одной задачи на другую. Таким образом, мозг, наделенный интеллектом, является универсальным средством решения широкого круга задач (в том числе неформализованных), для которых нет стандартных, заранее известных методов решения.

Следует иметь в виду, что существуют и другие, чисто поведенческие (функциональные) определения. Так, по А. Н. Колмогорову, любая материальная система, с которой можно достаточно долго обсуждать проблемы науки, литературы и искусства, обладает интеллектом. Другим примером поведенческой трактовки интеллекта может служить известное определение А. Тьюринга. Его смысл заключается в следующем. В разных комнатах находится люди и машина. Они не могут видеть друг друга, но имеют возможность обмениваться информацией (например, с помощью электронной почты). Если в процессе диалога между участниками игры людям не удается установить, что один из участников — машина, то такую машину можно считать обладающей интеллектом.

Кстати, интересен план имитации мышления, предложенный А. Тьюрингом. "Пытаясь имитировать интеллект взрослого человека, — пишет Тьюринг, — мы вынуждены много размышлять о том процессе, в результате которого человеческий мозг достиг своего настоящего состояния… Почему бы нам вместо того, чтобы пытаться создать программу, имитирующую интеллект взрослого человека, не попытаться создать программу, которая имитировала бы интеллект ребенка? Ведь если интеллект ребенка получает соответствующее воспитание, он становится интеллектом взрослого человека… Наш расчет состоит в том, что устройство, ему подобное, может быть легко запрограммировано… Таким образом, мы расчленим нашу проблему на две части: на задачу построения "программы-ребенка" и задачу "воспитания" этой программы".

Можно утверждать, что именно этот путь используют практически все системы ИИ. Ведь понятно, что практически невозможно заложить все знания в достаточно сложную систему. Кроме того, только на этом пути проявятся перечисленные выше признаки интеллектуальной деятельности (накопление опыта, адаптация и т. д.).

Имеется, по крайней мере, две точки зрения на то, что следовало бы считать искусственным интеллектом. Первую можно назвать нейробионической. Её сторонники ставят перед собой цель воспроизвести искусственным образом те процессы, которые протекают в мозгу человека, - это путь изучения естественного мозга, выявление способов его работы, создания технических средств для повторения биологических структур и протекающих в них процессов.

Вторая точка зрения, доминирующая в проблеме искусственного интеллекта, может быть названа информационной. Сторонники информационного исхода считают, что основной целью работ в искусственном интеллекте является не построение технического аналога биологической системы, а создание средств для решения задач, традиционно считающихся интеллектуальными.

С проблемой проектирования систем ИИ сложилась ситуация, которая роднит его с коммунизмом, - изучается то, чего еще нет. И если этого не будет в течение ближайших 100 лет, то очень может быть, что эпоха ИИ на этом окончится.

Из сказанного выше вытекает основная философская проблема в области ИИ — возможность или невозможность моделирования мышления человека. В случае если когда-либо будет получен отрицательный ответ на этот вопрос, все остальные вопросы курса не будут иметь ни малейшего смысла.

Утверждения, оправдывающие исследования в области ИИ:

1) Первое доказательство является схоластическим и говорит о непротиворечии ИИ и Библии. По-видимому, даже люди, далекие от религии, знают слова священного писания: "И создал Господь человека по образу и подобию своему …". Исходя из этих слов, мы можем заключить, что, поскольку Господь, во-первых, создал нас, а во-вторых, мы по своей сути подобны ему, то мы вполне можем создать кого-то по образу и подобию человека.

2) Создание нового разума биологическим путем — для человека дело вполне привычное. Наблюдая за детьми, мы видим, что большую часть знаний они приобретают путем обучения, а не получают как заложенную в них заранее. Хотя, данное утверждение и не доказано…

3) То, что раньше казалось вершиной человеческого творчества - игра в шахматы, шашки, распознавание зрительных и звуковых образов, синтез новых технических решений, - на практике оказалось не таким уж сложным делом (теперь работа ведется не на уровне возможности или невозможности реализации перечисленного, а всего лишь на уровне нахождения оптимального алгоритма). Теперь зачастую данные проблемы даже не относят к проблемам ИИ. Есть надежда, что и полное моделирование мышления человека окажется не таким уж сложным делом.

4) С проблемой воспроизведения своего мышления тесно смыкается проблема возможности самовоспроизведения (Джон фон Нейман).

5) Принципиальная возможность автоматизации решения интеллектуальных задач с помощью ЭВМ обеспечивается свойством алгоритмической универсальности. Что же это за свойство? Алгоритмическая универсальность ЭВМ означает, что на них можно программно реализовывать (т. е. представить в виде машинной программы) любые алгоритмы преобразования информации — будь то вычислительные алгоритмы, алгоритмы управления, поиска доказательства теорем или композиций мелодий. При этом мы имеем в виду, что процессы, порождаемые этими алгоритмами, являются потенциально осуществимыми, т. е. что они осуществимы в результате конечного числа элементарных операций. Практическая осуществимость алгоритмов зависит от имеющихся в нашем распоряжении средств, которые могут меняться с развитием техники. Так, в связи с появлением быстродействующих ЭВМ стали практически осуществимыми и такие алгоритмы, которые ранее были только потенциально осуществимыми.

Однако свойство алгоритмической универсальности не ограничивается констатацией того, что для всех известных алгоритмов оказывается возможной их программная реализация на ЭВМ.

Содержание этого свойства имеет и характер прогноза на будущее: всякий раз, когда в будущем какое-либо предписание будет признано алгоритмом, то независимо от того, в какой форме и какими средствами это предписание будет первоначально выражено, его можно будет задать также в виде машинной программы.

Однако не следует думать, что вычислительные машины и роботы могут решать любые задачи. Анализ разнообразных задач привел математиков к замечательному открытию. Было строго доказано существование таких типов задач, для которых невозможен единый эффективный алгоритм, решающий все задачи данного типа; в этом смысле невозможно решение задач такого типа и с помощью вычислительных машин.

Как действует человек в данной ситуации? Один путь заключается в том, что человек методом научного "тыка" расширяет множество доступных для себя элементарных операций (например, создает новые материалы, открывает новые месторождения или типы ядерных реакций). Другим путем является упрощение условий задачи, когда она решается только для определенного подмножества начальных условий.

Философские проблемы создания ИИ: (оправдание цели создания)

Допустим, что человек сумел создать интеллект, превышающий свой собственный (пусть не качеством, так количеством). Что теперь будет с человечеством? Какую роль будет играть человек? Для чего теперь нужен человек? Не станет ли он тупой и жирной свиньей?

И вообще, в принципе, нужен ли, в принципе, ИИ?

1) Самым приемлемым ответом на эти вопросы является концепция "усилителя интеллекта" (УИ). Человек уже давно использует усилители силы (УС), - понятие, во многом аналогичное УИ. В качестве усилителей силы ему служат автомобили, краны, электродвигатели, прессы, пушки, самолеты и многое-многое другое. Основным отличием УИ от УС является наличие воли.

Примеры:

Руководитель использует биологический УИ - группу специалистов с их «белковыми мозгами». Но уже сейчас созданы и неживые УИ - например, мы не могли бы предсказать погоду без компьютеров, а при полетах космических кораблей с самого начала применяются бортовые счетно-решающие устройства («электронные мозги»).

2) Ещё одним убедительным аргументом ответа на вопросы: «А стоит ли вообще создавать ИИ?», «Может, просто закрыть все работы в этой области?», является концепция «безопасности или развития под присмотром». Иными словами, если ИИ возможно создать, то рано или поздно он будет создан. И лучше его создавать под контролем общественности, с тщательной проработкой вопросов безопасности, чем он будет создан лет через 100-150 (если к тому времени человечество еще не уничтожит само себя) каким-нибудь программистом-механиком-самоучкой, использующим достижения современной ему техники. Ведь сегодня, например, любой грамотный инженер, при наличии определенных денежных ресурсов и материалов, может изготовить атомную бомбу.

Три основных закона робототехники (писатель-фантаст Айзек Азимов):

1) Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинен вред.

2) Робот должен повиноваться командам, которые ему дает человек, кроме тех случаев, когда эти команды противоречат первому закону.

3) Робот должен заботиться о своей безопасности, насколько это не противоречит первому и второму закону.

Поскольку предполагается, что нормальный человек не будет наносить вред самому себе и, без особой на то причины, другим, а УИ теперь является частью данного индивидуума (не обязательно имеется в виду физическая общность), то автоматически выполняются все 3 закона роботехники. При этом вопросы безопасности смещаются в область психологии и права, поскольку обученная система не будет делать ничего такого, чего бы не хотел её владелец.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: