Trolleri med villkorsprogrammering. Mats Carlsson

Storlek: px
Starta visningen från sidan:

Download "Trolleri med villkorsprogrammering. Mats Carlsson matsc@sics.se www.sics.se/~matsc"

Transkript

1 Trolleri med villkorsprogrammering Mats Carlsson

2 I ett nötskal Programmera vad, inte hur Effektiva algoritmer paketerade som återanvändbara mjukvarukomponenter Komponenterna kommunicerar via delade variabler - propagering Variablerna tar diskreta värden

3 Problemklasser Hårdvarudesign Kompilering Layout och placering Tillklippning Platsallokering Frekvensplanering Konfigurering Schemaläggning: Industriella processer Underhåll I skolan Sportturneringar Skift och personal Dyr utrustning (teleskop, satelliter, )

4 Villkorsteknik Villkor Ett logiskt samband mellan obekanta (variabler) Villkorsprogramming (CP) Beräkningssystem som baseras på villkor CP över ändliga domäner (CP(FD)) Varje obekant har en ändlig, diskret domän

5 Vad är ett villkor? Några exempel. Kodningen börjar när specifikationen är klar Möten får inte överlappa i tiden Efter två nattskift krävs ett dygns vila

6 Exempel på villkorsprogram top :- [X1,X2,X3] in 1..4, X1+X2 #< X3, labeling([x1,x2,x3]).

7 Exempel på villkorsprogram top :- [X1,X2,X3] in 1..4, domändeklaration X1+X2 #< X3, labeling([x1,x2,x3]).

8 Exempel på villkorsprogram top :- [X1,X2,X3] in 1..4, domändeklaration X1+X2 #< X3, labeling([x1,x2,x3]). X1:1..4 X2:1..4 X3:1..4

9 Exempel på villkorsprogram top :- [X1,X2,X3] in 1..4, X1+X2 #< X3, ställa ett villkor labeling([x1,x2,x3]).

10 Exempel på villkorsprogram top :- [X1,X2,X3] in 1..4, X1+X2 #< X3, labeling([x1,x2,x3]). ställa ett villkor X1:1..2 X2:1..2 X3:3..4

11 Exempel på villkorsprogram top :- [X1,X2,X3] in 1..4, X1+X2 #< X3, labeling([x1,x2,x3]). sökning

12 Exempel på villkorsprogram top :- [X1,X2,X3] in 1..4, X1+X2 #< X3, labeling([x1,x2,x3]). sökning [1,1,3] [1,1,4] [1,2,4] [2,1,4]

13 Domändeklaration [X1,X2,X3] in 1..4 X1 in 1..4 Normalt innan några villkor ställs på X1, X2, X3 Designbeslut: Vilka är variablerna i mitt problem? Vilka är värdena i mitt problem?

14 Att ställa ett villkor X1+X2 #< X3 Som ett proceduranrop Designbeslut: Hur ska villkoret bäst uttryckas? Logiskt ekvivalenta varianter kan bete sig operationellt olika.

15 Exempel på propagering mellan villkor

16 Exempel på propagering mellan villkor

17 Exempel på propagering mellan villkor

18 Exempel på propagering mellan villkor

19 Exempel på propagering mellan villkor

20 Exempel på propagering mellan villkor

21 Exempel på propagering mellan villkor

22 Villkor från operationellt perspektiv Programkod använd som korutin for att: (1) Testa om villkoret är definitivt falskt backtracking (2) Testa om villkoret är definitivt sant deaktivering (3) Ta bort variablers värden som skulle göra villkoret definitivt falskt suspendering man måste söka Vanligen polynomiella men inkompletta algoritmer

23 Testa om villkoret är definitivt falskt [X1,X2,X3] in 1..4, X1+X2 #< X3 (1) Beräkna minimum av X1+X2 min(x1+x2)=min(x1)+min(x2)=1+1=2 (2) Beräkna maximum av X3 max(x3)=4 (3) Jämför: eftersom minimum av X1+X2 inte är större än maximum av X3 så är X1+X2 #< X3 inte definitivt falskt

24 Testa om villkoret är definitivt sant [X1,X2,X3] in 1..4, X1+X2 #< X3 (1) Beräkna maximum av X1+X2 max(x1+x2)=max(x1)+max(x2)=4+4=8 (2) Beräkna minimum av X3 min(x3)=1 (3) Jämför: eftersom maximum av X1+X2 inte är mindre än minimum av X3 så är X1+X2 #< X3 inte definitivt sant

