Sabtu, 06 Februari 2010

Cinta Andra

"Novel Inspirasi"

Pagi ini dingin sekali dan terasa berat untuk membuka mata, bangun dari tempat tidur dan pergi kuliah. Hari ini diandra harus pergi pagi-pagi karena harus bertemu dengan dosen untuk bimbingan skripsinya.
"ndra....ayo bangun!ini sudah jam 5, katanya mw katemu dosenmu?"
"Iya ma, aku bangun...." tapi justru menarik selimut.

"Ma aku berangkat ya!" sambil mulai melangkahkan kakinya keluar rumah.
"Iya, hati-hati ya nak!" Jawab ibunya yang sebenarnya agak khawatir tentang anaknya yang belum selesai skripsinya, ditengah teman-teman lainnya sudah lulus.

Pagi ini dosennya, masih saja melakukan revisi-revisi setelah berpuluh-puluh kali, sampai-sampai rasanya sudah bosan apalagi yang harus direvisi padahal dibaca secara seksama pun tidak. Hal itu pun yang dirasakan oleh seorang Cinta Diandra saat ini. Untuk menghilangkan rasa kecewanya hari ini, andra begitu dia akrab disapa, dia pergi ke toko buku untuk membeli sebuah novel yang dia inginkan sudah dari 3 bulan yang lalu, namun baru sempat hari ini dia membelinya.

....................................................................................
"Hai mamaku yang cantik, anakmu pulang!"
"hai ndra, gimana hari ini nak?" ibunya mulai menanyakan skripsinya yang tentunya agak sedikit membuat andra malas untuk menjawabnya. tapi dia mencobanya.
"mmmmm...belum ma. sabar aja ya ma!" sambil mengambil langkah untuk langsung pergi ke kamarnya, membaca novel barunya.

Halaman demi halaman mulai dibacanya dan andra pun terhanyut dalam cerita dalam novel itu...Andra mulai mengingat sosok seseorang yang dia tahu dia pernah menyimpan rasa itu. Pikirannya mulai kembali pada kisah hidupnya sekitar 7 tahun yang lalu.

"Hei yan, kita latihan yuk buat lomba nyanyi lagu daerah buat karang taruna per RT dalam rangka 17 agustusan nih!" Nando sangat antusias memberitahu teman-temannya, secara dia adalah ketua karang taruna di RT Andra.
"wah..kapan-kapan?" Yanu juga antusias ternyata. "Ajakin anak-anak yang lain yuk biar banyakan!" kalo perlu se RT juga gx papa deh!"

"2 bulan lagi lah!Sip sekarang kita samperin aja yuk ke rumah mereka, gimana?"
"Ok!"
Nando dan Yanu mulai mengumpulkan teman mereka, kira-kira yang terkumpul adalah 10 orang, 5 cewek dan 5 cowok. Mereka pun mulai membagi tugas Yanu memainkan bongo dan Aray memainkan gitar. Andra tentu sebagai penyanyinya bersama yang lainnya karena dia tidak bisa memainkan alat musik dan sebenarnya suaranya pun tidak bagus, hanya bermodalkan ingin tampil dan keberanian. Menurut andra itulah yang penting.

Latihan dilaksanakan setiap hari sabtu dan minggu. Mereka semangat sekali untuk latihan, karena selain meraih gelar juara tingkat RW di perumahan, mereka juga bisa ngumpul-ngumpul.

"Lu hasil UANnya berapa kemaren?"
Andra celingak-celinguk, mencari tahu apa ada yang berbicara dengannya saat itu. Di sebelahnya ada Aray yang sedang memainkan gitarnya pelan.
"lu ngomong sama gue, ray!"
"Iya!" jawabnya dingin.
"oooh...gw 29 koma berapa gitu lupa, lo?"
Ketika andra, Aray justru pergi meninggalkannya tanpa menjawab apa-apa. Setidaknya itulah kenangan Andra tentang Aray, "Nggak Jelas".

Aray bukan anak yang gampang untuk akrab, dia memang anak yang tidak banyak bicara, kecuali pada teman-teman akrabnya.

"Baik, teman-teman besok kita latihan ya! di rumah Yanu jam 7. Jangan pada telat ya biar nggak kemaleman!" Ujar Nando dengan semangat.

tok...tok...tok...!!!
"ndra, ayo makan dulu nak! udah jam 7 nih!"
"Ya ampun, iya ma, iya!" sambil membuka pintu kamarnya dan menuju meja makan. Tiba-tiba dari arah lantai dua terdengar suara langkah kaki yang serba cepat menuju ke bawah dan itulah adiknya Anton. Andra langsung mengambil langkah seribu juga.

"yeee...kakak duluan!" Bangga menjadi juara 1 yang duduk di meja makan karena siapa yang telat akan mendapat giliran untuk mencuci piring.

"akh, awas ya k! besok pasti ade yang menang!" dengan wajah yang kesal karena kalah cepat dan terlebih harus cuci piring.

"Kamu ngapain sih ndra kok lama benar di kamar!" Tanya ibu penasaran.
"Nggak ma lagi baca novel baru tadi baru beli!" dengan suara yang agak tidak jelas karena makanan yang dikunyahnya.


.....................................................................................

Kali ini andra memilih teras depan rumahnya menjadi sasaran tempat untuk membaca novel inspirasinya. Kembali halaman-halaman mulai dibacanya dia kembali teringat akan kisah tentang aray dan kelompok penyanyi lagu karang tarunanya yang sekarang entah dimana mereka. Ada yang sudah bekerja, kuliah diluar kota, mungkin juga kalau sudah ada yang menikah.

Andra berjalan sendirian ke rumah Yanu untuk latihan hari ini. Tiba-tiba dari arah belakang ada aray, yanu, dan Nando yang sedang mengendarai motor mereka, sepertinya mereka habis melakukan perjalanan yang cukup jauh, tapi hanya mereka yang tahu.

Setelah tiba dirumah Yanu, hanya andra cewek satu-satunya yang paling rajin datang sedang yang lain entah pergi kemana. Nando dan Aray pulang dulu untuk mandi dan sebagainya. Andra menunggu sendirian di teras depan rumah Yanu. Tiba-tiba ada derap langkah dari arah dalam rumah.

"ndra, nih lu minum dulu. Gue mandi dulu ya. kalo ada yang lain suruh pada masuk aja!"
"iya yan."
Andra mulai bt, kenapa hari ini tidak ada yang datang, apa karena cuaca yang mau hujan atau entahlah.

Tiba-tiba Aray yang tadinya menaiki motor bebek kini berganti vespa dengan suara berisik datang.

"Yang lainnya mana?"
"nggak tahu, daritadi gue tunggu belum pada muncul batang hidungnya!"
"Yanu?"
"mandi katanya"

Ada sekitar setengah jam mereka berdua didepan teras rumah Yanu tanpa bicara setelah percakapan yang sepenggal itu. Andra yang diam karena mulai bete nggak ada yang datang, termasuk nando sang ketua karang taruna yang belum juga hadir, ditambah lagi Yanu yang nggak selesai-selesai mandinya. "Huh.." melepaskan kekesalannya pelan.

Sedang Aray, memang bukan orang yang cakap dalam memulai percakapan baru dan lebih baik memilih diam sambil tetap merasakan hadirnya andra disampingnya. Dalam hatinya andra cukup spesial, dia cewek yang jadi dirinya sendiri. Dan yang paling jadi dirinya sendiri. Dan andra lah yang membuat dia latihan hari ini walaupun sebenarnya dia sudah lelah dalam perjalanannya bersama yanu dan nando.

Selasa, 14 Oktober 2008

Transaction processing system (TPS)

A Transaction Processing System To be considered a transaction processing system the computer must pass the ACID test.
From a technical perspective, a Transaction Processing System (or Transaction Processing Monitor) monitors transaction programs, a special kind of programs. The essence of a transaction program is that it manages data that must be left in a consistent state. E.g. if an electronic payment is made, the amount must be either both withdrawn from one account and added to the other, or none at all. In case of a failure preventing transaction completion, the partially executed transaction must be 'rolled back' by the TPS. While this type of integrity must be provided also for batch transaction processing, it is particularly important for online processing: if e.g. an airline seat reservation system is accessed by multiple operators, after an empty seat inquiry, the seat reservation data must be locked until the reservation is made, otherwise another user may get the impression a seat is still free while it is actually being booked at the time. Without proper transaction monitoring, double bookings may occur. Other transaction monitor functions include deadlock detection and resolution (deadlocks may be inevitable in certain cases of cross-dependence on data), and transaction logging (in 'journals') for 'forward recovery' in case of massive failures.
Transaction Processing is not limited to application programs. The 'journaled file system' provided with IBMs AIX Unix operating system employs similar techniques to maintain file system integrity, including a journal.
Types of Transaction Processing Systems

