Hjelp, vi har algdat! En liten kickstart på TDT4120 Algoritmer og datastrukturer Åsmund Eldhuset.

Slides:



Advertisements
Liknende presentasjoner
DROPS simulator - konspetet •En ny tilnærming til å forhindre DROPS •En interaktive 3D simulering av riggen, som gjør det mulig for brukeren å: - utføre.
Advertisements

Everyone Print Kalle Snarheim.
Ordspr./ proverbs 4,18 Rettferdiges sti er som morgenens lysskjær, det vokser til det blir høylys dag. The way of the righteous is like the first gleam.
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
Régis Laurent Director of Operations, Global Knowledge Competencies include: Gold Learning Silver System Management Touch, flip and fold Håvard Haukeberg.
Gruppemedlemmer Gruppa består av: Magnus Strand Nekstad – s156159
The Trondheim Toll Ring System
NUUG.topic = Ruby.new Johannes Brodwall Takk til Dave Thomas for bruk av enkelte slides.
Ledelsesinformasjonsystem
Øvingsforelesning 9 Flytnettverk, maksimum flyt og maksimum bipartitt matching Jon Marius Venstad Redigert og forelest av Gleb Sizov.
Det er ganske underlig med disse sentrale salmene. Selv om du ikke er religiøs burde du lese dette.
Making a Home Page. Why a Web Page? Easier to submit labs electronically (lack of color printers at university); Easier to submit labs electronically.
Diploma Supplement Ting å huske Ingenting skal fjernes fra standard oppsett Informasjon om DS skal være med på institusjonens.
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
@ TDT4120 Algoritmer og datastrukturer Introduksjon til øvingsopplegg og programmering i Python Åsmund Eldhuset asmunde stud.ntnu.no.
Lynkurs Prosessregulering (Crash course process control)
3D-structure of bacterial ribsoomes. Components required for protein-synthesis in E. coli.
Åsmund Eldhuset asmunde stud.ntnu.no folk.ntnu.no/asmunde/algdat/
TDT4120 Algoritmer og datastrukturer Introduksjon til øvingsopplegg og programmering i Python Basert på foiler av Åsmund Eldhuset Flikket på og presentert.
Hjelp, vi har algdat! En liten kickstart på TDT4120 Algoritmer og datastrukturer Åsmund Eldhuset.
Global oppvarming Mål: Vi skal lage en enkel database med temperaturdata fra 1770 til i dag. Deretter tilby et brukergrensesnitt mot databasen.
SINTEF Fiskeri og havbruk AS 1 Yngelfôr til torsk Kan vi erstatte levendefôr med nytt formulert fôr nå? Jose Rainuzzo Seniorforsker SINTEF Fiskeri og Havbruk.
Konseptuell modell Hvordan skal dette se ut ifra brukeren?
Men hva mener de som har klart det? Børge Haugset (NTNU&SINTEF)
1 Information search for the research protocol in IIC/IID Medical Library, 2013.
WHY WE’RE STRENGTHENING ROTARY. OBJECTIVES  Clarify what Rotary stands for, how it’s different and why people should care  Elevate awareness and understanding.
Triggere Mutasjoner i basen. Triggers Triggers are stored procedures that execute automatically when something (event) happens in the database: : data.
  Den perfekte julegaven til Javakoden din Johannes Brodwall Steria.
Ytre miljø Q4 CAKE. Information for OIM/section leaders; The presentation is to be presented in the General safety meeting together with the film on the.
Hvordan lage seg en wikispaces Gå til bestem deg for hvilket wikispaces du vil ha (public, protected, private).
Økonomiske forutsetninger Gullfaks landsbyen 2007.
Citation and reference tools for your master thesis
Inger Langseth Program for Lærerutdanning Knyttet til Ny bok om vurdering i alle fag, red. Dobson, Engh.
02 - Java datatyper Grundlæggende om datatyper og variable.
Magnus Haug Algoritmer og Datastrukturer
Publisering i åpne kanaler Anne Storset Institutt for mattrygghet og Infeksjonsbiologi.
IT services and support Information to new employees at UIB.
Problem set 2 By Thomas and Lars PS: Choose the environment, choose many pages per sheet. Problem set 2 Exercise 11/29 Laget av: Thomas Aanensen og Lars.
Planning and controlling a project Content: Results from Reflection for action The project settings and objectives Project Management Project Planning.
Engelsk mal: Startside The Ageing Society – current situation, challenges and opportunities Steinar Barstad Warszawa 25th November 2014 Specialist Director.
 A fjord is a small bit of water between two mountains or cliffs and they are very famous in Norway.