25 Ta bort värden [X1,X2,X3] in 1..4, X1+X2 #< X3 (1) Beräkna nytt maximum av X1,X2 max(x1) max(x3)-min(x2)=4-1-1=2 max(x2) max(x3)-min(x1)=4-1-1=2 (2) Beräkna nytt minimum av X3 min(x3) min(x1)+min(x2)=1+1+1=3 X1:1..2 X2:1..2 X3:3..4

26 Sökning Så länge inte alla villkor är deaktiverade kan man inte veta säkert om det finns någon lösning alltså Man måste söka värden för alla variabler

27 Optimering En sökning som fixerar alla variabler (också CostVar) minimize(goal, CostVar) Börja om varje gång en bättre lösning hittas

28 Globala villkor Verkar på en variabel-mängd i motsats till villkor mellan några få variabler Starka nödvändiga villkor OR, geometri, grafteori, flödesteori Komponenter generiska, multiple purpose, stark propagering

29 Villkoret alldifferent all_different(vars) List of dvar Alla Vars har olika värden. V1 in 1..3, V2 in 2..4, V3 in 1..2, all_different([v1,v2,v3]), labeling([v1,v2,v3]) [1,3,2] [1,4,2] [2,3,1] [2,4,1] [3,2,1] [3,4,1] [3,4,2]

30 Villkoret element element(index, Table, Value) dvar List of dvar dvar Table[Index] = Value. X in 1..5, Y in 1..6, element(x,[4,8,1,4,2,0],y), labeling([x,y]) [1,4] [3,1] [4,4] [5,2]

31 Villkoret cumulative cumulative(origins,durations,heights,limit) ListDvars ListDvars ListDvars Int quantity of resource duration Limit height task origin time

32 Exempel: cumulative O1 in 1..2, O2 in 3..3, D1 in 2..3, D2 in 2..2, H1 in 1..4, H2 in 2..3 cumulative([o1,o2],[d1,d2],[h1,h2],4), labeling([o1,d1,h1,o2,d2,h2]). [1,2,1,3,2,2] [1,3,1,3,2,3] [1,2,1,3,2,3] [1,3,2,3,2,2] [1,2,2,3,2,2] [2,2,1,3,2,2] [1,2,2,3,2,3] [2,2,1,3,2,3] [1,2,3,3,2,2] [2,2,2,3,2,2] [1,2,3,3,2,3] [2,3,1,3,2,2] [1,2,4,3,2,2] [2,3,1,3,2,3] [1,2,4,3,2,3] [2,3,2,3,2,2] [1,3,1,3,2,2]

33 Tillämpningar av cumulative Förnybar resurs disjunktiv schemaläggning 1 kumulativ schemaläggning Ej förnybar resurs producent-konsument Bin-packing Placering

34 Producent-Konsument Produced Quantity P Producer task Stock Consumer task Final Stock Consumed Quantity C Initial Stock

35 Områden som bidragit Artificiell Intelligens villkorsnät, datadriven beräkning Logikprogrammering Prolog, icke-determinism Diskret Matematik grafteori, kombinatorik, gruppteori Optimeringslära flödesanalys, modelleringsspråk Algoritmer och datastrukturer datastrukturer, inkrementalitet

36 Historia ALICE (J.L.Laurière) 1976 CHIP (ECRC) Industri (Bull, Cosytec, Ilog) Bibliotek Inbäddat i C++ Ilog, CHIP, Figaro Inbäddat i Java Koalog, JCL, MINERVA Inbäddat i Prolog SICStus, ECLiPSe, GNU, IF Inbäddat i CLAIRE ÉCLAIR, CHOCO Inbäddat i Oz Mozart Inbäddat i OCaml FaCiLe Inbäddat i Mercury HAL Inbäddat i Lisp, Python,

37 Villkorsteknik på SICS - tillämpningar Schemaläggning och resursallokering för järnvägar (SJ, Green Cargo) Optimering av IP-trafik (Telia) Automatisk handel (Trading Agents) DNA-sekvensanalys (Pyrosequencing) Analys av globalt genuttryck (Global Genomics) Styrprogram för bläckstråleskrivare (HP) Schemaläggning av valsverk (Ovako Steel) Frekvensplanering for basstationer (Ericsson)