[edit]Contrasted with batch processing
Batch processing is not transaction processing. Batch processing involves processing several transactions at the same time, and the results of each transaction are not immediately available when the transaction is being entered.[1]it has a time delay
[edit]Real-time and batch processing
There are a number of differences between real-time and batch processing. These are outlined below:
Each transaction in real-time processing is unique. It is not part of a group of transactions, even though those transactions are processed in the same manner. Transactions in real-time processing are stand-alone both in the entry to the system and also in the handling of output.
Real-time processing requires the master file to be available more often for updating and reference than batch processing. The database is not accessible all of the time for batch processing.
Real-time processing has fewer errors than batch processing, as transaction data is validated and entered immediately. With batch processing, the data is organised and stored before the master file is updated. Errors can occur during these steps.
Infrequent errors may occur in real-time processing; however, they are often tolerated. It is not practical to shut down the system for infrequent errors.
More computer operators are required in real-time processing, as the operations are not centralised. It is more difficult to maintain a real-time processing system than a batch processing system.
[edit]Features of Transaction Processing Systems

[edit]Rapid Response
Fast performance with a rapid response time is critical. Businesses cannot afford to have customers waiting for a TPS to respond, the turnaround time from the input of the transaction to the production for the output must be a few seconds or less.
[edit]Reliability
Many organizations rely heavily on their TPS; a breakdown will disrupt operations or even stop the business. For a TPS to be effective its failure rate must be very low. If a TPS does fail, then quick and accurate recovery must be possible. This makes well–designed backup and recovery procedures essential.
[edit]Inflexibility
A TPS wants every transaction to be processed in the same way regardless of the user, the customer or the time for day. If a TPS were flexible, there would be too many opportunities for non-standard operations, for example, a commercial airline needs to consistently accept airline reservations from a range of travel agents, accepting different transactions data from different travel agents would be a problem.
[edit]Controlled processing
The processing in a TPS must support an organization's operations. For example if an organization allocates roles and responsibilities to particular employees, then the TPS should enforce and maintain this requirement.
[edit]ACID Test Properties: First Definition

[edit]Atomicity
A transaction’s changes to the state are atomic: either all happen or none happen. These changes include database changes, messages, and actions on transducers.[2]
Atomicity ensures that all of the steps involved in a transaction are completed successfully as a group. This means that if one step fails then no other steps after the failed step will be completed.
[edit]Consistency
A transaction is a correct transformation of the state. The actions taken as a group do not violate any of the integrity constraints associated with the state. This requires that the transaction be a correct program![2]
[edit]Isolation
Even though transactions execute concurrently, it appears to each transaction T, that others executed either before T or after T, but not both.[2]
[edit]Durability
Once a transaction completes successfully (commits), its changes to the state survive failures.[2]
[edit]Concurrency
Ensures that two users cannot change the same data at the same time. That is, one user cannot change a piece of data before another user has finished with it. For example, if an airliine ticket agent starts to reserve the last seat on a flight, then another agent cannot tell another passenger that a seat is available.
[edit]Storing and Retrieving

Storing and retrieving information from a TPS must be efficient and effective. The data are stored in warehouses or other databases, the system must be well designed for its backup and recovery procedures.
[edit]Databases and files
The storage and retrieval of data must be accurate as it is used many times throughout the day. A database is a collection of data neatly organized, which stores the accounting and operational records in the database. Databases are always protective of their delicate data, so they usually have a restricted view of certain data. Databases are designed using hierarchical, network or relational structures; each structure is effective in its own sense.
Hierarchical structure: organizes data in a series of levels, hence why it is called hierarchal. Its top to bottom like structure consists of nodes and branches; each child node has branches and is only linked to one higher level parent node.
Network structure: Similar to hierarchical, network structures also organizes data using nodes and branches. But, unlike hierarchical, each child node can be linked to multiple, higher parent nodes.
Relational structure: Unlike network and hierarchical, a relational database organizes its data in a series of related tables. This gives flexibility as relationships between the tables are built.

A Hierarchical Structure.

A Network Structure.

A Relational Structure.

The following features are included in real time transaction processing systems:
Good Data Placement: The database should be designed to access patterns of data from many simultaneous users.
Short transactions: Short transactions enables quick processing. This avoids concurrency and paces the systems.
Real-time backup: Backup should be scheduled between low times of activity to prevent lag of the server.
High normalization: This lowers redundant information to increase the speed and improve concurrency, this also improves backups.
Archiving of historical data: Uncommonly used data are moved into other databases or backed up tables. This keeps tables small and also improves backup times.
Good hardware configuration: Hardware must be able to handle many users and provide quick response times.
In a TPS, there are 5 different types of files, the TPS uses the files to store and organize its transaction data:
Master file: Contains information about an organization’s business situation. Most transactions and databases are stored in the master file.
Transaction file: It is the collection of transaction records. It helps to update the master file and also serves as audit trails and transaction history.
Report file: Contains data that has been formatted for presentation to a user.
Work file: temporary files in the system used during the processing.
Program file: Contains the instructions for the processing of data.
[edit]Data Warehouse
Main Article: Data Warehouse
A data warehouse is a database that collects information from different sources. When it's gathered in real-time transactions it can be used for analysis efficiently if it's stored in a data warehouse. It provides data that are consolidated, subject-orientated, historical and read-only:
Consolidated: Data are organised with consistent naming conventions, measurements, attributes and semantics. It allows data from a data warehouse from across the organization to be effectively used in a consistent manner.
Subject-orientated: Large amounts of data are stored across an organization, some data could be irrelevant for reports and makes querying the data difficult. It organizes only key business information from operational sources so that it's available for analysis.
Historical: Real-time TPS represent the current value at any time, an example could be stock levels. If past data are kept, querying the database could return a different response. It stores series of snapshots for an organisation's operational data generated over a period of time.
Read-only: Once data are moved into a data warehouse, it becomes read-only, unless it was incorrect. Since it represents a snapshot of a certain time, it must never be updated. Only operations which occur in a data warehouse are loading and querying data.
[edit]Backup Procedures