A PROJECT WEEK 45: INTRO+ RESEARCH AND PLANNING WEEK 46: RESEARCH AND WIKI WRITING WEEK 47: NO ENGLISH WEEK 48: FINISHING TOUCHES WEEK 49: ORAL PRESENTATIONS.
INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.
What is a good text? And how do we get pupils to write them?
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Misjon – å krysse grenser
The Thompson Schools Improvement Project Process Improvement Training Slides (Current State Slides Only) October 2009.
Primary French Presentation 10 Colours L.I. C’est de quelle couleur?
Radio listening in Norway
Title: «How to use different tools and/or machines in the workshop»
Relevant questions for the Reference Group
Responsibility The purpose of the tutor reflections are to
Vaccine Delivery in Developing Countries
Biological quality assurance in Norway– Biological standards
LO2 – Understand Computer Software
Kaveet Patel – Education Officer
Transferring Education Benefits
Getting to Genuine Collaboration
What are the Chances CSCOPE Unit 08 Lesson 02.
We are now using Chain SMS to message patients!
What is the diagram to the left? Explain to the best of your ability!
Advising Freshmen in the Second Semester
TGr Closing Report May 2005 Date: Authors: January 2002
A Roadmap to Upa Yoga Facilitator Training
Developing an Educational Web Application for Student Training in Geographical Information Systems (GIS) Derek Morris Jr. , Edsel Norwood , Disaiah Bennett.
(You can delete these instructions before sharing with students.)
Formalities in the final months May 22, 2019
Utskrift av presentasjonen:

Hjelp, vi har algdat! En liten kickstart på TDT4120 Algoritmer og datastrukturer Åsmund Eldhuset

Lecturer Magnus Lie Hetland Associate Professor Currently on sick leave

Substitute lecturer Åsmund Eldhuset Computer scientist (NTNU, 2004-2009) Senior consultant at BEKK

General information The lectures will be given in Norwegian only (but are not mandatory) Textbook: Introduction to Algorithms, 3rd edition (MIT Press), by Cormen, Leiserson, Rivest, and Stein Written in English Covers almost all of the curriculum (see "Pensum" on the web page); the presentation slides from the main lectures sometimes contains additional info, which is also in the curriculum 2nd edition will mostly work too There will be a dedicated study assistant to help the English-speaking students with the exercises and other matters Please send me an email at aasmund.eldhuset@gmail.com to let me know that you want to use this study assistant The lectures only serve as a help to better understand the material; there is no information in the lectures that is not also in the textbook or on the web site

General information Course web page: http://www.idi.ntnu.no/emner/tdt4120 Exam: Saturday, December 7, 09:00 – 13:00 Feel free to contact me, after the lecture or by mail, if you have any questions. Contact Lars Greger Hagen with any questions related to the exercises: gregerlars@gmail.com

Exercises There are mandatory exercises; you must pass these in order to be allowed to take the exam There is one exercise pair each week, 13 pairs in total Theoretical exercise: multiple choice questions; gives max 50 points Practical exercise: programming; gives max 50 points You need at least 300 points from the first six exercises and at least 300 points from the last six (no, this doesn't add up – I'll ask the other staff about it) Warning: passing the exercises is significantly much easier than passing the exam! Further information will be given on the so-called exercise lectures, held each Tuesday 14:15 – 17:00 in F1 Tomorrow: Introduction to programming Python. Be there or be □!

Caveat emptor ("let the buyer beware") This is a challenging course, especially if you are not comfortable with programming The curriculum itself is extensive; it is fully possible to learn it, but it requires a lot of work and cannot be done the week before the exam The exam itself tends to ask questions in creative ways that require a deep understanding of the material Best approach: Work continuously with the course Make sure that you actually understand why the algorithms work Solve a lot of previous exams and learn how to adapt and combine existing algorithms into new ones, and to recognize exising problems formulated in new ways

Formålet med første forelesning Gi oversikt over faget Forklare kjernebegreper Forhåpentligvis gjøre det litt mindre skremmende Det er ikke meningen at denne forelesningen skal få dere til å forstå alt! Det vil gå fort i svingene Emnene vil dekkes veldig overfladisk Er dette en god idé? Det finner vi ut i dag!

Algoritmer Hva kjennetegner en algoritme? Det er en fremgangsmåte... ...for å løse... ...et problem Beskrivelsen av fremgangsmåten må: Være utvetydig Bestå av enkle steg Kreve et endelig antall operasjoner Gi korrekt resultat

Problemer og instanser Problem == Problemstilling En spesifikk utgave av en problemstilling == instans (av problem) En algoritme kan implementeres i et programmeringsspråk Man skriver et program som gjennomfører stegene i algoritmen Som input til programmet gir man en probleminstans i form av en tekstfil Programmet produserer løsningen i form av tekst-output