38 Villkorsteknik på SICS - forskning Globala villkor Bra abstraktioner/komponenter Klassificering Fundamentala principer Algoritmer Debugging Modellering och metoder Beslutstödsystem för schemaläggning och planering Plattform:

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

13 1MA302 Automatateori DV1 4 A D, M 1TD442 Algoritmer och datastrukturer DV1 6 A D

13 1MA302 Automatateori DV1 4 A D, M 1TD442 Algoritmer och datastrukturer DV1 6 A D 4.2 Årskurs 1 Studierna inleds med en frivillig introduktion till utbildningen omfattande två veckor. Därefter enligt nedanstående lista. Period Kurskod Kursnamn Poäng Nivå Ämne 11 1MA316 Introduktionskurs

Läs mer

Big Data för Fordon och Transport! Vår Digitala Framtid, Trafikverket!! Björn Bjurling, SICS Swedish ICT, 20150421!

Big Data för Fordon och Transport! Vår Digitala Framtid, Trafikverket!! Björn Bjurling, SICS Swedish ICT, 20150421! Big Data för Fordon och Transport! Vår Digitala Framtid, Trafikverket!! Björn Bjurling, SICS Swedish ICT, 20150421! Sammanfattning! Big Data är överallt! Big Data Analytics används för att utvinna information

Läs mer

Kandidatprogrammet i matematik

Kandidatprogrammet i matematik Kandidatprogrammet i matematik Pågående utvecklingsarbete EF-nämndens möte 2011-09-09 Innehåll 1. Förstahandssökande till kandidatprogram i matematik a) Ansökningstal b) Orsaker till minskning vid LiU

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering A. Johan Eliasson johane@cs.umu.se Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer

Läs mer

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 1 & 2 INTRODUKTION Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga

Läs mer

JavaScript del 3 If, Operatorer och Confirm

JavaScript del 3 If, Operatorer och Confirm JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att

Läs mer

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

Program & programmering

Program & programmering Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,

Läs mer

Tentamen i. TDDC67 Funktionell programmering och Lisp

Tentamen i. TDDC67 Funktionell programmering och Lisp 1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering

Läs mer

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö Datastrukturer och algoritmer Föreläsning 4 Test, Stack och Kö 1 Innehåll Test Datatyperna Stack och kö Specifikation och Gränssnitt Konstruktion Tillämpning 2 Testa VIKTIGT! Test går att göra under många

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

IT för personligt arbete F6

IT för personligt arbete F6 IT för personligt arbete F6 Datalogi del 2 DSV Peter Mozelius Datarepresentation Det som lagras i en dator representeras i grunden som 1:or och 0:or Dessa binära värden kan sedan tolkas på olika sätt i

Läs mer

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står skrivna: Oändligt

Läs mer

SKOLFS. beslutade den -- maj 2015.

SKOLFS. beslutade den -- maj 2015. SKOLFS Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan och inom kommunal vuxenutbildning på gymnasial nivå; beslutade den -- maj

Läs mer

T1-modulen Lektionerna 10-12. Radioamatörkurs OH6AG - 2011 OH6AG. Bearbetning och översättning: Thomas Anderssén, OH6NT Heikki Lahtivirta, OH2LH

T1-modulen Lektionerna 10-12. Radioamatörkurs OH6AG - 2011 OH6AG. Bearbetning och översättning: Thomas Anderssén, OH6NT Heikki Lahtivirta, OH2LH T1-modulen Lektionerna 10-12 Radioamatörkurs OH6AG - 2011 Bearbetning och översättning: Thomas Anderssén, OH6NT Original: Heikki Lahtivirta, OH2LH 1 Logikkretsar Logikkretsarna är digitala mikrokretsar.

Läs mer

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från

Läs mer

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Föreläsning 9: Turingmaskiner och oavgörbarhet Turingmaskinen Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen. Data är ett oändligt långt band där nollor och ettor står

Läs mer

Probabilistisk logik 2

Probabilistisk logik 2 729G43 Artificiell intelligens / 2016 Probabilistisk logik 2 Marco Kuhlmann Institutionen för datavetenskap Översikt Probabilistiska modeller Probabilistisk inferens 1: Betingad sannolikhet Probabilistisk

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 TDDC66 Datorsystem och programmering TDDC67 Funktionell programmering Programmering i Lisp, examinator TDDC67 föreläsare i Lisp Peter Dalenius examinator TDDC66 kursassistent i Lisp + ett stort antal

Läs mer

7, Diskreta strukturer