A Dataflow Diagram of backup and recovery procedures.
Since business organizations have become very dependent on TPSs, a breakdown in their TPS may stop the business' regular routines and thus stopping its operation for a certain amount of time. In order to prevent data loss and minimize disruptions when a TPS breaks down a well-designed backup and recovery procedure is put into use. The recovery process can rebuild the system when it goes down.
[edit]Recovery Process
A TPS may fail for many reasons. These reasons could include a system failure, human errors, hardware failure, incorrect or invalid data, computer viruses, software application errors or natural disasters. As it's not possible to prevent all TPS failures, a TPS must be able to cope with failures. The TPS must be able to detect and correct errors when they occur. A TPS will go through a recovery of the database to cope when the system fails, it involves the backup, journal, checkpoint, and recovery manager:
Journal: A journal maintains an audit trail of transactions and database changes. Transaction logs and Database change logs are used, a transaction log records all the essential data for each transactions, including data values, time of transaction and terminal number. A database change log contains before and after copies of records that have been modified by transactions.
Checkpoint: A checkpoint record contains necessary information to restart the system. These should be taken frequently, such as several times an hour. It is possible to resume processing from the most-recent checkpoint when a failure occurs with only a few minutes of processing work that needs to be repeated.
Recovery Manager: A recovery manager is a program which restores the database to a correct condition which can restart the transaction processing.
Depending on how the system failed, there can be two different recovery procedures used. Generally, the procedures involves restoring data that has been collected from a backup device and then running the transaction processing again. Two types of recovery are backward recovery and forward recovery:
Backward recovery: used to undo unwanted changes to the database. It reverses the changes made by transactions which have been aborted. It involves the logic of reprocessing each transaction, which is very time-consuming.
Forward recovery: it starts with a backup copy of the database. The transaction will then reprocess according to the transaction journal that occurred between the time the backup was made and the present time. It's much faster and more accurate.
See also: Checkpoint restart
[edit]Types of Back-up Procedures
There are two main types of Back-up Procedures: Grandfather-father-son and Partial backups:
[edit]Grandfather-Father-Son
This procedure refers to at least three generations of backup master files. thus, the most recent backup is the son, the oldest backup is the grandfather. It's commonly used for a batch transaction processing system with a magnetic tape. If the system fails during a batch run, the master file is recreated by using the son backup and then restarting the batch. However if the son backup fails, is corrupted or destroyed, then the next generation up backup (father) is required. Likewise, if that fails, then the next generation up backup (grandfather) is required. Of course the older the generation, the more the data may be out of date. Organizations can have up to twenty generations of backup.^^
[edit]Partial Backups
This only occurs when parts of the master file are backed up. The master file is usually backed up to magnetic tape at regular times, this could be daily, weekly or monthly. Completed transactions since the last backup are stored separately and are called journals, or journal files. The master file can be recreated from the journal files on the backup tape if the system is to fail.
[edit]Updating in a Batch
This is used when transactions are recorded on paper (such as bills and invoices) or when it's being stored on a magnetic tape. Transactions will be collected and updated as a batch at when it's convenient or economical to process them. Historically, this was the most common method as the information technology did not exist to allow real-time processing.
The two stages in batch processing are:
Collecting and storage of the transaction data into a transaction file - this involves sorting the data into sequential order.
Processing the data by updating the master file - which can be difficult, this may involve data additions, updates and deletions that may require to happen in a certain order. If an error occurs, then the entire batch fails.
Updating in batch requires sequential access - since it uses a magnetic tape this is the only way to access data. A batch will start at the beginning of the tape, then reading it from the order it was stored; it's very time-consuming to locate specific transactions.
The information technology used includes a secondary storage medium which can store large quantities of data inexpensively (thus the common choice of a magnetic tape). The software used to collect data does not have to be online - it doesn't even need a user interface.
[edit]Updating in Real-Time
This is the immediate processing of data. It provides instant confirmation of a transaction. This involves a large amount of users who are simultaneously performing transactions to change data. Because of advances in technology (such as the increase in the speed of data transmission and larger bandwidth), real-time updating is now possible.
Steps in a real-time update involve the sending of a transaction data to an online database in a master file. The person providing information is usually able to help with error correction and receives confirmation of the transaction completion.
Updating in real-time uses direct access of data. This occurs when data are accessed without accessing previous data items. The storage device stores data in a particular location based on a mathematical procedure. This will then be calculated to find an approximate location of the data. If data are not found at this location, it will search through successive locations until it's found.
The information technology used could be a secondary storage medium that can store large amounts of data and provide quick access (thus the common choice of a magnetic disk). It requires a user-friendly interface as it's important for rapid response time.
Reversation Systems Reversation systems are used for any type of buisness where a service or a product is set aside for a customer to use for a future time.
http://en.wikipedia.org/wiki/Transaction_Processing_System

Enterprise resource planning (ERP)

Enterprise resource planning (ERP) is the planning of how business resources (materials, employees, customers etc.) are acquired and moved from one state to another.
An ERP system supports most of the business system that maintains in a single database the data needed for a variety of business functions such as Manufacturing, Supply Chain Management, Financials, Projects, Human Resources and Customer Relationship Management.
An ERP system is based on a common database and a modular software design. The common database can allow every department of a business to store and retrieve information in real-time. The information should be reliable, accessible, and easily shared. The modular software design should mean a business can select the modules they need, mix and match modules from different vendors, and add new modules of their own to improve business performance.
Ideally, the data for the various business functions are integrated. In practice the ERP system may comprise a set of discrete applications, each maintaining a discrete data store within one physical database.
[edit]Origin of the term



MRP vs. ERP — Manufacturing management systems have evolved in stages over the past 30 years from a simple means of calculating materials requirements to the automation of an entire enterprise. Around 1980, over-frequent changes in sales forecasts, entailing continual readjustments in production, as well as inflexible fixed system parameters, led MRP (Material Requirement Planning) to evolve into a new concept : Manufacturing Resource Planning (or MRP3) and finally the generic concept Enterprise Resource Planning (ERP)[1]
The initials ERP originated as an extension of MRP (material requirements planning, and then manufacturing resource planning) and CIM (computer-integrated manufacturing) and was introduced by research and analysis firm Gartner. ERP systems now attempt to cover all basic functions of an enterprise, regardless of the organization's business or charter. Non-manufacturing businesses, non-profit organizations and governments now all use ERP systems.
To be considered an ERP system, a software package must provide the function of at least two systems. For example, a software package that provides both payroll and accounting functions could technically be considered an ERP software package.
However, the term is typically reserved for larger, more broadly based applications. The introduction of an ERP system to replace two or more independent applications eliminates the need for external interfaces previously required between systems, and provides additional benefits ranging from standardization and lower maintenance (one system instead of two or more) to easier and/or greater reporting capabilities (as all data is typically kept in one database).
Examples of modules in an ERP which formerly would have been stand-alone applications include: Manufacturing, Supply Chain, Financials, Customer Relationship Management (CRM), Human Resources, Warehouse Management and Decision Support System.
[edit]Overview of ERP Solutions

Some organizations — typically those with sufficient in-house IT skills to integrate multiple software products — choose to implement only portions of an ERP system and develop an external interface to other ERP or stand-alone systems for their other application needs. For example, one may choose to use human resource management system from one vendor, and the financial systems from another, and perform the integration between the systems themselves.
This is very common in the retail sector[citation needed], where even a mid-sized retailer will have a discrete Point-of-Sale (POS) product and financials application, then a series of specialized applications to handle business requirements such as warehouse management, staff rostering, merchandising and logistics.
Ideally, ERP delivers a single database that contains all data for the software modules, which would include:
Manufacturing
Engineering, Bills of Material, Scheduling, Capacity, Workflow Management, Quality Control, Cost Management, Manufacturing Process, Manufacturing Projects, Manufacturing Flow
Supply Chain Management
Order to cash, Inventory, Order Entry, Purchasing, Product Configurator, Supply Chain Planning, Supplier Scheduling, Inspection of goods, Claim Processing, Commission Calculation
Financials
General Ledger, Cash Management, Accounts Payable, Accounts Receivable, Fixed Assets
Projects
Costing, Billing, Time and Expense, Activity Management
Human Resources
Human Resources, Payroll, Training, Time & Attendance, Rostering, Benefits
Customer Relationship Management
Sales and Marketing, Commissions, Service, Customer Contact and Call Center support
Data Warehouse
and various Self-Service interfaces for Customers, Suppliers, and Employees
Enterprise Resource Planning is a term originally derived from manufacturing resource planning (MRP II) that followed material requirements planning (MRP).[2] MRP evolved into ERP when "routings" became a major part of the software architecture and a company's capacity planning activity also became a part of the standard software activity.[citation needed] ERP systems typically handle the manufacturing, logistics, distribution, inventory, shipping, invoicing, and accounting for a company. Enterprise Resource Planning or ERP software can aid in the control of many business activities, like sales, marketing, delivery, billing, production, inventory management, quality management, and human resource management.
ERP systems saw a large boost in sales in the 1990s as companies faced the Y2K problem in their legacy systems. Many companies took this opportunity to replace their legacy information systems with ERP systems. This rapid growth in sales was followed by a slump in 1999, at which time most companies had already implemented their Y2K solution.[3]
ERPs are often incorrectly called back office systems indicating that customers and the general public are not directly involved. This is contrasted with front office systems like customer relationship management (CRM) systems that deal directly with the customers, or the eBusiness systems such as eCommerce, eGovernment, eTelecom, and eFinance, or supplier relationship management (SRM) systems.
ERPs are cross-functional and enterprise wide. All functional departments that are involved in operations or production are integrated in one system. In addition to manufacturing, warehousing, logistics, and information technology, this would include accounting, human resources, marketing, and strategic management.
ERP II means open ERP architecture of components. The older, monolithic ERP systems became component oriented.[citation needed]
EAS — Enterprise Application Suite is a new name for formerly developed ERP systems which include (almost) all segments of business, using ordinary Internet browsers as thin clients.[citation needed]
[edit]Before
Prior to the concept of ERP systems, it was not unusual for each department within an organization to have its own customized computer system. For example, the human resources (HR) department, the payroll department, and the financial department might all have their own computer systems.
Typical difficulties involved integration of data from potentially different computer manufacturers and systems. For example, the HR computer system (often called HRMS or HRIS) would typically manage employee information while the payroll department would typically calculate and store paycheck information for each employee, and the financial department would typically store financial transactions for the organization. Each system would have to integrate using a predefined set of common data which would be transferred between each computer system. Any deviation from the data format or the integration schedule often resulted in problems.
[edit]After
ERP software, among other things, combined the data of formerly separate applications. This simplified keeping data in synchronization across the enterprise, it simplified the computer infrastructure within a large organization, and it standardized and reduced the number of software specialties required within larger organizations.
http://en.wikipedia.org/wiki/Enterprise_resource_planning

