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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Min grundutbildning på universitetsnivå är inom fysik och kemi, med ytterligare kurser i matematik m.m.

Min grundutbildning på universitetsnivå är inom fysik och kemi, med ytterligare kurser i matematik m.m. CURRICULUM VITAE FÖR MIKAEL HÖGHEDE Min grundutbildning på snivå är inom fysik och kemi, med ytterligare kurser i matematik m.m. Jag är också utbildad kemitekniker på gymnasienivå från 4-årig kemiteknisk

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Civilingenjör i datateknik, 300 hp

Civilingenjör i datateknik, 300 hp 1 (7) Utbildningsplan för: Civilingenjör i datateknik, 300 hp Master of Science in Engineering - Computer Engineering, 300 higher education credits Allmänna data om programmet Programkod Tillträdesnivå

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

Kursplan. Matematiska och systemtekniska institutionen (MSI) Kurskod GUX712 Dnr MSI 03/04:16 Beslutsdatum 2003-10-10

Kursplan. Matematiska och systemtekniska institutionen (MSI) Kurskod GUX712 Dnr MSI 03/04:16 Beslutsdatum 2003-10-10 Kursplan Matematiska och systemtekniska institutionen (MSI) Kurskod GUX712 Dnr MSI 03/04:16 Beslutsdatum 2003-10-10 Kursens benämning Engelsk benämning Ämne Specialisering - ämnesfördjupning i matematik/matematikdidaktik

Läs mer

Tentamen SSY 065, onsdag 17/12, 08:30-12:30, H. Lärare: Petter Falkman, (772) 3723 Tider för lärarens närvaro: 09:30, 11:00

Tentamen SSY 065, onsdag 17/12, 08:30-12:30, H. Lärare: Petter Falkman, (772) 3723 Tider för lärarens närvaro: 09:30, 11:00 Industriautomation Tentamen SSY 065, onsdag 17/12, 08:30-12:30, H Lärare: Petter Falkman, (772) 3723 Tider för lärarens närvaro: 09:30, 11:00 Fullständig lösning ska lämnas på samtliga uppgifter. I förekommande

Läs mer

K3 Om andra ordningens predikatlogik

K3 Om andra ordningens predikatlogik KTH Matematik Bengt Ek Maj 2005 Kompletteringsmaterial till kursen 5B1928 Logik för D1: K3 Om andra ordningens predikatlogik Vi presenterar på dessa sidor kortfattat andra ordningens predikatlogik, vilket

Läs mer

Vilket behov av matematik finns inom högskoleingenjörsutbildningen?

Vilket behov av matematik finns inom högskoleingenjörsutbildningen? Vilket behov av matematik finns inom högskoleingenjörsutbildningen? Ett miniprojekt inom ramen för kursen Att utbilda blivande ingenjörer 7 presenterad vid ett seminarium i Manchester 1999-05-20-25 Owe

Läs mer

Magnus Berg Utvecklingsingenjör. Feb 2013 Verksamhetsoptimering SSAB Oxelösund

Magnus Berg Utvecklingsingenjör. Feb 2013 Verksamhetsoptimering SSAB Oxelösund Magnus Berg Utvecklingsingenjör Feb 2013 Verksamhetsoptimering SSAB Oxelösund SSABs nyckelsegment Anläggningsmaskiner Råmaterialhantering Tunga transporter Energi Bil Service Centers Industriella applikationer

Läs mer

MS-A409 Grundkurs i diskret matematik Appendix, del I

MS-A409 Grundkurs i diskret matematik Appendix, del I MS-A409 Grundkurs i diskret matematik Appendix, del I G. Gripenberg Aalto-universitetet 2 oktober 2013 G. Gripenberg (Aalto-universitetet) MS-A409 Grundkurs i diskret matematikappendix, del I 2 oktober

Läs mer

Malmö högskola 2012/2013 Teknik och samhälle

Malmö högskola 2012/2013 Teknik och samhälle Laboration 6 Till pseudokoduppgifterna och aktivitetsdiagrammen ges inga direkta lösningar då dessa går att göra på så väldigt många olika sätt. Pseudokod Skriv pseudokod för följande problem Åka tåg Du

Läs mer

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering. EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade

Läs mer

Tentamen Datastrukturer D DAT 036/DIT960

Tentamen Datastrukturer D DAT 036/DIT960 Tentamen Datastrukturer D DAT 036/DIT960 17 december 2010 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 0736-341480 eller ankn 1035 Max poäng på tentamen: 60. Betygsgränser, CTH: 3 = 24 p, 4 = 36 p, 5 =

Läs mer

Att välja kurser på Datateknik år 4-5

Att välja kurser på Datateknik år 4-5 Att välja kurser på Datateknik -5 Inledning På D-programmet är alla kurser i årskurs 1-3 obligatoriska. Efter det är alla kurser valfria. Det skapar möjligheter för dig att sätta din egen prägel på utbildningen