7, Diskreta strukturer Objektorienterad modellering och diskreta strukturer 7, Diskreta strukturer Sven Gestegård Robertz Datavetenskap, LTH 2015 Modeller Matematiska modeller Kontinuerliga modeller Kontinuerliga funktioner

Läs mer

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

Varför är logik viktig för datavetare?

Varför är logik viktig för datavetare? Varför är logik viktig för datavetare? 1. Datavetenskap handlar ofta om att automatisera processer som tidigare styrts av människor. Intuition, intelligens och mänskliga resonemang ersätts av beräkningar.

Läs mer

Sätt att skriva ut binärträd

Sätt att skriva ut binärträd Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer

Läs mer

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer 729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser

Läs mer

Logik. Boolesk algebra. Logik. Operationer. Boolesk algebra

Logik. Boolesk algebra. Logik. Operationer. Boolesk algebra Logik F4 Logik Boolesk algebra EDAA05 Roger Henriksson Jonas Wisbrant Konsten att, och vetenskapen om, att resonera och dra slutsatser. Vad behövs för att man ska kunna dra en slutsats? Hur kan man dra

Läs mer

de var svåra att implementera och var väldigt ineffektiva.

de var svåra att implementera och var väldigt ineffektiva. OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan

Läs mer

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad 1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen

Läs mer

Planering i matematik 5 för NA11 och ITT11. V Datum Kapitel Moment Anmärkning. Tis Övning 11:30-12: 40

Planering i matematik 5 för NA11 och ITT11. V Datum Kapitel Moment Anmärkning. Tis Övning 11:30-12: 40 1.1 Diskret Matematik s. 8 1.1 Delbarhetsregler och division med rest s. 12 3 11:30-12: 40 4 1.1 Kongruens s. 16 1.1 Beräkningar med kongruenser s. 19 11:30-12: 40 1 Talteori 1.2 Talföljder och summor

Läs mer

Universe Engine Rapport

Universe Engine Rapport 1 Universe Engine Rapport Alexander Mennborg 2017-05-08 2 Inledning I denna rapport diskuteras utvecklingsprocessen till projektet Universe Engine. Denna diskussion omfattar hela utveckling från starten

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Aletta Nylén http://user.it.uu.se/~aletta Epost: aletta.nylen@it.uu.se Rum: 1216 Kursinfo Lärare: Aletta Nylén Jesper Wilhelmsson Litteratur: Object-Oriented Software Development

Läs mer

Dagens föreläsning Programmering i Lisp Fö 7. Sammanfattning funktionell programmering Exempel på funktionella programspråk

Dagens föreläsning Programmering i Lisp Fö 7. Sammanfattning funktionell programmering Exempel på funktionella programspråk 1 Dagens föreläsning Programmering i Lisp Fö 7 Kopplingen funktionella programmering och diskret matematik. Jämför vad ni hittills gjort i denna kurs och i den diskreta matematiken, med referenser in i

Läs mer

7, Diskreta strukturer

7, Diskreta strukturer Objektorienterad modellering och diskreta strukturer 7, Diskreta strukturer Sven Gestegård Robertz Datavetenskap, LTH 2013 1 Inledning 2 Satslogik Inledning Satslogiska uttryck Resonemang och härledningar

Läs mer

Funktionell programmering

Funktionell programmering Funktionell programmering TDDD73 Funktionell och imperativ programmering i Python Föreläsning 8 Peter Dalenius Institutionen för datavetenskap 2013-10-09 Översikt Vad är ett programmeringsparadigm? Vad

Läs mer

Programdesign. Dokumentera. Dokumentera

Programdesign. Dokumentera. Dokumentera Programdesign Dokumentera Välj datastruktur så programmet blir så enkelt som möjligt. Välj algoritm så programmet blir lättläst, robust och effektivt. Analysera programmet för att få en bra metod. Överväganden

Läs mer

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

Dugga Datastrukturer (DAT036)

Dugga Datastrukturer (DAT036) Dugga Datastrukturer (DAT036) Duggans datum: 2012-11-21. Författare: Nils Anders Danielsson. För att en uppgift ska räknas som löst så måste en i princip helt korrekt lösning lämnas in. Enstaka mindre

Läs mer

Civilingenjörsprogrammet i industriell ekonomi

Civilingenjörsprogrammet i industriell ekonomi Civilingenjörsprogrammet i industriell ekonomi Introduktion till industriell ekonomi Programmeringsteknik med Python och Matlab Envariabelanalys 1 Envariabelanalys 2 År 1 Marknadsföring Ekonomisk teori