Artificial intelligence (AI)

Artificial intelligence (AI) is the intelligence of machines and the branch of computer science which aims to create it.
Major AI textbooks define the field as "the study and design of intelligent agents,"[1] where an intelligent agent is a system that perceives its environment and takes actions which maximize its chances of success.[2] John McCarthy, who coined the term in 1956,[3] defines it as "the science and engineering of making intelligent machines."[4]
Among the traits that researchers hope machines will exhibit are reasoning, knowledge, planning, learning, communication, perception and the ability to move and manipulate objects.[5] General intelligence (or "strong AI") has not yet been achieved and is a long-term goal of some AI research.[6]
AI research uses tools and insights from many fields, including computer science, psychology, philosophy, neuroscience, cognitive science, linguistics, ontology, operations research, economics, control theory, probability, optimization and logic.[7] AI research also overlaps with tasks such as robotics, control systems, scheduling, data mining, logistics, speech recognition, facial recognition and many others.[8]
Other names for the field have been proposed, such as computational intelligence,[9] synthetic intelligence,[9] intelligent systems,[10] or computational rationality.[11] These alternative names are sometimes used to set oneself apart from the part of AI dealing with symbols (considered outdated by many, see GOFAI) which is often associated with the term “AI” itself.
AI research

[edit]Problems of AI
While there is no universally accepted definition of intelligence,[12] AI researchers have studied several traits that are considered essential.[5]
[edit]Deduction, reasoning, problem solving
Early AI researchers developed algorithms that imitated the process of conscious, step-by-step reasoning that human beings use when they solve puzzles, play board games, or make logical deductions.[13] By the late 80s and 90s, AI research had also developed highly successful methods for dealing with uncertain or incomplete information, employing concepts from probability and economics.[14]
For difficult problems, most of these algorithms can require enormous computational resources — most experience a "combinatorial explosion": the amount of memory or computer time required becomes astronomical when the problem goes beyond a certain size. The search for more efficient problem solving algorithms is a high priority for AI research.[15]
It is not clear, however, that conscious human reasoning is any more efficient when faced with a difficult abstract problem. Cognitive scientists have demonstrated that human beings solve most of their problems using nonconscious reasoning, rather than the conscious, step-by-step deduction that early AI research was able to model.[16] Embodied cognitive science argues that sensorimotor skills are essential to our problem solving abilities. It is hoped that sub-symbolic methods, like computational intelligence and situated AI, will be able to model these instinctive skills. The problem of unconscious problem solving, which forms part of our commonsense reasoning, is largely unsolved[dubious – discuss].
[edit]Knowledge representation
Main articles: knowledge representation and commonsense knowledge
Knowledge representation[17] and knowledge engineering[18] are central to AI research. Many of the problems machines are expected to solve will require extensive knowledge about the world. Among the things that AI needs to represent are: objects, properties, categories and relations between objects;[19] situations, events, states and time;[20] causes and effects;[21] knowledge about knowledge (what we know about what other people know);[22] and many other, less well researched domains. A complete representation of "what exists" is an ontology[23] (borrowing a word from traditional philosophy), of which the most general are called upper ontologies.
Among the most difficult problems in knowledge representation are:
Default reasoning and the qualification problem: Many of the things people know take the form of "working assumptions." For example, if a bird comes up in conversation, people typically picture an animal that is fist sized, sings, and flies. None of these things are true about birds in general. John McCarthy identified this problem in 1969[24] as the qualification problem: for any commonsense rule that AI researchers care to represent, there tend to be a huge number of exceptions. Almost nothing is simply true or false in the way that abstract logic requires. AI research has explored a number of solutions to this problem.[25]
Unconscious knowledge: Much of what people know isn't represented as "facts" or "statements" that they could actually say out loud. They take the form of intuitions or tendencies and are represented in the brain unconsciously and sub-symbolically. This unconscious knowledge informs, supports and provides a context for our conscious knowledge. As with the related problem of unconscious reasoning, it is hoped that situated AI or computational intelligence will provide ways to represent this kind of knowledge.
The breadth of common sense knowledge: The number of atomic facts that the average person knows is astronomical. Research projects that attempt to build a complete knowledge base of commonsense knowledge, such as Cyc, require enormous amounts of tedious step-by-step ontological engineering — they must be built, by hand, one complicated concept at a time.[26]
[edit]Planning
Main article: automated planning and scheduling
Intelligent agents must be able to set goals and achieve them.[27] They need a way to visualize the future (they must have a representation of the state of the world and be able to make predictions about how their actions will change it) and be able to make choices that maximize the utility (or "value") of the available choices.[28]
In some planning problems, the agent can assume that it is the only thing acting on the world and it can be certain what the consequences of its actions may be.[29] However, if this is not true, it must periodically check if the world matches its predictions and it must change its plan as this becomes necessary, requiring the agent to reason under uncertainty.[30]
Multi-agent planning uses the cooperation and competition of many agents to achieve a given goal. Emergent behavior such as this is used by evolutionary algorithms and swarm intelligence.[31]
[edit]Learning
Main article: machine learning
Important machine learning[32] problems are:
Unsupervised learning: find a model that matches a stream of input "experiences", and be able to predict what new "experiences" to expect.
Supervised learning, such as classification (be able to determine what category something belongs in, after seeing a number of examples of things from each category), or regression (given a set of numerical input/output examples, discover a continuous function that would generate the outputs from the inputs).
Reinforcement learning:[33] the agent is rewarded for good responses and punished for bad ones. (These can be analyzed in terms decision theory, using concepts like utility).
The mathematical analysis of machine learning algorithms and their performance is a branch of theoretical computer science known as computational learning theory.
[edit]Natural language processing
Main article: natural language processing
Natural language processing[34] gives machines the ability to read and understand the languages human beings speak. Many researchers hope that a sufficiently powerful natural language processing system would be able to acquire knowledge on its own, by reading the existing text available over the internet. Some straigh tforward applications of natural language processing include information retrieval (or text mining) and machine translation.[35]
[edit]Motion and manipulation


ASIMO uses sensors and intelligent algorithms to avoid obstacles and navigate stairs.
Main article: robotics
The field of robotics[36] is closely related to AI. Intelligence is required for robots to be able to handle such tasks as object manipulation[37] and navigation, with sub-problems of localization (knowing where you are), mapping (learning what is around you) and motion planning (figuring out how to get there).[38]
[edit]Perception
Main articles: machine perception, computer vision, and speech recognition
Machine perception[39] is the ability to use input from sensors (such as cameras, microphones, sonar and others more exotic) to deduce aspects of the world. Computer vision[40] is the ability to analyze visual input. A few selected subproblems are speech recognition,[41] facial recognition and object recognition.[42]
[edit]Social intelligence
Main article: affective computing


Kismet, a robot with rudimentary social skills.
Emotion and social skills play two roles for an intelligent agent:[43]
It must be able to predict the actions of others, by understanding their motives and emotional states. (This involves elements of game theory, decision theory, as well as the ability to model human emotions and the perceptual skills to detect emotions.)
For good human-computer interaction, an intelligent machine also needs to display emotions — at the very least it must appear polite and sensitive to the humans it interacts with. At best, it should appear to have normal emotions itself.
[edit]Creativity
Main article: computational creativity
A sub-field of AI addresses creativity both theoretically (from a philosophical and psychological perspective) and practically (via specific implementations of systems that generate outputs that can be considered creative).
[edit]General intelligence
Main articles: strong AI and AI-complete
Most researchers hope that their work will eventually be incorporated into a machine with general intelligence (known as strong AI), combining all the skills above and exceeding human abilities at most or all of them.[6] A few believe that anthropomorphic features like artificial consciousness or an artificial brain may be required for such a project.
Many of the problems above are considered AI-complete: to solve one problem, you must solve them all. For example, even a straigh­tforward, specific task like machine translation requires that the machine follow the author's argument (reason), know what it's talking about (knowledge), and faithfully reproduce the author's intention (social intelligence). Machine translation, therefore, is believed to be AI-complete: it may require strong AI to be done as well as humans can do it.[44]
[edit]Approaches to AI
Artificial intelligence is a young science and there is still no established unifying theory. The field is fragmented[45] and research communities have grown around different approaches.
[edit]Cybernetics and brain simulation