Pseudokode Java: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } } Pseudokode: print "Hello world!" Python: print("Hello world!") Brainfuck: ++++++++++[>+++++++>++++++++++>+++>+< <<<-]>++.>+.+++++++..+++.>++.<<++++++ +++++++++.>.+++.------.--------.>+.>.

Python Jeg anbefaler å lære seg Python og bruke det Python er veldig egnet til denne typen programmering, og koden blir mye kortere enn med Java Java: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); } }

Divide and conquer / splitt og hersk (teknikk)

Mergesort / flettesortering (algoritme) 7 5 1 9 8 3 2 7 5 1 9 8 3 2 5 7 1 9 3 8 2 7 5 1 9 8 3 2 1 5 7 9 2 3 8 7 5 1 9 8 3 2 1 2 3 5 7 8 9 7 5 1 9 8 3 2

Mergesort / flettesortering (algoritme) 7 5 1 9 8 3 2 7 5 1 9 8 3 2 5 7 5 1 9 8 3 2 7 1 9 3 8 2 3 7 5 1 9 8 3 2 7 5 1 9 8 3 2

Kompleksitetsanalyse

Rekursjon og rekurrensanalyse

Heap (datastruktur)

Sortering (problemstilling)

Heapsort (algoritme)

Quicksort (algoritme)

Counting sort / tellesortering (algoritme)

Radix sort / radix-sortering (algoritme)

Bucket sort / bøttesortering (algoritme)

nth order statistics / n'te ordens statistikk (problemstilling) og algoritmer for det

Abstract data structure / abstrakt datastruktur (begrep)

Linked list / lenket liste (datastruktur)

Stack / stakk / stabel (datastruktur)

Queue / kø (datastruktur)

Priority queue / prioritetskø (datastruktur)

Tree / tre (datastruktur)

Binary tree / binærtre (datastruktur)

Hash table / hashtabell (datastruktur)

Binary search tree / binært søketre (datastruktur)

Red-black tree / rød-svart-tre (datastruktur)

Dynamic programming / dynamisk programmering (teknikk)

Dynamisk programmering-problemer

Greedy algorithms / grådige algoritmer (teknikk)

Huffman tree og Huffman coding / Huffman-tre og Huffman-koding (algoritme+ datastruktur)

Grådige problemer

B-tree / B-tre (datastruktur) Et tre hvor hver node har veldig mange barn Hver node fylles ut med barn inntil den når en fast grense (f.eks. 1000) for antall barn; da må den splittes opp i to nye noder Treet blir dermed veldig grunt, og er spesielt egnet for trær som må lagres på harddisk Harddisker er veldig treige, og leser data i store blokker av gangen – derfor er det bra å ha et grunt tre (få noder må leses inn), og det er ok at hver node har en lang barneliste

Graph / graf (datastruktur)

Representasjon av grafer

Depth first search / dybde-først-søk (algoritme)

Breadth first search / bredde-først-søk (algoritme)

Topological sort / topologisk sortering (problemstilling og algoritme)

Minimum spanning tree (problemstilling)

Kruskal's algorithm

Prim's algorithm

(One-to-all) Shortest path (problemstilling)

Dijkstra's algorithm

Bellman-Ford algorithm

DAG-shortest-paths (algoritme)

All-to-all shortest path (problemstilling)

Floyd-Warshall algorithm

Maximum flow (problemstilling)

Ford-Fulkerson method

Edmonds-Karp algorithm

Max-flow-min-cut-teoremet

Bipartite matching (problemstilling)

Multithreading / parallel algorithms

Linear programming (problemstilling) Lineærprogrammering går ut på å, gitt en lineær funksjon av flere variabler, og lineære ligninger/ulikheter med disse variablene, velge variabelverdier slik at funksjonen får størst (evt. minst) mulig verdi – uten at ligningene/ulikhetene blir brutt Eksempel: Maksimer 5x + 3y gitt at x + y ≤ 8 og 7x – 5y ≥ 3 Ligningssett av denne typen kan modellere veldig mange forskjellige problemstillinger Boken viser bl.a. hvordan shortest path og maximum flow kan løses som lineærprogrammering (selv om dette vil være veldig treigt) Men det lar oss også løse en del problemstillinger som det ikke eksisterer spesialiserte algoritmer for – blant annet multicommodity flow og matchingproblemer hvor forskjellige par har forskjellig verdi Det finnes algoritmer for dette; boken beskriver the simplex algorithm, men den er ikke pensum

Formulering av andre problemstillinger som linear programming TODO: Er dette pensum fortsatt?

Circulation (problemstilling) TODO: Er dette pensum fortsatt?

NP-kompletthet (teori)

Eksamen