Läs mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: Föreläsning 1 OH: Övergripande information Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: * maskinspråk = ettor och nollor, kan bara en maskin förstå. * programmeringsspråk

Läs mer

Matematikerprogrammet, 180 högskolepoäng Applied Mathematics Programme, 180 credits

Matematikerprogrammet, 180 högskolepoäng Applied Mathematics Programme, 180 credits Dnr: 2014/2308 3.1.1 Utbildningsplan Fakulteten för teknik Matematikerprogrammet, 180 högskolepoäng Applied Mathematics Programme, 180 credits Nivå Grundnivå Fastställande av utbildningsplan Fastställd

Läs mer

Major Release 3.1. Vad innebär Major Release 3.1 för svenska användare?

Major Release 3.1. Vad innebär Major Release 3.1 för svenska användare? Major Release 3.1 Vad innebär Major Release 3.1 för svenska användare? Agenda Vad förändras och vad innebär det? Förändringarna i detalj Dokumentation Sammanfattning Vad förändras och vad innebär det?

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,

Läs mer

Om matematikämnet på CLGYM. Obligatoriska kurser och förslag på valbara kurser. Inför 2015-16.

Om matematikämnet på CLGYM. Obligatoriska kurser och förslag på valbara kurser. Inför 2015-16. Hans Thunberg april 2015 KTH Matematik Om matematikämnet på CLGYM. Obligatoriska kurser och förslag på valbara kurser. Inför 2015-16. Allmänt om matematikkurserna på CL CL är ett av de mest matematikintensiva

Läs mer

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer Innehåll Datastrukturer och algoritmer Föreläsning 1! Introduktion och begrepp Kurspresentation! - Målsättning! - Kursutvärdering! - Upplägg! - Översikt! Viktiga begrepp "1 "2 Mina målsättningar Alla ska

Läs mer

Programvaruteknik, hp

Programvaruteknik, hp 1 (6) Utbildningsplan för: Programvaruteknik, 120-180 hp Software Engineering, 120-180 Credits Allmänna data om programmet Programkod Tillträdesnivå Diarienummer TPVAG Grundnivå MIUN 2010/1734 Högskolepoäng

Läs mer

SKOLFS. beslutade den XXX 2017.

SKOLFS. beslutade den XXX 2017. 1 (11) Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning

Läs mer

Bearbetning och Presentation

Bearbetning och Presentation Bearbetning och Presentation Vid en bottenfaunaundersökning i Nydalasjön räknade man antalet ringmaskar i 5 vattenprover. Följande värden erhölls:,,,4,,,5,,8,4,,,0,3, Det verkar vara diskreta observationer.

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 12: Logikprogrammering Henrik Björklund Umeå universitet 16. oktober, 2014 Prolog Prolog har två klasser av formler. Atomära formler: country(sweden, 9000000).

Läs mer

Introduktion till programmering. Programspråk och paradigmer

Introduktion till programmering. Programspråk och paradigmer Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly

Läs mer

4.7 Utbildningsplan för masterprogrammet i matematik

4.7 Utbildningsplan för masterprogrammet i matematik 4.7 Utbildningsplan för masterprogrammet i matematik 4.7.1 Beskrivning av programmet Kurserna inom programmet är på avancerad nivå. Efter genomgånget program kan studenten avlägga Masterexamen i matematik.

Läs mer

Allmän (och viktig) kursinformation

Allmän (och viktig) kursinformation Föreläsningsöversikt 729G04 Programmering och diskret matematik Kursintroduktion Jody Foo Department of Computer and Information Science (IDA) Linköping University, Sweden Allmän kursinformation Vad är

Läs mer

Programschemat är beslutat av utbildningsledare Annika Björklund vid akademin för innovation, design och teknik

Programschemat är beslutat av utbildningsledare Annika Björklund vid akademin för innovation, design och teknik Programschema för liga programmet, 180 hp Programkod: Gäller för läsåret 2015/2016 Programschemat är beslutat av utbildningsledare Annika Björklund vid akademin för innovation, design och teknik 2015-02-05.

Läs mer

En uppgift eller text markerad med * betyder att uppgiften kan uppfattas som lite svårare. ** ännu svårare.