The human brain provides inspiration for artificial intelligence researchers, however there is no consensus on how closely it should be simulated.
In the 40s and 50s, a number of researchers explored the connection between neurology, information theory, and cybernetics. Some of them built machines that used electronic networks to exhibit rudimentary intelligence, such as W. Grey Walter's turtles and the Johns Hopkins Beast. Many of these researchers gathered for meetings of the Teleological Society at Princeton and the Ratio Club in England.[46]
[edit]Traditional symbolic AI
When access to digital computers became possible in the middle 1950s, AI research began to explore the possibility that human intelligence could be reduced to symbol manipulation. The research was centered in three institutions: CMU, Stanford and MIT, and each one developed its own style of research. John Haugeland named these approaches to AI "good old fashioned AI" or "GOFAI".[47]
Cognitive simulation
Economist Herbert Simon and Alan Newell studied human problem solving skills and attempted to formalize them, and their work laid the foundations of the field of artificial intelligence, as well as cognitive science, operations research and management science. Their research team performed psychological experiments to demonstrate the similarities between human problem solving and the programs (such as their "General Problem Solver") they were developing. This tradition, centered at Carnegie Mellon University would eventually culminate in the development of the Soar architecture in the middle 80s.[48][49]
Logical AI
Unlike Newell and Simon, John McCarthy felt that machines did not need to simulate human thought, but should instead try to find the essence of abstract reasoning and problem solving, regardless of whether people used the same algorithms.[50] His laboratory at Stanford (SAIL) focused on using formal logic to solve a wide variety of problems, including knowledge representation, planning and learning.[51] Logic was also focus of the work at the University of Edinburgh and elsewhere in Europe which led to the development of the programming language Prolog and the science of logic programming.[52]
"Scruffy" symbolic AI
Researchers at MIT (such as Marvin Minsky and Seymour Papert) found that solving difficult problems in vision and natural language processing required ad-hoc solutions – they argued that there was no simple and general principle (like logic) that would capture all the aspects of intelligent behavior. Roger Schank described their "anti-logic" approaches as "scruffy" (as opposed to the "neat" paradigms at CMU and Stanford),[53][54] and this still forms the basis of research into commonsense knowledge bases (such as Doug Lenat's Cyc) which must be built one complicated concept at a time.[55]
Knowledge based AI
When computers with large memories became available around 1970, researchers from all three traditions began to build knowledge into AI applications.[56] This "knowledge revolution" led to the development and deployment of expert systems (introduced by Edward Feigenbaum), the first truly successful form of AI software.[57] The knowledge revolution was also driven by the realization that truly enormous amounts of knowledge would be required by many simple AI applications.
[edit]Sub-symbolic AI
During the 1960s, symbolic approaches had achieved great success at simulating high-level thinking in small demonstration programs. Approaches based on cybernetics or neural networks were abandoned or pushed into the background.[58] By the 1980s, however, progress in symbolic AI seemed to stall and many believed that symbolic systems would never be able to imitate all the processes of human cognition, especially perception, robotics, learning and pattern recognition. A number of researchers began to look into "sub-symbolic" approaches to specific AI problems.[59]
Bottom-up, situated, behavior based or nouvelle AI
Researchers from the related field of robotics, such as Rodney Brooks, rejected symbolic AI and focussed on the basic engineering problems that would allow robots to move and survive.[60] Their work revived the non-symbolic viewpoint of the early cybernetics researchers of the 50s and reintroduced the use of control theory in AI. These approaches are also conceptually related to the embodied mind thesis.
Computational Intelligence
Interest in neural networks and "connectionism" was revived by David Rumelhart and others in the middle 1980s.[61] These and other sub-symbolic approaches, such as fuzzy systems and evolutionary computation, are now studied collectively by the emerging discipline of computational intelligence.[62]
Formalisation
In the 1990s, AI researchers developed sophisticated mathematical tools to solve specific subproblems. These tools are truly scientific, in the sense that their results are both measurable and verifiable, and they have been responsible for many of AI's recent successes. The shared mathematical language has also permitted a high level of collaboration with more established fields (like mathematics, economics or operations research). Russell & Norvig (2003) describe this movement as nothing less than a "revolution" and "the victory of the neats."[63]
[edit]Intelligent agent paradigm
The "intelligent agent" paradigm became widely accepted during the 1990s.[64] An intelligent agent is a system that perceives its environment and takes actions which maximizes its chances of success. The simplest intelligent agents are programs that solve specific problems. The most complicated intelligent agents are rational, thinking human beings.[65] The paradigm gives researchers license to study isolated problems and find solutions that are both verifiable and useful, without agreeing on one single approach. An agent that solves a specific problem can use any approach that works — some agents are symbolic and logical, some are sub-symbolic neural networks and others may use new approaches. The paradigm also gives researchers a common language to communicate with other fields—such as decision theory and economics—that also use concepts of abstract agents.
[edit]Integrating the approaches
An agent architecture or cognitive architecture allows researchers to build more versatile and intelligent systems out of interacting intelligent agents in a multi-agent system.[66] A system with both symbolic and sub-symbolic components is a hybrid intelligent system, and the study of such systems is artificial intelligence systems integration. A hierarchical control system provides a bridge between sub-symbolic AI at its lowest, reactive levels and traditional symbolic AI at its highest levels, where relaxed time constraints permit planning and world modelling.[67] Rodney Brooks' subsumption architecture was an early proposal for such a hierarchical system.
[edit]Tools of AI research
In the course of 50 years of research, AI has developed a large number of tools to solve the most difficult problems in computer science. A few of the most general of these methods are discussed below.
[edit]Search and optimization
Main articles: search algorithm, optimization (mathematics), and evolutionary computation
Many problems in AI can be solved in theory by intelligently searching through many possible solutions:[68] Reasoning can be reduced to performing a search. For example, logical proof can be viewed as searching for a path that leads from premises to conclusions, where each step is the application of an inference rule.[69] Planning algorithms search through trees of goals and subgoals, attempting to find a path to a target goal, a process called means-ends analysis.[70] Robotics algorithms for moving limbs and grasping objects use local searches in configuration space.[37] Many learning algorithms use search algorithms based on optimization.
Simple exhaustive searches[71] are rarely sufficient for most real world problems: the search space (the number of places to search) quickly grows to astronomical numbers. The result is a search that is too slow or never completes. The solution, for many problems, is to use "heuristics" or "rules of thumb" that eliminate choices that are unlikely to lead to the goal (called "pruning the search tree"). Heuristics supply the program with a "best guess" for what path the solution lies on.[72]
A very different kind of search came to prominence in the 1990s, based on the mathematical theory of optimization. For many problems, it is possible to begin the search with some form of a guess and then refine the guess incrementally until no more refinements can be made. These algorithms can be visualized as blind hill climbing: we begin the search at a random point on the landscape, and then, by jumps or steps, we keep moving our guess uphill, until we reach the top. Other optimization algorithms are simulated annealing, beam search and random optimization.[73]
Evolutionary computation uses a form of optimization search. For example, they may begin with a population of organisms (the guesses) and then allow them to mutate and recombine, selecting only the fittest to survive each generation (refining the guesses). Forms of evolutionary computation include swarm intelligence algorithms (such as ant colony or particle swarm optimization)[74] and evolutionary algorithms (such as genetic algorithms[75] and genetic programming[76][77]).
[edit]Logic
Main articles: logic programming and automated reasoning
Logic[78] was introduced into AI research by John McCarthy in his 1958 Advice Taker proposal. The most important technical development was J. Alan Robinson's discovery of the resolution and unification algorithm for logical deduction in 1963. This procedure is simple, complete and entirely algorithmic, and can easily be performed by digital computers.[79] However, a naive implementation of the algorithm quickly leads to a combinatorial explosion or an infinite loop. In 1974, Robert Kowalski suggested representing logical expressions as Horn clauses (statements in the form of rules: "if p then q"), which reduced logical deduction to backward chaining or forward chaining. This greatly alleviated (but did not eliminate) the problem.[69][80]
Logic is used for knowledge representation and problem solving, but it can be applied to other problems as well. For example, the satplan algorithm uses logic for planning,[81] and inductive logic programming is a method for learning.[82] There are several different forms of logic used in AI research.
Propositional or sentential logic[83] is the logic of statements which can be true or false.
First-order logic[84] also allows the use of quantifiers and predicates, and can express facts about objects, their properties, and their relations with each other.
Fuzzy logic, a version of first-order logic which allows the truth of a statement to be represented as a value between 0 and 1, rather than simply True (1) or False (0). Fuzzy systems can be used for uncertain reasoning and have been widely used in modern industrial and consumer product control systems.[85]
Default logics, non-monotonic logics and circumscription are forms of logic designed to help with default reasoning and the qualification problem.[25]
Several extensions of logic have been designed to handle specific domains of knowledge, such as: description logics;[19] situation calculus, event calculus and fluent calculus (for representing events and time);[20] causal calculus;[21] belief calculus; and modal logics.[22]
[edit]Probabilistic methods for uncertain reasoning
Main articles: Bayesian network, hidden Markov model, Kalman filter, decision theory, and utility theory
Many problems in AI (in reasoning, planning, learning, perception and robotics) require the agent to operate with incomplete or uncertain information. Starting in the late 80s and early 90s, Judea Pearl and others championed the use of methods drawn from probability theory and economics to devise a number of powerful tools to solve these problems.[86][87]
Bayesian networks[88] are very general tool that can be used for a large number of problems: reasoning (using the Bayesian inference algorithm),[89] learning (using the expectation-maximization algorithm),[90] planning (using decision networks)[91] and perception (using dynamic Bayesian networks).[92]
Probabilistic algorithms can also be used for filtering, prediction, smoothing and finding explanations for streams of data, helping perception systems to analyze processes that occur over time[93] (e.g., hidden Markov models[94] and Kalman filters[95]).
A key concept from the science of economics is "utility": a measure of how valuable something is to an intelligent agent. Precise mathematical tools have been developed that analyze how an agent can make choices and plan, using decision theory, decision analysis,[96] information value theory.[28] These tools include models such as Markov decision processes,[97] dynamic decision networks,[97] game theory and mechanism design[98]
[edit]Classifiers and statistical learning methods
Main articles: classifier (mathematics), statistical classification, and machine learning
The simplest AI applications can be divided into two types: classifiers ("if shiny then diamond") and controllers ("if shiny then pick up"). Controllers do however also classify conditions before inferring actions, and therefore classification forms a central part of many AI systems.
Classifiers[99] are functions that use pattern matching to determine a closest match. They can be tuned according to examples, making them very attractive for use in AI. These examples are known as observations or patterns. In supervised learning, each pattern belongs to a certain predefined class. A class can be seen as a decision that has to be made. All the observations combined with their class labels are known as a data set.
When a new observation is received, that observation is classified based on previous experience. A classifier can be trained in various ways; there are many statistical and machine learning approaches.
A wide range of classifiers are available, each with its strengths and weaknesses. Classifier performance depends greatly on the characteristics of the data to be classified. There is no single classifier that works best on all given problems; this is also referred to as the "no free lunch" theorem. Various empirical tests have been performed to compare classifier performance and to find the characteristics of data that determine classifier performance. Determining a suitable classifier for a given problem is however still more an art than science.
The most widely used classifiers are the neural network,[100] kernel methods such as the support vector machine,[101] k-nearest neighbor algorithm,[102] Gaussian mixture model,[103] naive Bayes classifier,[104] and decision tree.[105] The performance of these classifiers have been compared over a wide range of classification tasks[106] in order to find data characteristics that determine classifier performance.
[edit]Neural networks
Main articles: neural networks and connectionism


A neural network is an interconnected group of nodes, akin to the vast network of neurons in the human brain.
The study of artificial neural networks[100] began in the decade before the field AI research was founded. In the 1960s Frank Rosenblatt developed an important early version, the perceptron.[107] Paul Werbos developed the backpropagation algorithm for multilayer perceptrons in 1974,[108] which led to a renaissance in neural network research and connectionism in general in the middle 1980s. The Hopfield net, a form of attractor network, was first described by John Hopfield in 1982.
Common network architectures which have been developed include the feedforward neural network, the radial basis network, the Kohonen self-organizing map and various recurrent neural networks.[citation needed] Neural networks are applied to the problem of learning, using such techniques as Hebbian learning, competitive learning[109] and the relatively new architectures of Hierarchical Temporal Memory and Deep Belief Networks.
[edit]Control theory
Main article: intelligent control
Control theory, the grandchild of cybernetics, has many important applications, especially in robotics.[110]
[edit]Specialized languages
AI researchers have developed several specialized languages for AI research:
IPL,[111] includes features intended to support programs that could perform general problem solving, including lists, associations, schemas (frames), dynamic memory allocation, data types, recursion, associative retrieval, functions as arguments, generators (streams), and cooperative multitasking.
Lisp[112][113] is a practical mathematical notation for computer programs based on lambda calculus. Linked lists are one of Lisp languages' major data structures, and Lisp source code is itself made up of lists. As a result, Lisp programs can manipulate source code as a data structure, giving rise to the macro systems that allow programmers to create new syntax or even new domain-specific programming languages embedded in Lisp. There are many dialects of Lisp in use today.
Prolog,[114][80] is a declarative language where programs are expressed in terms of relations, and execution occurs by running queries over these relations. Prolog is particularly useful for symbolic reasoning, database and language parsing applications. Prolog is widely used in AI today.
STRIPS, a language for expressing automated planning problem instances. It expresses an initial state, the goal states, and a set of actions. For each action preconditions (what must be established before the action is performed) and postconditions (what is established after the action is performed) are specified.
Planner is a hybrid between procedural and logical languages. It gives a procedural interpretation to logical sentences where implications are interpreted with pattern-directed inference.
AI applications are also often written in standard languages like C++ and languages designed for mathematics, such as Matlab and Lush.
[edit]Evaluating artificial intelligence
Main article: Progress in artificial intelligence
How can one determine if an agent is intelligent? In 1950, Alan Turing proposed a general procedure to test the intelligence of an agent now known as the Turing test. This procedure allows almost all the major problems of artificial intelligence to be tested. However, it is a very difficult challenge and at present all agents fail.
Artificial intelligence can also be evaluated on specific problems such as small problems in chemistry, hand-writing recognition and game-playing. Such tests have been termed subject matter expert Turing tests. Smaller problems provide more achievable goals and there are an ever-increasing number of positive results.
The broad classes of outcome for an AI test are:
optimal: it is not possible to perform better
strong super-human: performs better than all humans
super-human: performs better than most humans
sub-human: performs worse than most humans
For example, performance at checkers (draughts) is optimal,[115] performance at chess is super-human and nearing strong super-human,[116] and performance at many everyday tasks performed by humans is sub-human.
[edit]Competitions and prizes
Main article: Competitions and prizes in artificial intelligence
There are a number of competitions and prizes to promote research in artificial intelligence. The main areas promoted are: general machine intelligence, conversational behaviour, data-mining, driverless cars, robot soccer and games.
[edit]Applications of artificial intelligence

Main article: Applications of artificial intelligence
Artificial intelligence has successfully been used in a wide range of fields including medical diagnosis, stock trading, robot control, law, scientific discovery and toys. Frequently, when a technique reaches mainstream use it is no longer considered artificial intelligence, sometimes described as the AI effect.[117] It may also become integrated into artificial life.
[edit]Perspectives on AI

[edit]AI in myth, fiction and speculation
Main articles: artificial intelligence in fiction, ethics of artificial intelligence, transhumanism, and Technological singularity
Thinking machines and artificial beings appear in Greek myths, such as Talos of Crete, the golden robots of Hephaestus and Pygmalion's Galatea.[118] Human likenesses believed to have intelligence were built in every civilization, beginning with the sacred statues worshipped in Egypt and Greece,[119][120] and including the machines of Yan Shi,[121] Hero of Alexandria,[122] Al-Jazari[123] or Wolfgang von Kempelen.[124] It was widely believed that artificial beings had been created by Geber,[125] Judah Loew[126] and Paracelsus.[127] Stories of these creatures and their fates discuss many of the same hopes, fears and ethical concerns that are presented by artificial intelligence.[128]
Mary Shelley's Frankenstein,[129] considers a key issue in the ethics of artificial intelligence: if a machine can be created that has intelligence, could it also feel? If it can feel, does it have the same rights as a human being? The idea also appears in modern science fiction: the film Artificial Intelligence: A.I. considers a machine in the form of a small boy which has been given the ability to feel human emotions, including, tragically, the capacity to suffer. This issue, now known as "robot rights", is currently being considered by, for example, California's Institute for the Future,[130] although many critics believe that the discussion is premature.[131]
Another issue explored by both science fiction writers and futurists is the impact of artificial intelligence on society. In fiction, AI has appeared as a servant (R2D2 in Star Wars), a comrade (Lt. Commander Data in Star Trek), an extension to human abilities (Ghost in the Shell), a conqueror (The Matrix), a dictator (With Folded Hands), an exterminator (Terminator, Battlestar Galactica) and a race (Asurans in "Stargate Atlantis"). Academic sources have considered such consequences as: a decreased demand for human labor;[132] the enhancement of human ability or experience;[133] and a need for redefinition of human identity and basic values.[134]
Several futurists argue that artificial intelligence will transcend the limits of progress and fundamentally transform humanity. Ray Kurzweil has used Moore's law (which describes the relentless exponential improvement in digital technology with uncanny accuracy) to calculate that desktop computers will have the same processing power as human brains by the year 2029, and that by 2045 artificial intelligence will reach a point where it is able to improve itself at a rate that far exceeds anything conceivable in the past, a scenario that science fiction writer Vernor Vinge named the "technological singularity".[133] Edward Fredkin argues that "artificial intelligence is the next stage in evolution,"[135] an idea first proposed by Samuel Butler's Darwin Among the Machines (1863), and expanded upon by George Dyson in his book of the same name in 1998. Several futurists and science fiction writers have predicted that human beings and machines will merge in the future into cyborgs that are more capable and powerful than either. This idea, called transhumanism, which has roots in Aldous Huxley and Robert Ettinger, is now associated with robot designer Hans Moravec, cyberneticist Kevin Warwick and inventor Ray Kurzweil.[133] Transhumanism has been illustrated in fiction as well, for example on the manga Ghost in the Shell. Pamela McCorduck believes that these scenarios are expressions of an ancient human desire to, as she calls it, "forge the gods."[128]
[edit]History of AI research
Main articles: history of artificial intelligence and timeline of artificial intelligence
In the middle of the 20th century, a handful of scientists began a new approach to building intelligent machines, based on recent discoveries in neurology, a new mathematical theory of information, an understanding of control and stability called cybernetics, and above all, by the invention of the digital computer, a machine based on the abstract essence of mathematical reasoning.[46]
The field of modern AI research was founded at a conference on the campus of Dartmouth College in the summer of 1956.[136] Those who attended would become the leaders of AI research for many decades, especially John McCarthy, Marvin Minsky, Allen Newell and Herbert Simon, who founded AI laboratories at MIT, CMU and Stanford. They and their students wrote programs that were, to most people, simply astonishing:[137] computers were solving word problems in algebra, proving logical theorems and speaking English.[138] By the middle 60s their research was heavily funded by the U.S. Department of Defense[139] and they were optimistic about the future of the new field:
1965, H. A. Simon: "[M]achines will be capable, within twenty years, of doing any work a man can do"[140]
1967, Marvin Minsky: "Within a generation ... the problem of creating 'artificial intelligence' will substantially be solved."[141]
These predictions, and many like them, would not come true. They had failed to recognize the difficulty of some of the problems they faced.[142] In 1974, in response to the criticism of England's Sir James Lighthill and ongoing pressure from Congress to fund more productive projects, the U.S. and British governments cut off all undirected, exploratory research in AI. This was the first AI Winter.[143]
In the early 80s, AI research was revived by the commercial success of expert systems[57] (a form of AI program that simulated the knowledge and analytical skills of one or more human experts). By 1985 the market for AI had reached more than a billion dollars and governments around the world poured money back into the field.[144] However, just a few years later, beginning with the collapse of the Lisp Machine market in 1987, AI once again fell into disrepute, and a second, more lasting AI Winter began.[145]
In the 90s and early 21st century AI achieved its greatest successes, albeit somewhat behind the scenes. Artificial intelligence was adopted throughout the technology industry, providing the heavy lifting for logistics, data mining, medical diagnosis and many other areas.[146] The success was due to several factors: the incredible power of computers today (see Moore's law), a greater emphasis on solving specific subproblems, the creation of new ties between AI and other fields working on similar problems, and above all a new commitment by researchers to solid mathematical methods and rigorous scientific standards.[63]
[edit]Philosophy of AI
Mind and Brain portal
Main article: philosophy of artificial intelligence
Artificial intelligence, by claiming to be able to recreate the capabilities of the human mind, is both a challenge and an inspiration for philosophy. Are there limits to how intelligent machines can be? Is there an essential difference between human intelligence and artificial intelligence? Can a machine have a mind and consciousness? A few of the most influential answers to these questions are given below.[147]
Turing's "polite convention": If a machine acts as intelligently as a human being, then it is as intelligent as a human being. Alan Turing theorized that, ultimately, we can only judge the intelligence of machine based on its behavior. This theory forms the basis of the Turing test.[148]
The Dartmouth proposal: "Every aspect of learning or any other feature of intelligence can be so precisely described that a machine can be made to simulate it." This assertion was printed in the proposal for the Dartmouth Conference of 1956, and represents the position of most working AI researchers.[149]
Newell and Simon's physical symbol system hypothesis: "A physical symbol system has the necessary and sufficient means of general intelligent action." This statement claims that the essence of intelligence is symbol manipulation.[150] Hubert Dreyfus argued that, on the contrary, human expertise depends on unconscious instinct rather than conscious symbol manipulation and on having a "feel" for the situation rather than explicit symbolic knowledge.[151][152]
Gödel's incompleteness theorem: A formal system (such as a computer program) can not prove all true statements. Roger Penrose is among those who claim that Gödel's theorem limits what machines can do.[153][154]
Searle's strong AI hypothesis: "The appropriately programmed computer with the right inputs and outputs would thereby have a mind in exactly the same sense human beings have minds."[155] Searle counters this assertion with his Chinese room argument, which asks us to look inside the computer and try to find where the "mind" might be.[156]
The artificial brain argument: The brain can be simulated. Hans Moravec, Ray Kurzweil and others have argued that it is technologically feasible to copy the brain directly into hardware and software, and that such a simulation will be essentially identical to the original. This argument combines the idea that a suitably powerful machine can simulate any process, with the materialist idea that the mind is the result of physical processes in the brain.[157]

http://en.wikipedia.org/wiki/Artificial_intelligence

Decision Support System (DSS)

Decision support systems constitute a class of computer-based information systems including knowledge-based systems that support decision-making activities.
[edit]Definition
Decision Support Systems (DSS) are a specific class of computerized information system that supports business and organizational decision-making activities. A properly-designed DSS is an interactive software-based system intended to help decision makers compile useful information from raw data, documents, personal knowledge, and/or business models to identify and solve problems and make decisions.
Typical information that a decision support application might gather and present would be:
an inventory of all of your current information assets (including legacy and relational data sources, cubes, data warehouses, and data marts),
comparative sales figures between one week and the next,
projected revenue figures based on new product sales assumptions;
the consequences of different decision alternatives, given past experience in a context that is described.
[edit]A brief history
In the absence of an all-inclusive definition, we focus on the history of DSS (see also Power[1]). According to Keen [2], the concept of decision support has evolved from two main areas of research: the theoretical studies of organizational decision making done at the Carnegie Institute of Technology during the late 1950s and early 1960s, and the technical work on interactive computer systems, mainly carried out at the Massachusetts Institute of Technology in the 1960s. It is considered that the concept of DSS became an area of research of its own in the middle of the 1970s, before gaining in intensity during the 1980s. In the middle and late 1980s, executive information systems (EIS), group decision support systems (GDSS), and organizational decision support systems (ODSS) evolved from the single user and model-oriented DSS. Beginning in about 1990, data warehousing and on-line analytical processing (OLAP) began broadening the realm of DSS. As the turn of the millennium approached, new Web-based analytical applications were introduced.
It is clear that DSS belong to an environment with multidisciplinary foundations, including (but not exclusively) database research, artificial intelligence, human-computer interaction, simulation methods, software engineering, and telecommunications.
DSS also have a weak connection to the user interface paradigm of hypertext. Both the University of Vermont PROMIS system (for medical decision making) and the Carnegie Mellon ZOG/KMS system (for military and business decision making) were decision support systems which also were major breakthroughs in user interface research. Furthermore, although hypertext researchers have generally been concerned with information overload, certain researchers, notably Douglas Engelbart, have been focused on decision makers in particular.
[edit]Taxonomies

As with the definition, there is no universally-accepted taxonomy of DSS either. Different authors propose different classifications. Using the relationship with the user as the criterion, Haettenschwiler [3] differentiates passive, active, and cooperative DSS. A passive DSS is a system that aids the process of decision making, but that cannot bring out explicit decision suggestions or solutions. An active DSS can bring out such decision suggestions or solutions. A cooperative DSS allows the decision maker (or its advisor) to modify, complete, or refine the decision suggestions provided by the system, before sending them back to the system for validation. The system again improves, completes, and refines the suggestions of the decision maker and sends them back to her for validation. The whole process then starts again, until a consolidated solution is generated.
Using the mode of assistance as the criterion, Power [4] differentiates communication-driven DSS, data-driven DSS, document-driven DSS, knowledge-driven DSS, and model-driven DSS.
A model-driven DSS emphasizes access to and manipulation of a statistical, financial, optimization, or simulation model. Model-driven DSS use data and parameters provided by users to assist decision makers in analyzing a situation; they are not necessarily data-intensive. Dicodess is an example of an open source model-driven DSS generator [5].
A communication-driven DSS supports more than one person working on a shared task; examples include integrated tools like Microsoft's NetMeeting or Groove[6]
A data-driven DSS or data-oriented DSS emphasizes access to and manipulation of a time series of internal company data and, sometimes, external data.
A document-driven DSS manages, retrieves, and manipulates unstructured information in a variety of electronic formats.
A knowledge-driven DSS provides specialized problem-solving expertise stored as facts, rules, procedures, or in similar structures.[4]
Using scope as the criterion, Power [7] differentiates enterprise-wide DSS and desktop DSS. An enterprise-wide DSS is linked to large data warehouses and serves many managers in the company. A desktop, single-user DSS is a small system that runs on an individual manager's PC.
[edit]Architectures


This article may require cleanup to meet Wikipedia's quality standards.
Please improve this article if you can. (December 2007)
Once again, different authors identify different components in a DSS. For example, Sprague and Carlson [8] identify three fundamental components of DSS: (a) the database management system (DBMS), (b) the model-base management system (MBMS), and (c) the dialog generation and management system (DGMS).
Haag et al. [9] describe these three components in more detail:
The Data Management Component stores information (which can be further subdivided into that derived from an organization's traditional data repositories, from external sources such as the Internet, or from the personal insights and experiences of individual users); the Model Management Component handles representations of events, facts, or situations (using various kinds of models, two examples being optimization models and goal-seeking models); and the User Interface Management Component is, of course, the component that allows a user to interact with the system.
According to Power [4], academics and practitioners have discussed building DSS in terms of four major components: (a) the user interface, (b) the database, (c) the model and analytical tools, and (d) the DSS architecture and network.
Hättenschwiler [3] identifies five components of DSS:
(a) users with different roles or functions in the decision making process (decision maker, advisors, domain experts, system experts, data collectors),
(b) a specific and definable decision context,
(c) a target system describing the majority of the preferences,
(d) a knowledge base made of external data sources, knowledge databases, working databases, data warehouses and meta-databases, mathematical models and methods, procedures, inference and search engines, administrative programs, and reporting systems, and
(e) a working environment for the preparation, analysis, and documentation of decision alternatives.
arakas [10] proposes a generalized architecture made of five distinct parts:
(a) the data management system,
(b) the model management system,
(c) the knowledge engine,
(d) the user interface, and
(e) the user(s).
[edit]Development Frameworks
DSS systems are not entirely different from other systems and require a structured approach. A framework was provided by Sprague and Watson (1993). The framework has three main levels. 1. Technology levels 2. People involved 3. The developmental approach
Technology Levels
Sprague has suggested that there are three levels of hardware and software that has been proposed for DSS.
a) Level 1 – Specific DSS
This is the actual application that will be used to by the user. This is the part of the application that allows the decision maker to make decisions in a particular problem area. The user can act upon that particular problem.
b) Level 2 – DSS Generator
This level contains Hardware/software environment that allows people to easily develop specific DSS applications. This level makes use of case tools or systems such as Crystal, AIMMS, iThink and Clementine.
c) Level 3 – DSS Tools
Contains lower level hardware/software. DSS generators including special languages, function libraries and linking modules
People Involved
Sprague suggests there are 5 roles involved in a typical DSS development cycle.
a) The end user.
b) An intermediary.
c) DSS developer
d) Technical supporter
e) Systems Expert
Developmental
The developmental approach for a DSS system should be strongly iterative. This will allow for the application to be changed and redesigned at various intervals. The initial problem is used to design the system on and then tested and revised to ensure the desired outcome is achieved.
[edit]Classifying DSS

