Journal influence
Bookmark
Next issue
Abstract:
Аннотация:
Author: () - | |
Ключевое слово: |
|
Page views: 12723 |
Print version |
Если Вы, дорогой читатель, сформулировали математическое описание задачи, не спешите кодировать ее решение, общаясь с компьютером на одном из традиционных языков программирования. Существуют программные продукты, позволяющие сообщать машине условия задачи на естественном языке. "Эврика!" — воскликнет специалист-непрограммист, познакомившись с подобными программными продуктами. Наверное, именно поэтому один из самых популярных пакетов решения задач на естественном языке, созданный фирмой Borland (той самой, чьи разработки начинаются со слова Turbo: TurboBASlC, TurboPascal, Turbo С, Turbo Prolog), назван Eureka. Рассказ о том, как можно общаться с компьютером при помощи пакета Eureka, начнем не совсем обычно. Теперь по арифметике... Берите доску. Какая следующая задача? Петя плюет на доску и стирает рукавом. Учитель берет задачник и диктует: — "Купец купил 138 арш. черного и синего сукна за 540 руб. Спрашивается, сколько аршин купил он того и другого, если синее стоило 5 руб. за аршин, а черное 3 руб.?" Повторите за дачу. Петя повторяет задачу и тотчас же, ни слова не говоря, начинает делить 540 на 138. — Для чего же это вы делите? Постойте! Впрочем, так... продолжайте. Остаток полу чается? Здесь не может быть остатка. Дайте-ка я разделю! Зиберов делит, получает 3 с остатком и быстро стирает. "Странно... — думает он, ероша волосы и краснея. — Как же она решается? Гм!.. Это задача на неопределенные уравнения, а вовсе не арифметическая..." Учитель глядит в ответы и видит 75 и 63. "Гм!.. странно... Сложить 5 и 3, а потом делить 540 на 8? Так, что ли? Нет, не то". — Решайте же! — говорит он Пете. — Ну, чего думаешь? Задача-то ведь пустя ковая! — говорит Удодов Пете. — Экий ты ду рак, братец! Решите уж вы ему, Егор Алексеич. Егор Алексеич берет в руки грифель и начинает решать. Он заикается, краснеет, бледнеет. — Это задача, собственно говоря, алгебраи ческая, — говорит он. — Ее с иксом и игреком решить можно. Впрочем, можно и так решить. Я вот разделил... понимаете? Теперь вот надо вычесть... понимаете? Или вот что... Решите мне эту задачу сами к завтраму... Подумайте. Петя ехидно улыбается. Удодов тоже улыбается. Оба они понимают замешательство учителя. Ученик VII класса еще пуще конфузится, встает и начинает ходить из угла в угол. — И без алгебры решить можно, — говорит Удодов, протягивая руку к счетам и вздыхая. — Вот, извольте видеть... Он щелкает на счетах, и у него получается 75 и 63, что и нужно было. Фрагмент из миниатюры А.П.Чехова "Репетитор" предваряет наш рассказ по трем причинам: 1. Описанная ситуация часто повторяется и сейчас, только люди стали протягивать руку не к счетам, а к персональному компьютеру. 2. Процесс решения на ЭВМ задачи в среде Eureka во многом напоминает процесс решения задачи Удодовым-отцом: машине достаточно сообщить условия задачи. 3. И современная, и прошлого века методи ка преподавания математики, физики, химии и других наук ориентирована, как правило, не на постановку задачи, а на решение кем-то уже сформулированных проблем. Компьютеризация школы, базирующаяся на преподавании таких языков программирования, как BASIC, Pascal и. др. в качестве основ информатики, фактически ничего не меняет в этом положении вещей. Среды общения с ЭВМ на почти естественном для человека языке,к которым относится Eure ka, позволяют уделять больше внимания поста новке проблемы, математическому моделиро ванию реальных ситуаций, а не методикам решения надуманных задач. Рисунок На рис.1 помещена твердая копия (hardcopy) экрана с решением в среде Eureka задачи о купце и сукне. При работе в среде Eureka экран разбивается на 5 окон: — окно главного меню (Eureka: The Solver) с названиями восьми "блюд": работа с файлами (File), ввод через клавиатуру и редактирование задачи (Edit), решение задачи (Solve), специаль ные команды (Commands), создание отчетов о решении задачи (Report), построение графиков (Graph), дополнительные возможности (Op tions) и работа с окнами дисплея (Window); — окно ввода через клавиатуру и редактирова ния (Edit), где в данный момент записаны усло вия задачи Удодова; точка с запятой (;) озна чает начало комментария, который может со держать и буквы кириллицы; в тексте же зада чи допустимы только латинские (точнее, анг лийские) или греческие буквы; сама задача про ста — это система двух линейных алгебраичес ких уравнений с двумя неизвестными: black (метраж черного сукна) и blue (синего); — окно с решением задачи (Solution), куда машина записывает переменные (Variables) и их найденные значения (Values), удовлетворяющие условиям поставленной задачи; — окно с проверкой (Verify) результатов ре шения задачи; для этой цели по команде чело века машина подставляет в формулы окна Edit значения переменных из окна Solution и отме чает разницу (difference) между левыми и правыми частями; — окно с отчетом (Report) о решении зада чи, куда машина по команде человека может записать дату и время решения задачи, имя и место хранения на диске файла с ее условием, само условие, решение задачи и его проверку; отчет, кроме того, можно отпечатать на прин тере или записать на магнитном слое диска. В нижней части экрана отмечены "нагрузки" функциональных клавиш клавиатуры. Так, на пример, нажав клавишу F1, пользователь в но вом появившемся на экране окне получит до полнительную информацию о работе в среде Eureka. После ее прочтения нужно нажать кла вишу Esc, чтобы восстановить рабочие окна. В окнах Report и Verify уместилась только часть информации, но возможность полного ее просмотра активизацией через главное меню нужного окна с последующим его раскрытием (F5-Zoom) предусмотрена. В данный момент активизировано (подготовлено к раскрытию) окно Report, о чем свидетельствует его двойная рамка. Текст отчета при этом можно отредактировать, а потом отпечатать на бумаге, что и было сделано с отчетами {например, рнс.2) о решении задач, которыми будут далее проиллюстрированы некоторые особенности работы в среде Eureka. Каждый из этих отчетов разбит рядами звездочек на три зоны: заголовок, условие н решение. ПРИМЕР 1. На скотном дворе бегают куры и кролики, на всех 12 голов и 8 ног. Спрашивается, сколько кур и кроликов все это имеет. Условие этой простенькой задачи, записанное в среде Eureka (рис. 2), почти совпадает с ее описанием. Оно только дополнено двумя выражениями по числу ног и голов у рассматриваемой живности. Эти выражения составляют, как и в задаче Удодова, систему двух линейных алгебраических уравнений. Технология решения задачи в среде Eureka обычно такая. Включается компьютер, запускается программа с именем eureka.exe в пакете ЕКА, после этого на экране появляются окна среды Eureka (рис. 3). Нижние четыре окна при этом будут пустыми, а первое "блюдо" меню (File) выделено фоном. Этот фон с помощью курсорных клавиш можно передвигать вдоль меню. Выбор нужного режима осуществляется нажатием клавиши Enter (Ввод"). Пои этом мо- жет появиться новое меню (подменю), как это показано на рис.3. Среда Eureka предоставляет пользователю следующие услуги в подменю File: загрузка (Load) с диска в окно Edit старой задачи (в центральном окне рис.3 представлены имена пяти задач, хранящихся на диске С в директории EKA\OCHKOV), очистка окон перед решением новой (New) задачи, сохранение (Save) задачи на диске, запись (Write to...) с новым именем задачи на диске, просмотр содержимого директорий (Directory) дисков, смена (Change dir) текущей директории рабочего диска, переименование (Rename) файлов на диске, временный выход из среды Eureka в операционную систему (OS shell) и выход (Quit) из среды Eureka. Подобные подменю есть у всех режимов главного меню, кроме Edit и Solve. Выбор режима Edit (перемещение пользователем фона на это слово в главном меню и нажатие клавиши Enter) приводит не к появлению нового подменю, а к активизации окна Edit, где после этого можно записать условие задачи (см. рис. 1). После того, как задача будет сформулирована, нажимается клавиша Esc для входа в главное меню, где дается команда Solve, заполняющая решением задачи окно Solution. Так же заполняются окна Verify и Report.Выбор нужного режима из меню можно осуществить и другим способом, нажимая одновременно управляющую клавишу (CTRL) и клавишу с заглавной буквой названия режима. При наличии "мыши" для выбора нужного режима курсор "мыши" устанавливается на название режима и нажимается левая кнопка. ПРИМЕР 2. Требуется из круглой жестянки изготовить пожарное ведро максимального объема. Технология изготовления ведра такая: из заготовки вырезается и выбрасывается сектор, затем полученная таким образом выкройка сворачивается в конус, а шов проваривается (клеится, паяется). Поставленную оптимизационную задачу можно, конечно, решить аналитически. Для этого необходимо вывести зависимость, связывающую объем ведра-конуса (функция) и угол сектора-вырезки (аргумент). Затем нужно взять первую производную от этого выражения и найти ее корень. Не обойтись тут и без второй производной, если нужно удостовериться, что найденная точка (угол вырезки) отмечает максимум, а не минимум или перегиб. Жестянщик, который делает пожарное ведро, скорее всего незнаком с теорией математического анализа функции одной действительной переменной, но в среде Eureka он успешно справится с . задачей (рис. 4). Пусть диаметр заготовки равен одному метру. Этого в условии задачи можно и не оговаривать, т.к., во-первых, значение оптимального угла вырезки не зависит от диаметра заготовки, а во-вторых, переменной D по умолчанию машина сама присвоила бы единичное значение. Это одна из особенностей среды Eureka, отличающая ее от языка BASIC, где переменные по умолчанию обнуляются. Далее устанавливается допустимый диапазон изменения угла вырезки, чтобы машина не "залезла" в отрицательную область или в область больших углов {вспомним синусоиду с бесчисленным множеством корней, максимумов и минимумов). Два последующих выражения вытекают из несложной геометрии круга и конуса: длина дуги выкройки становится длиной окружности основания конуса, а высота конуса, радиус его основания и радиус заготовки связаны теоремой Пифагора. Число тг (3.14) в первом выражении можно и сократить, но тогда геометрический смысл этого выражения будет пониматься с трудом. Если определены параметры конуса (диаметр основания из первого выражения, а высота из второго), то можно рассчитать его объем V = V(a) и поручить машине максимизировать (max) эту величину, варьируя значение угла сектора-вы резки. Из последнего выражения в условиях задачи (оценка угла в днище ведра через тангенс) видно, что Eureka оперирует углами в радианах. Максимизация пожарного ведра превращает его в тазик. Следующий пример — тоже из области оптимизации, но связан с более серьезными проблемами, решение которых в какой-то мере поможет владельцу окупить огромные затраты (50-100 тыс. руб.) на приобретение персонального компьютера. Программное обеспечение Eureka в этих затратах не фигурирует, т.к. его у нас, как правило, не покупают, а друг у друга переписывают без разрешения разработчика. ПРИМЕР 3. Транспортная задача, связанная с оптимизацией перевозки грузов. В городе N имеется два продовольственных склада и две пекарни. Необходимо ежедневно с первого склада вывозить 50, а со второго 70 тонн муки. Первая пекарня при этом получает 40, а вторая — 80 тонн. Спрашивается, как нужно спланировать работу транспорта (если известны затраты на перевозку тонны муки со складов на пекарни), чтобы сэкономить денег. На рис. 5 представлен отчет о решении этой задачи в среде Eureka: минимум затрат на перевозку муки составляет 134 рубля а сутки. Как ни странно, но на первую пекарню со второго склада мука не завозится (МЗ = 0), хотя такие перевозки самые дешевые — 80 копеек за тонну. Спасая горящий месячный, квартальный или годовой план, этим парадоксом может воспользоваться плановик автокомбината, осуществляющего перевозку муки. Для этого необходимо слово MIN заменить иа слово МАХ. В этом случае затраты на перевозку увеличатся до 142 рублей в сутки, хотя внешне все будет выглядеть нормально: М1 = 0, М2 = 50, МЗ = 40, М4 = 30 — на первую пекарню мука завозится только со второго склада. Плановик автокомбината может снять табу типа Ml >0 и этим благословить встречные перевозки — среда Eureka это допускает. Еще одна "экологическая ниша" для среды Eureka и ей подобных — это сфера обучения (вспомним о чеховском начале нашего рассказа). Здесь очень пригодятся графические возможности среды Eureka. На рис. 6 показано еще одно окно (Plot), в котором пользователь может строить различные графические объекты, используя встроенные функции или выражения из окна Edit. Так можно гораздо лучше понять сущность решаемой задачи (обучение), подобрать приемлемые начальные условия (решение прикладных задач), красиво оформить отчет о проделанной расчетной работе и т.д. |
Permanent link: http://swsys.ru/index.php?id=1316&lang=en&page=article |
Print version |
The article was published in issue no. № 1, 1991 |
Perhaps, you might be interested in the following articles of similar topics:
- Правовая охрана программного обеспечения с точки зрения международного сотрудничества стран-членов СЭВ
- Интеллектуальные хранилища данных в системах государственного управления
- Механизм контроля качества программного обеспечения оптико-электронных систем контроля
- Прогнозирование эффективности систем хранения информации
- Построение тестов для базовых функций встраиваемых операционных систем
Back to the list of articles