En uppgift eller text markerad med * betyder att uppgiften kan uppfattas som lite svårare. ** ännu svårare. Matematik b, repetition Kan du det här? Primitiva funktioner och integraler o o o Vad menas med primitiv funktion? Kan du hitta en primitiv funktion? Vad menas med en integral? Kan du beräkna en integral?

Läs mer

Diskret matematik: Övningstentamen 4

Diskret matematik: Övningstentamen 4 Diskret matematik: Övningstentamen 22. Beskriv alla relationer, som är såväl ekvivalensrelationer som partiella ordningar. Är någon välbekant relation sådan? 23. Ange alla heltalslösningar till ekvationen

Läs mer

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur

Imperativ programmering. Imperativ programmering konstruktioner i Lisp. Datastrukturer (kap ) arraystruktur poststruktur Imperativ programmering konstruktioner i Lisp Imperativ programmering I den imperativa programmeringen skriver vi program satsvist. Datastrukturer (kap.-.) aystruktur poststruktur Iterativa uttryck (avs.)

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Innehåll Datastrukturer och algoritmer Föreläsning 2 Fält Specifikation, Konstruktion och Specifikation, Konstruktion Dynamiska resurser Länk Länkade celler 23 24 Konstruktion av Fält Fysisk datatyp i

Läs mer

Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)

Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val) Villkor och tester Ett program består i princip av: Deklarationer som inför variabler, dvs namngivna minnesceller som används för att lagra data. int a; double radie=1.0, yta; double d = 4.5; String s

Läs mer

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 2. Föreläsning 3 Jody Foo, 729G74 IT och programmering, grundkurs Tema 2. Föreläsning 3 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Information i grafstrukturer Diskret matematik Relationer: kopplingar mellan mängder Funktioner

Läs mer

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19 Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium IV v. 2.0, den 29/4 2013 III. Metalogik 17-19 Modeller för satslogiken 18.1 Vi har tidigare sagt att en modell är en tolkning av en teori

Läs mer

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin

Linjärprogramming. EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin Linjärprogramming EG2205 Föreläsning 7, vårterminen 2015 Mikael Amelin 1 Kursmål Formulera korttidsplaneringsproblem för vatten- och värmekraftsystem. 2 Tillämpad matematisk programming Korttidsplanering

Läs mer

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers. Programmering Seminarier i datavetenskap, datorteknik och informationsteknik Niklas Broberg niklas.broberg@chalmers.se 2015-09-24 Hur många från Datavetenskap? Datateknik? Informationsteknik? Översikt

Läs mer

Guide för Innehållsleverantörer

Guide för Innehållsleverantörer Library of Labs Content Provider s Guide Guide för Innehållsleverantörer Inom LiLa ramverket är innehållsleverantörer ansvariga för att skapa experiment som "LiLa Learning Objects", att ladda upp dessa

Läs mer

Pseudokod Analys av algoritmer Rekursiva algoritmer

Pseudokod Analys av algoritmer Rekursiva algoritmer Föreläsning 7 Pseudokod Analys av algoritmer Rekursiva algoritmer För att beskriva algoritmer kommer vi använda oss av en pseudokod (låtsas programspråk) definierad i kursboken Appendix C. Vi går igenom

Läs mer

ACOOR Rapport 1. TUFF: Systemöversikt och arkitektur. Martin Aronsson, Per Kreuger, Simon Lindblom och Per Holmberg. Email: piak@sics.

ACOOR Rapport 1. TUFF: Systemöversikt och arkitektur. Martin Aronsson, Per Kreuger, Simon Lindblom och Per Holmberg. Email: piak@sics. ISRN:SICS-T--2000/06-SE ISSN 1100-3154 ACOOR Rapport 1 TUFF: Systemöversikt och arkitektur Martin Aronsson, Per Kreuger, Simon Lindblom och Per Holmberg Email: piak@sics.se 2000-03-20 SICS Technical Report

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Datastrukturer och algoritmer Föreläsning 5 Algoritmer & Analys av Algoritmer Algoritmer Vad är det? Innehåll Mer formellt om algoritmer beräkningsbarhet Att beskriva algoritmer Analysera algoritmer Exekveringstid,

Läs mer

Profilen Kommunikation för Y, Yi, D & IT

Profilen Kommunikation för Y, Yi, D & IT Profilen Kommunikation för Y, Yi, D & IT Profilansvarig: Emil Björnson Docent, ISY/Kommunikationssystem www.commsys.isy.liu.se Profilansvarig: Emil Björnson Civilingenjör i Teknisk matematik, LTH, 2007

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