There are several ways to classify DSS applications. Not every DSS fits neatly into one category, but a mix of two or more architecture in one.
Holsapple and Whinston [11] classify DSS into the following six frameworks: Text-oriented DSS, Database-oriented DSS, Spreadsheet-oriented DSS, Solver-oriented DSS, Rule-oriented DSS, and Compound DSS.
A compound DSS is the most popular classification for a DSS. It is a hybrid system that includes two or more of the five basic structures described by Holsapple and Whinston [11].
The support given by DSS can be separated into three distinct, interrelated categories [12]: Personal Support, Group Support, and Organizational Support.
Additionally, the build up of a DSS is also classified into a few characteristics. 1) inputs: this is used so the DSS can have factors, numbers, and characteristics to analyze. 2) user knowledge and expertise: This allows the system to decide how much it is relied on, and exactly what inputs must be analyzed with or without the user. 3) outputs: This is used so the user of the system can analyze the decisions that may be made and then potentially 4) make a decision: This decision making is made by the DSS, however, it is ultimately made by the user in order to decide on which criteria it should use.
DSSs which perform selected cognitive decision-making functions and are based on artificial intelligence or intelligent agents technologies are called Intelligent Decision Support Systems (IDSS)[13].
[edit]Applications

As mentioned above, there are theoretical possibilities of building such systems in any knowledge domain.
One example is the Clinical decision support system for medical diagnosis. Other examples include a bank loan officer verifying the credit of a loan applicant or an engineering firm that has bids on several projects and wants to know if they can be competitive with their costs.
DSS is extensively used in business and management. Executive dashboard and other business performance software allow faster decision making, identification of negative trends, and better allocation of business resources.
A growing area of DSS application, concepts, principles, and techniques is in agricultural production, marketing for sustainable development. For example, the DSSAT4 package[14][15], developed through financial support of USAID during the 80's and 90's, has allowed rapid assessment of several agricultural production systems around the world to facilitate decision-making at the farm and policy levels. There are, however, many constraints to the successful adoption on DSS in agriculture[16].
A specific example concerns the Canadian National Railway system, which tests its equipment on a regular basis using a decision support system. A problem faced by any railroad is worn-out or defective rails, which can result in hundreds of derailments per year. Under a DSS, CN managed to decrease the incidence of derailments at the same time other companies were experiencing an increase.
DSS has many applications that have already been spoken about. However, it can be used in any field where organization is necessary. Additionally, a DSS can be designed to help make decisions on the stock market, or deciding which area or segment to market a product toward.
[edit]Benefits of DSS

