What is Algorithm?
A step-by-step problem-solving procedure, especially an
established, recursive computational procedure for solving a problem in a
finite number of steps.
The word “algorithm” comes from the name of a Persian author, Abu Ja’far Mohammed ibn Musa al Khowarizmi (c. 825 A.D.), who wrote a textbook on mathematics.
ALGORITHMS IN REAL
WORLD APPLICATIONS
Encryption
and Code Breaking
Encryption is a method for taking a written document (plaintext) and
transforming it to a unreadable document (cipher text) such that the original
document is somehow recoverable from the cipher text. For example, we can take
this column and replace every occurrence of the letter “e” with the letter “x”.
Now the column would be hard to read, but in a few seconds a reader would
realize what was done, and be able to undo the replacements. Of course, we
could invent a better scheme. Suppose we replace “a” with “p”, “b” with “c” and
so on. The complete list of transpositions can be put into a table and used to
encrypt (forward substitution) as well as decrypt (backward substitution). The
table, is then known as they “key”.
Anyone who has the key can decrypt a document if it is encrypted with the same
key.
On the security front, GAs can be used both to create encryption
for sensitive data as well as to break those codes. Encrypting data, protecting
copyrights and breaking competitors' codes have been important in the computer
world ever since there have been computers, so the competition is intense.
Every time someone adds more complexity to their encryption algorithms, someone
else comes up with a GA that can break the code. It is hoped that one day soon
we will have quantum computers that will be able to generate completely
indecipherable codes. Of course, by then the 'other guys' will have quantum
computers too, so it's a sure bet the spy vs. spy games will go on
indefinitely.
Joke
and Pun Generation
An approach to analysis of humor is classification of
jokes. A further step is an attempt to generate jokes basing on the rules that
underlie classification.
Simple prototypes for computer pun generation were reported
in the early 1990s,[2]
based on a natural language generator program, VINCI. Graeme Ritchie
and Kim Binsted in their
1994 research paper described a computer program, JAPE, designed to generate
question-answer-type puns
from a general, i.e., non-humorous, lexicon.[3]
(The program name is an acronym for "Joke Analysis and Production
Engine".) Some examples produced by JAPE are:
Q: What is the
difference between leaves and a car?
A: One you brush
and rake, the other you rush and brake.
Q: What do you call
a strange market?
A: A bizarre
bazaar.
Since then the approach has been improved, and the
latest report, dated 2007, describes the STANDUP joke generator, implemented in
the Java programming language.[4][5]
The STANDUP generator was tested on children within the framework of analyzing
its usability for language skills development for children with communication
disabilities, e.g., because of cerebral palsy.
(The project name is an acronym for "System To Augment Non-speakers'
Dialog Using Puns" and an allusion to standup comedy.)
Children responded to this "language playground" with enthusiasm, and
showed marked improvement on certain types of language tests.
Among the linguistic applications of GAs - including
a JAPE (automated pun generator) inspired STANDUP program to design
communications strategies for people working with children who suffer
communications disabilities - are GAs that search for jokes and puns. These
come under the heading of "artificial
creativity" and AI, but could prove very useful to class clowns
and wannabe punsters whose public reputations depend upon being funnier than
they actually are. These clever GAs will let you input a word you wish to pun
or a subject you'd like to joke about, and will return a variety of solutions
that just might lead to a lucrative career on the comedy club circuit!
No comments:
Post a Comment