Bilaga 1: GPS-teknik, en liten ordlista

Bilaga 1: GPS-teknik, en liten ordlista Bilaga 1: GPS-teknik, en liten ordlista SATELLITSYSTEM GPS Global Positioning System. Amerikanskt satellitbaserat navigationssystem uppbyggt av USA:s försvarsmakt. Systemet är globalt täckande och används

Läs mer

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen Datastrukturer och algoritmer Föreläsning 15 Inför tentamen 1 Innehåll Kursvärdering Vi behöver granskare! Repetition Genomgång av gammal tenta 2 Första föreläsningen: målsättningar Alla ska höja sig ett

Läs mer

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur Objekt-orienterad utveckling Saker man vill uppnå: Objektorienterad analys och design Sven-Olof Nyström Uppsala Universitet 16 mars 2005 en systematisk metod för att gå från problembeskrivning till färdigt

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Exempel på problem där materialet i kursen används Hitta k största bland n element Histogramproblemet Schemaläggning PFK (Föreläsning 13) VT 2013 1 / 15 Hitta k största bland n

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Försättsblad till skriftlig tentamen vid Linköpings Universitet Datum för tentamen 2013-06-05 Sal Tid 08:00 12:00 Kurskod Provkod Kursnamn/benämning Institution Antal uppgifter som ingår i tentamen Antal

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

Innehållsförteckning

Innehållsförteckning Innehållsförteckning Ämne Sida Program Hur ska man lära sig programmering med Java? 11 Kapitel 1 Introduktion till programmering 13 1.1 Vad är programmering? 14 1.2 Vad är en algoritm? 16 1.3 Olika sätt

Läs mer

Trädstrukturer och grafer

Trädstrukturer och grafer Översikt Trädstrukturer och grafer Trädstrukturer Grundbegrepp Binära träd Sökning i träd Grafer Sökning i grafer Programmering tillämpningar och datastrukturer Varför olika datastrukturer? Olika datastrukturer

Läs mer

2015-09-17 Andreas Rosengren

2015-09-17 Andreas Rosengren Innehåll Vad är Industri 4.0? Varför just nu? Utmaningar för industrin Vad innebär industri 4.0 för svensk industri på kort och lång sikt? Industriell forskning inom industri 4.0 FFI LISA Bakgrund Tyska

Läs mer

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 3 Laboration 3 Visualisering (och implementering) av sortering Exempel på grafik (med Swing-paketet) Frågor 1 Laboration 3 Visualisering

Läs mer

Exempel: Förel Rekursion III Nr 14. Uno Holmer, Chalmers,

Exempel: Förel Rekursion III Nr 14. Uno Holmer, Chalmers, Exempel: Kappsäcksproblemet Backtracking Dynamisk programmering Föreläsning (Weiss kap..-) Kan man ur en grupp föremål F,,F N med vikterna V,,V N välja ut en delgrupp som väger exakt M kilo? Exempel: föremål

Läs mer

729G06 Föreläsning 1 Objektorienterad programmering

729G06 Föreläsning 1 Objektorienterad programmering Översikt Formalia Vad är objektorienterad programmering 729G06 Föreläsning 1 Objektorienterad programmering Definieria klasser Skapa och använda objekt Annika Silvervarg Ciltab, IDA, Linköpings universitet

Läs mer

Logik och kontrollstrukturer

Logik och kontrollstrukturer Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch

Läs mer

Avdelningen för informations- och kommunikationssystem Fakulteten för naturvetenskap, teknik och medier

Avdelningen för informations- och kommunikationssystem Fakulteten för naturvetenskap, teknik och medier 1 (6) Utbildningsplan för: Datateknik, 180 hp Computer Science Allmänna data om programmet Programkod Tillträdesnivå Diarienummer TDATG Grundnivå 2007/127 Högskolepoäng 180 Ansvarig avdelning Ansvarig

Läs mer

729G04 PYTHON 6 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden

729G04 PYTHON 6 JODY FOO. Department of Computer and Information Science (IDA) Linköping University, Sweden 729G04 PYTHON 6 JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden Dagens föreläsning Nya verktyg IPython Texteditorer Ny datatyp Dictionary Abstraktion Felhantering

Läs mer

Kursinformation Grundkurs i programmering med Python