Improves personal efficiency
Expedites problem solving
Facilitates interpersonal communication
Promotes learning or training
Increases organizational control
Generates new evidence in support of a decision
Creates a competitive advantage over competition
Encourages exploration and discovery on the part of the decision maker
Reveals new approaches to thinking about the problem space

http://en.wikipedia.org/wiki/Decision_Support_Systems

Rabu, 24 September 2008

Sistem informasi akuntansi

Sistem Informasi Akuntansi

Sistem Informasi Akuntansi (SIA) adalah sebuah Sistem Informasi yang menangani segala sesuatu yang berkenaan dengan Akuntansi. Akuntansi sendiri sebenarnya adalah sebuah Sistem Informasi. Fungsi penting yang dibentuk SIA pada sebuah organisasi antara lain :

  • Mengumpulkan dan menyimpan data tentang aktivitas dan transaksi.
  • Memproses data menjadi into informasi yang dapat digunakan dalam proses pengambilan keputusan.
  • Melakukan kontrol secara tepat terhadap aset organisasi.

Cara Kerja

Untuk memahami bagaimana SIA bekerja, perlu untuk menjawab beberapa pertanyaan sebagai berikut :

  • Bagaimana mengoleksi data yang berkaitan dengan aktivitas dan transaksi organisasi?
  • Bagaimana mentransformasi data kedalam informasi sehingga manajemen dapat menggunakan untuk menjalankan organisasi?
  • Bagaimana menjamin ketersediaan, keandalan, keakuratan informasi ?
  • Bagaimana menjamin ketersediaan, keandalan, keakuratan informasi ?

Manfaat

Sebuah SIA menambah nilai dengan cara:

  • Menyediakan informasi yang akurat dan tepat waktu sehingga dapat melakukan aktivitas utama pada value chain secara efektif dan efisien.
  • Meningkatkan kualitas dan mengurangi biaya produk dan jasa yang dihasilkan
  • Meningkatkan efisiensi
  • Meningkatkan kemampuan dalam pengambilan keputusan
  • Meningkatkan sharing knowledge
  • menambah efisiensi kerja pada bagian keuangan