Upload
xylia
View
22
Download
1
Embed Size (px)
DESCRIPTION
Formalisering. Pensum: Olsen, kap. 1 ”Formalisering”. Datamaskinen. Mange spådommer om hva som skulle være mulig har ikke slått til Til tross for at vi har fått betydelig kraftigere maskiner til betydelig lavere priser - PowerPoint PPT Presentation
Citation preview
Formalisering
Pensum:Olsen, kap. 1 ”Formalisering”
Datamaskinen Mange spådommer om hva som skulle
være mulig har ikke slått til Til tross for at vi har fått betydelig
kraftigere maskiner til betydelig lavere priser
Mange av de ”nye” anvendelsene vi har fått i dag er forbedringer av tidligere anvendelser (f.eks. iPad, smarttelefoner, streaming av musikk…)
”Sort boks”, gjør det vanskelig for lekfolk å forstå hvordan datamaskinen arbeider
Eksempel Lansering av det nye folkehelikopteret.
Prototypen presenteres kun på bakken. Stor skepsis.
Lansering av en ny elektronisk språk-oversetter. Prototypen er lovende. Den oversetter enkle setninger rimelig bra. ”Med mer innsats og penger skal vi få til en komplett oversetter”.
Stor entusiasme.
Men, etter hvert lærer vi Mange har i dag erfaring med bruk
av datamaskin, til tekstbehandling, regneark, Web-anvendelser
Selv om dette er enkle applikasjoner ser en fort begrensningene (som ved gramatikk-kontroll)
Det vil gi en god idé om hva maskinen kan gjøre og hva den ikke kan
Hardware - maskinvare Dramatisk utvikling Moore’s lov, dobling av antall
komponenter hvert annet år Kjappere maskiner Mer kapasitet Lavere priser Mindre maskiner Datamaskiner overalt
Software - programvare Mange prosjekter feiler Vanskelig å holde budsjetter i
kroner og i tid Ideer om nye applikasjoner (som
språkoversetting) har ikke slått til Hvorfor denne forskjellen, er
programutviklere dummere enn de som utvikler maskinvaren?
Maskinvare har den enkleste oppgaven
MaskinvareMaskinvare
OppgaveOppgave
Programvare
Vi skal løse en oppgave.
Maskinvaren hjelper oss bare et stykke på vei.
Det overlates til programvaren å løse resten.
”Duk og dekket bord” I noen tilfeller har programvare-
utviklerne en enkel jobb, forarbeidet kan allerede være gjort
Eksempel: Innføring av datamaskiner i banker Oppgavene var allerede formaliserte
Er det like lett å innføre databehandling i sykehus?
Formalisering som en del av systemutvikling I mange tilfeller vil formaliserings-arbeidet
være en viktig del av systemutviklingen Skal vi opprette en Internett-butikk må vi
formalisere produktspekteret (entydige navn eller koder), betalingsrutiner (kort), kunderegister m.m.
Dette blir forenklet ved at datateknologi gjennomsyrer samfunnet, da har vi strek-kode på alle varer, kredittkort, standard betalingstjenester m.m.
Infrastrukturendringer Akkurat som vi ”formaliserer”
terrenget for å bygge veier kan må vi formalisere omgivelsene for å etablere nye datatjenester
Eksempel: Salg på Internett/Web vil vanligvis
krever betaling over kort Vi må formalisere betalingen
Unngå 100% I mange tilfeller løses problemer med å
utelate oppgaver fra automatiseringen (i første omgang)
Eksempel: Bank Datamaskinen først brukt til å automatisere
kontoer (innskudd, uttak, beregning av renter)
I dag også til automatisering av enkel lånebehandling
Mer avansert lånebehandling utføres manuelt
og vi kan endre prosesser Tidligere krevde innskudd og uttak fra
bankkonto underskrifter I dag aksepterer vi en PIN kode Før måtte vi levere en papirbillett for å
komme om bord i flyet, i dag kan vi klare oss med en kode eller et kredittkort.
Tilsvarende for mange andre anvendelser
Maskinintelligens Maskinen kan spille sjakk – men er den dermed
intelligent? Galt spørsmål? Vi må spørre om oppgaven er formalisert eller
ikke Sjakk er formalisert, kompleksiteten ligger i
antall mulige treff Det kan maskinen takle med hurtige beregninger Det er derfor ikke mye mer riktig å begrunne
maskinens intelligens med sjakk enn med regnskap, begge deler er formalisert, begge deler løses med beregninger
Turingtest Vi sitter ved en terminal Kan stille de spørsmål vi måtte ønske Er det en maskin eller et menneske i
andre enden? Når vi ikke kan avgjøre dette har vi en
”intelligent” maskin Det arrangeres slike tester, med premie
til beste program og beste bruker (the most human human)
Hvilke egenskap har mennesket som maskinen ikke har?
Vi kan operere i det åpne, ikke-formaliserte, området
Vi er gode på avansert mønstergjenkjenning
Med denne kunnskapen vet vi hvilke type spørsmål vi skal stille
Mønstergjenkjenning
Hvilke bokstaver vises her?
Åpent område - humor: Tre historier – hvilken er morsom? A. In the middle of a forest, there was a hunter who was
suddenly confronted with a huge, mean bear. Full of fear, his attempt to shoot the bear was unsuccessful. He turned away and started to run as fast as he could. Finally, he ended up at the edge of a very steep cliff. His hopes were dim. But, he got on his knees, opened his arms and said, “My God! Please give this bear some religion!” Then, there was a lightning bolt in the air and the bear stopped a few feet short of the hunter. The bear had a puzzled look for a moment, and then looked up into the sky and said, “My God! Thank you for what I am about to receive. . . .”
B. In the middle of a forest. . . . The bear had a puzzled look for a moment, and then looked up into the sky and said, “My God! Thank you.”
C. In the middle of a forest. . . . The bear had a puzzled look for a moment, and then looked at the hunter that begged, “My God! Do not let him eat me”—to no avail!
Ekspertsystemer Gi datamaskinen samme vurderingsevne som
fagfolk Regelbaserte systemer Pilotimplementasjoner i blant annet medisin i 1980
årene Gode resultater, programmene gjorde det bedre
enn mange leger Likevel, disse programmene benyttes lite i dag Testen ble gjort på formaliserte data
(undersøkelser). Når legen får se pasienten kan hun ofte stille
diagnose raskt basert på erfaring, intuisjon og med få prøveresultater
I dag ser en på muligheten for at IBM’s program Watson (Jeopardy) skal kunne tilpasses å bli et diagnoseverktøy
Formalisering av en virksomhet
Fra venstre:
-Formalisering av bare en del av oppgavene
-formalisering av det meste
-overformalisering (byråkratisering)
Formaliseringsnivåer Vi kan representere alle typer symbolske
data i en datamaskin Selv om maskinen bare bruke det
binære tallsystemet får vi til dette ved å kode data
Dette kan kreve mange binære siffer, men det er langt lettere å ha mye av det enkle enn mindre av det kompliserte.
Derfor benytter vi bare det binære tallsystemet (0 og 1) i datamaskinen
Ascii tabellen – koding av tegn
Symbol Value Symbol Value Symbol Value
, 44 A 65 a 97
- 45 B 66 b 98
. 46 C 67 c 99
/ 47 D 68 d 100
Tegninger lagret som pixels Kan lagre dette som pixel (punkt), f.eks.
med tre byte pr punkt En linje kan da representeres gjennom
de pixler som utgjør linjen Gir stor fleksibilitet (bilder og
tegninger), men krever mye plass (lite problem i dag)
Redigering må skje på pixelnivå Eksempel: Paint, Photoshop
Tegninger lagret som objekter Hvert objekt kan representere en type
geometrisk figur Et sett attributter gir data for objektet En linje kan da representeres ved
koordinatene til endepunktet Effektiv lagring Enkel redigering (vi kan f.eks. peke på
linjen og flytte denne) Linjen må gjengis på skjermen
(”rendering”) Eksempel: Tegning i Word, Autocad, …
Nivå Objekt-metoden har høyere
formaliseringsnivå enn pixel-metoden
Her kan vi operere på hvert objekt som utgjør tegningen (flytte, endre, fjerne, kopiere)
Tekstbehandling (tegnkoding) Vi kan representere teksten kun på
tegn-nivå (som ASCII koder) Da kan vi kun gjøre operasjoner på
dette nivået Det blir ikke mulig å unngå ord-deling
på slutten av linjen, å foreta stavekontroll, å markere et ord, m.m.
Programmet forstår ikke begreper som ord, setninger, avsnitt m.m.
Høyere formaliseringsnivå Vi kan definere regler for hva som er:
ord (samling bokstaver omsluttet av skilletegn)
setning (samling av ord avsluttet med punktum)
avsnitt (samling av setninger avsluttet av et avsnitt-tegn).
Dette kan da brukes for høyere nivås operasjoner
Datalagring (tegnkoding) Vi kan lagre data, f.eks.
bibliografiske data, som tekst Da kan vi foreta ren tekstsøk, om
vi f.eks. søker etter forlaget ”Scarecrow” eller produsenten ”Apple” vil vi få treff for alle poster der disse bokstavene inngår, uansett sammenheng.
Høyere formaliseringsnivå Om vi i stedet koder dataene på
høyere nivå kan vi foreta mer avanserte søk
For eksempel kan vi tagge: <forlag>Scarecrow</forlag> <datamaskin>Apple</datamaskin> <skolefrokost>Apple, Bread,
Cheese</skolefrokost> <boktittel>Scarecrow in the field</boktittel>
Tekstbehandling (nivåer)Level Formalization Coding (example) Functionality (examples)
1 CharacterASCII or similar character-to-number coding.
String editing, inserting and deleting characters.
2
Character sequence, sentence, and paragraph.
Rules to identify words (enclosed by spaces or punctuation) and paragraphs.
Insert and delete a word, avoiding breaking a word at line ends, inserting space between paragraphs.
3 Lexical Dictionary Spell checking.
4 SyntacticalWord classification, grammatical rules.
Grammar checker.
5 SemanticRepresenting the meaning of words and expressions.
Logical searches, translation, computation.
6 PragmaticRepresenting the “meaning of meaning” or meaning in context.
Full text analysis.
Formaliseringsproblemet for B2B Med B2B (Business-to-Business) systemer skal maskiner
kommunisere med maskiner Data skal overføres på høyt nivå, altså som strukturerte
data Med XML har vi et kodespråk for å beskrive dataene Men vi må bli enige om hvordan vi skal representere:
Telefonnummer Adresser Datoer Kundenummer Kontonummer Henvisninger til regelverk m.m.
Kravet om data Mens vi mennesker kan operere
med implisitte data, data hentet fra omgivelsene (”vi sees til lunch”) må maskinen ha eksakte data
Dette begrenser mange automatiske applikasjoner (eks. temperatur-regulering, Internet tilkoplet kjøleskap)
Store organisasjoner mer egnet I store organisasjoner er ofte prosesser
formaliserte. Antall operasjoner, datamengder m.m. krever dette.
I små organisasjoner er dette ikke så nødvendig. Med mindre volum kan en håndtere hver enkelt sak for seg
Dvs. formaliseringskostnadene med å innføre automatiske dataprosesser er ofte mindre i store organisasjoner enn små
Eksempel Fryselageret til en stor grossist:
Mange varer på lager Alle varer har en id Standard pakkestørrelser Nøye oversikt over alt som er på lageret Faste rutiner for ”innskudd” og ”uttak” Bruker strekkoder m.m. for å forenkle prosesser
Fryseboksen hjemme: Oversiktlig mengde Ingen formell id Varierende pakkestørrelser Ingen rutiner for innlegging Fleksibelt uttak (kan ta ut deler av en pakke) Ingen tekniske hjelpemidler (som strekkodeleser)
Formaliseringen blir viktig For å forenkle settes det ofte formelle (lukkede)
krav Et eksempel er bostøtte. Det gis ut fra skattbar
inntekt, boligkostnader, mm. da kan det beregnes av en datamaskin. Det er enkelt, men ikke alltid 100% treffsikkert.
En banksjef i en lokal bank kan vurdere sine kunder, kanskje så godt at hun aldri taper penger. Men nye regler for banker (som Basel-konvensjonene) setter formelle krav for sikkerhet.
Blir vi tatt i fartskontroll hjelper det ikke å fortelle hvor flink vi er til å kjøre, og at vår kjøring i 90 kan være tryggere enn andres i 70.
Formaliseringen virker ikke alltid Med høyt formaliseringsnivå og faste
rutiner etablerer vi en regel for hva som skal gjøres
Ofte er det unntak, og maskinen kjenner ikke alltid til disse
Eksempler: Automatisk ”bullet” funksjon i Word
(kommer på om vi bruker et bullet-tegn, f.eks. et minustegn på starten av en linje)
Gjentagelsesfunksjon i Excel (du skriver C+ i et felt, neste gang du skriver C vil maskinen foreslå C+)
Automatisk støvsuger Som et eksperiment kjøpte jeg en
robot-støvsuger Kan starte på et gitt tidspunkt Navigerer i rommet (med et
kamera) Men kjører seg fast på stolben, i
tepper med frynser og passerer ikke standard norske dørstokker
Skal vi ha full nytte av en slik må vi formalisere rommet til støvsugeren eller få en mer avansert innretning (kanskje en som lærer av sine feil?)
Kostnad-nytte for formalisering Dersom vi kan formalisere kan vi ofte
også automatisere Da kan vi gjøre jobben fort, effektivt,
døgnet rundt, etter faste regler, m.m. – uten å betale lønninger
Men 100% formalisering er ofte vanskelig å få til
Løsningen ligger ofte i interaktive system, der mennesker og maskiner samhandler
Interaktivt system Her kan maskinen ta de lukkede deler,
mennesket det åpne Tekstbehandling er et godt eksempel Men vi kan også bruke ideen i andre
sammenhenger: Vi kan ha innsjekkingsautomater for å
effektivisere denne prosessen, men kan også ha manuell betjening for unntakene
Vi kan la kundene taste inn ordren i et Web-skjema, men kan ha telefon og epost for unntak
Fleksibilitet vs. effektivitet
Effectiveness and efficiency
Application area
CustomapplicationCustomapplication
Spreadsheet systemSpreadsheet system
Applicationgenerator
Applicationgenerator
Programming languageProgramming language
Med større fleksibilitet (f.eks. regneark) får vi mindre effektivitet (enn en applikasjon spesiallaget for jobben).
Et lite prosjekt Vi skal lage systemer slik at biler
kan kjøre automatisk La oss først anta at vi bruker
vanlige veier uten trafikk Men bilen bør stoppe om det er
hindringer i veien Hvordan skal vi takle dette?
Løsningsmetode Dele problemet inn i mindre
deloppgaver Løse hver deloppgave for seg Hvilke deloppgaver har vi her?