Läs mer

Centrala begrepp i prolog och logikprogrammering. Annamaris lista

Centrala begrepp i prolog och logikprogrammering. Annamaris lista Centrala begrepp i prolog och logikprogrammering Annamaris lista Databas med fakta och regler: Ett prolog-system består av en databas av fakta, och regler som gäller för dessa fakta. Fakta har formen av

Läs mer

EDAA01 Programmeringsteknik - fördjupningskurs

EDAA01 Programmeringsteknik - fördjupningskurs EDAA01 Programmeringsteknik - fördjupningskurs Läsperiod lp 1+2 (Ges även lp 3) 7.5 hp anna.axelsson@cs.lth.se sandra.nilsson@cs.lth.se http://cs.lth.se/edaa01ht Förkunskapskrav: Godkänd på obligatoriska

Läs mer

Välkomna till NADA. Paradigm i datalogin. Vad är ett paradigm

Välkomna till NADA. Paradigm i datalogin. Vad är ett paradigm Välkomna till NADA (Numerisk Analys och DAtalogi) och kursen Paradigm i datalogin, orienteringskurs GN, 7,5 hp (PID) Välkomna... Jag: Serafim Dahl Osquars Backe 2, plan 5 Rum 1531 Postfack: Lindstedtsvägen

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 för ingenjörer, VT06 2 Repetition Repetition -

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316

Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C Datatyp Aritmetiska operatorer Omvandling av typer Reserverade ord Mikael Djurfeldt Logiska operatorer

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Formell Verifiering. Hur vet man att ett system fungerar korrekt? Lisa Kaati

Formell Verifiering. Hur vet man att ett system fungerar korrekt? Lisa Kaati Formell Verifiering Hur vet man att ett system fungerar korrekt? Lisa Kaati Innehåll Motivering Formell verifiering Modellkontroll (model checking) Verifiering av kod Forskning Dator system finns överallt

Läs mer

Kandidatprogrammet i datavetenskap

Kandidatprogrammet i datavetenskap Kandidatprogrammet i datavetenskap Bachelor of Science Programme in Computing Science Omfattning: 180 högskolepoäng Examen: Filosofie kandidatexamen med huvudområdet datavetenskap. Examensbeskrivningen

Läs mer

TDP007 Konstruktion av datorspråk Hemtentamen

TDP007 Konstruktion av datorspråk Hemtentamen TDP007 Konstruktion av datorspråk Hemtentamen 2008-08-20 Hemtentamen är kompletterings- och omexaminationstillfälle för de studenter som missat hela eller delar av inlämningar och seminarier, moment LAB1,

Läs mer

Matematik: Det centrala innehållet i kurserna i Gy 2011 i relation till kurserna i Gy 2000

Matematik: Det centrala innehållet i kurserna i Gy 2011 i relation till kurserna i Gy 2000 2011-12-21 Matematik: Det centrala innehållet i kurserna i Gy 2011 i relation till kurserna i Gy 2000 Kurs 1a och 2a i Gy 2011 jämfört med kurs A och B i Gy 2000 Poängomfattningen har ökat från 150 poäng

Läs mer

OCCUPATIONAL RF EXPOSURE FROM BASE STATION ANTENNAS ON ROOF-TOPS AND BUILDINGS

OCCUPATIONAL RF EXPOSURE FROM BASE STATION ANTENNAS ON ROOF-TOPS AND BUILDINGS OCCUPATIONAL RF EXPOSURE FROM BASE STATION ANTENNAS ON ROOF-TOPS AND BUILDINGS Kjell Hansson Mild 1,2, Eduardo Figueroa Karlström 1, Lennart Hamberg 3 and Christer Törnevik 3 1. National Institute of Working

Läs mer

DD1361 Programmeringsparadigm HT16

DD1361 Programmeringsparadigm HT16 DD1361 Programmeringsparadigm HT16 Logikprogrammering 1 Dilian Gurov, TCS Delkursinnehåll Logikprogrammering Logisk versus procedurell läsning Kontrollflöde Unifiering, Backtracking, Snitt Negation Induktiva

Läs mer

ITinstitutionen bit för bit

ITinstitutionen bit för bit ITinstitutionen bit för bit Institutionen för informations teknologi: världs ledande med en unik bredd och ett djupt vetenskapligt kunnande INSTITUTIONEN FÖR INFORMATIONS TEKNOLOGI unik bredd och unikt

Läs mer

Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret 2014-2015. L0 - Grunder i C++

Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret 2014-2015. L0 - Grunder i C++ Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret 01-015 L0 - Grunder i C++ Det här är den första lektionen i kursen Introduktion till algoritmer vid Matematikgymnasiet, läsåret

Läs mer