Kursinformation Grundkurs i programmering med Python Hösten 2009 Två kurser i en 5DV105 - Programmeringsteknik med Python och MATLAB Programmeringsteori Föreläsningar om Python Färdighetsövning Laborationer i Python 5DV106 - Programmering i Python Praktisk

Läs mer

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 1 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 1 Jody Foo, 729G74 IT och programmering, grundkurs Tema 3. Föreläsning 1 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Tema 3: Experiment Verktyget Python Vad kan man använda Python till? Python-paket Lite mer om

Läs mer

Objektorienterad analys och design

Objektorienterad analys och design Objektorienterad analys och design Sven-Olof Nyström Uppsala Universitet 16 mars 2005 1 Objekt-orienterad analys och design: Litteratur Skansholm: Kapitel 4 Se även 1. http://www.uml.org/ 2. http://www-306.ibm.com/software/rational/uml/

Läs mer

Datavetenskapligt program, 180 högskolepoäng

Datavetenskapligt program, 180 högskolepoäng GÖTEBORGS UNIVERSITET UTBILDNINGSPLAN IT-fakultetsstyrelsen 2013-02-14 Datavetenskapligt program, 180 högskolepoäng (Computer Science, Bachelor s Programme, 180 credits) Grundnivå/First level 1. Fastställande

Läs mer

Programschema för Civilingenjörsprogrammet i robotik, 300 hp. Gäller för läsåret 2012/2013. Programschema för 2012/2013 CCV20.

Programschema för Civilingenjörsprogrammet i robotik, 300 hp. Gäller för läsåret 2012/2013. Programschema för 2012/2013 CCV20. Programschema för Civilingenjörsprogrammet i robotik, 300 hp Programkod: Gäller för läsåret 2012/2013 Programschemat är beslutat av bitr utbildningsledare Kristina Lundqvist vid akademin för innovation,

Läs mer

Sociologi GR (A) Sociologisk Metod Examination #2 Peter Axelsson. N Minimum Maximum Mean Std. Deviation

Sociologi GR (A) Sociologisk Metod Examination #2 Peter Axelsson. N Minimum Maximum Mean Std. Deviation Uppgift 1 Vikt Vikt är en variabel på kvotskalan. Det gör att vi kan räkna med aritmetiskt medelvärde (m) som centralmått (Djurefeldt, 2003:59). Medelvärdet är 35,85 kg. Det saknas värden för två observationer,

Läs mer

Programschemat är beslutat avutbildningsledare Kristina Lundqvist vid akademin för innovation, design och teknik 2012-02-07.

Programschemat är beslutat avutbildningsledare Kristina Lundqvist vid akademin för innovation, design och teknik 2012-02-07. Programschema för liga programmet, 180 hp Programkod: Gäller för läsåret 2012/2013 Programschemat är beslutat avutbildningsledare Kristina Lundqvist vid akademin för innovation, design och teknik 2012-02-07.

Läs mer

Datorövning 5. Statistisk teori med tillämpningar. Lära sig beräkna konfidensintervall och utföra hypotestest för:

Datorövning 5. Statistisk teori med tillämpningar. Lära sig beräkna konfidensintervall och utföra hypotestest för: Datorövning 5 Statistisk teori med tillämpningar Hypotestest i SAS Syfte Lära sig beräkna konfidensintervall och utföra hypotestest för: 1. Populationsmedelvärdet, µ. 2. Skillnaden mellan två populationsmedelvärden,

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Försättsblad till skriftlig tentamen vid Linköpings Universitet Datum för tentamen 2014-03-18 Sal Tid 08:00 12:00 Kurskod Provkod Kursnamn/benämning Institution Antal uppgifter som ingår i tentamen Antal

Läs mer

Allmänt om Mathematica

Allmänt om Mathematica Allmänt om Mathematica Utvecklades av Wolfram Research (Stephen Wolfram) på 80-talet Programmet finns bl.a. till Windows, Mac OS X, Linux. Finns (åtminstone) installerat i ASA B121 (Stansen), i matematik

Läs mer

Matematik inom tekniksektorn Adam Andersson, MY-dagen 2016

Matematik inom tekniksektorn Adam Andersson, MY-dagen 2016 Matematik inom tekniksektorn Adam Andersson, MY-dagen 2016 Om mig Min bakgrund: Konsult på Syntronic sedan juni 2016 Om mig Min bakgrund: Konsult på Syntronic sedan juni 2016 Forskare i matematik på TU-Berlin

Läs mer