41
Formalisering Pensum: Olsen, kap. 1 ”Formalisering”

Formalisering

  • 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

Page 1: Formalisering

Formalisering

Pensum:Olsen, kap. 1 ”Formalisering”

Page 2: 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

Page 3: Formalisering

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.

Page 4: Formalisering

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

Page 5: Formalisering

Hardware - maskinvare Dramatisk utvikling Moore’s lov, dobling av antall

komponenter hvert annet år Kjappere maskiner Mer kapasitet Lavere priser Mindre maskiner Datamaskiner overalt

Page 6: Formalisering

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?

Page 7: Formalisering

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.

Page 8: Formalisering

”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?

Page 9: Formalisering

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.

Page 10: Formalisering

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

Page 11: Formalisering

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

Page 12: Formalisering

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

Page 13: Formalisering

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

Page 14: Formalisering

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)

Page 15: Formalisering

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

Page 16: Formalisering

Mønstergjenkjenning

Hvilke bokstaver vises her?

Page 17: Formalisering

Å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!

Page 18: Formalisering

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

Page 19: Formalisering

Formalisering av en virksomhet

Fra venstre:

-Formalisering av bare en del av oppgavene

-formalisering av det meste

-overformalisering (byråkratisering)

Page 20: Formalisering

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

Page 21: Formalisering

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

Page 22: Formalisering

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

Page 23: Formalisering

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, …

Page 24: Formalisering

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)

Page 25: Formalisering

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.

Page 26: Formalisering

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

Page 27: Formalisering

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.

Page 28: Formalisering

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>

Page 29: Formalisering

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.

Page 30: Formalisering

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.

Page 31: Formalisering

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)

Page 32: Formalisering

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å

Page 33: Formalisering

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)

Page 34: Formalisering

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.

Page 35: Formalisering

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+)

Page 36: Formalisering

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?)

Page 37: Formalisering

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

Page 38: Formalisering

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

Page 39: Formalisering

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).

Page 40: Formalisering

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?

Page 41: Formalisering

Løsningsmetode Dele problemet inn i mindre

deloppgaver Løse hver deloppgave for seg Hvilke deloppgaver har vi her?