computational geometrycomputational geometry

25
UMass Lowell Computer Science 91.504 UMass Lowell Computer Science 91.504 Advanced Algorithms Computational Geometry Advanced Algorithms Computational Geometry Computational Geometry Prof. Karen Daniels Fall 2012 Computational Geometry Prof. Karen Daniels Fall 2012 Fall, 2012 Fall, 2012 Lecture 1 Lecture 1 C It d ti C It d ti Course Introduction Course Introduction

Upload: others

Post on 08-May-2022

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computational GeometryComputational Geometry

UMass Lowell Computer Science 91.504UMass Lowell Computer Science 91.504Advanced Algorithms

Computational GeometryAdvanced Algorithms

Computational GeometryComputational GeometryProf. Karen Daniels

Fall 2012

Computational GeometryProf. Karen Daniels

Fall 2012Fall, 2012Fall, 2012

Lecture 1Lecture 1C I t d tiC I t d tiCourse IntroductionCourse Introduction

Page 2: Computational GeometryComputational Geometry

Course IntroductionCourse Introduction

What is What is Computational Geometry?Computational Geometry?Computational Geometry?Computational Geometry?

Began in 1970’s: Began in 1970’s: Efficient geometric algorithmsEfficient geometric algorithms

Page 3: Computational GeometryComputational Geometry

Advanced AlgorithmsComputational GeometryAdvanced AlgorithmsComputational GeometryComputational GeometryComputational Geometry

Computer Computer

Design Analyze

for for feasibility, estimation, optimization problemsfeasibility, estimation, optimization problems Covering for Covering for

Geometric Geometric VisualizationVisualization

GraphicsGraphics

covering, assignment, clustering, packing, layout, covering, assignment, clustering, packing, layout, geometric modelinggeometric modeling

ModelingModelingVisualizationVisualization

Data Mining, Data Mining, Clustering, for Clustering, for BioinformaticsBioinformatics

ApplyMeshing Meshing

Topological Invariant Topological Invariant Estimation for Estimation for Geometric ModelingGeometric Modeling

Packing for ManufacturingPacking for Manufacturing

for for Geometric Geometric Modeling Modeling

Courtesy of Cadence Design SystemsCourtesy of Cadence Design Systems

gg

CADCAD

Page 4: Computational GeometryComputational Geometry

Additional ApplicationsAdditional Applications

•• Numerous ones in O’Rourke, Numerous ones in O’Rourke, deBergdeBerg•• deBergdeBerg application highlights (Chapter 1):application highlights (Chapter 1):

Computer GraphicsComputer Graphics•• Computer GraphicsComputer Graphics•• Realistic 3D scenesRealistic 3D scenes

•• RoboticsRoboticsRoboticsRobotics•• Motion planningMotion planning

•• Geographic Information Systems (GIS)Geographic Information Systems (GIS)•• Terrain modelingTerrain modeling

•• CAD/CAMCAD/CAM•• Boolean operations on objectsBoolean operations on objects

•• Other: molecular modeling, pattern recognition. Other: molecular modeling, pattern recognition.

Page 5: Computational GeometryComputational Geometry

Typical ProblemsTypical Problems

bin packingbin packing •• maintaining line maintaining line •• bin packingbin packing

•• VoronoiVoronoi diagramdiagram

ggarrangementsarrangements

•• polygonpolygon•• simplifying simplifying

polygonspolygons

•• polygon polygon partitioningpartitioning

polygonspolygons•• shape similarityshape similarity •• nearest neighbor nearest neighbor

searchsearch•• convex hullconvex hull •• kdkd--treestrees

SOURCESOURCE: Steve Skiena’s Algorithm Design Manual : Steve Skiena’s Algorithm Design Manual (for problem descriptions, see graphics gallery at (for problem descriptions, see graphics gallery at http://www.cs.sunysb.edu/~algorith))

Page 6: Computational GeometryComputational Geometry

Common Computational Geometry StructuresCommon Computational Geometry StructuresGeometry StructuresGeometry Structures

Voronoi DiagramVoronoi DiagramConvex HullConvex Hull

New PointNew Point

source: O’Rourke, Computational Geometry in Csource: O’Rourke, Computational Geometry in C

Delaunay TriangulationDelaunay Triangulation

Page 7: Computational GeometryComputational Geometry

Sample Tools of the TradeSample Tools of the Trade

Al ith D i P tt /T h iAl ith D i P tt /T h iAlgorithm Design Patterns/Techniques:Algorithm Design Patterns/Techniques:binary searchbinary search dividedivide--andand--conquerconquer dualitydualityrandomizationrandomization sweepsweep--linelinederandomizationderandomization parallelismparallelism

Algorithm Analysis Techniques:Algorithm Analysis Techniques:asymptotic analysis, amortized analysisasymptotic analysis, amortized analysisasymptotic analysis, amortized analysisasymptotic analysis, amortized analysis

Data Structures:Data Structures:wingedwinged--edge, quadedge, quad--edge, edge, range tree, kdrange tree, kd--treetree

Th i l C S iTh i l C S i i i li i lTheoretical Computer ScienceTheoretical Computer Science principles:principles:NPNP--completeness, hardnesscompleteness, hardness

SummationsSummations SetsSets MATHMATH ProofsProofs GeometryGeometry

Growth of FunctionsGrowth of FunctionsSummationsSummations

RecurrencesRecurrencesProbabilityProbabilityProofsProofs GeometryGeometry

Graph TheoryGraph TheoryCombinatoricsCombinatorics

Linear AlgebraLinear Algebra

Page 8: Computational GeometryComputational Geometry

Computational Geometryin Context

Computational Geometryin Contextin Contextin Context

GeometryGeometryGeometryGeometry

D i A l

TheoreticalTheoreticalAppliedAppliedComputationalComputational

GeometryGeometry

Design Analyze

ComputerComputerScienceScience

ppppMathMath

GeometryGeometry

Efficient Efficient Geometric AlgorithmsGeometric Algorithms

Apply

Applied Computer ScienceApplied Computer Science

Page 9: Computational GeometryComputational Geometry

Course IntroductionCourse Introduction

Course DescriptionCourse Description

Page 10: Computational GeometryComputational Geometry

W b PW b PWeb PageWeb Page

http://www.cs.uml.edu/~kdaniels/courses/ALG_504_F12.html

Page 11: Computational GeometryComputational Geometry

Nature of the CourseNature of the Course

•• Elective undergraduate/graduate Computer Elective undergraduate/graduate Computer Science courseScience course

h d ih d i•• Theory and PracticeTheory and Practice•• Theory: “PencilTheory: “Pencil--andand--paper” exercisespaper” exercises

•• design an algorithmdesign an algorithmg gg g•• analyze its complexityanalyze its complexity•• modify an existing algorithmmodify an existing algorithm•• prove propertiesprove properties

•• PracticePractice•• ProgramsPrograms•• RealReal--world examplesworld examples

Page 12: Computational GeometryComputational Geometry

Course Structure: 2 PartsCourse Structure: 2 Parts

Advanced TopicsAdvanced Topics(sample topics)(sample topics)

(may change based on student interests)(may change based on student interests)

BasicsBasicsPolygon TriangulationPolygon TriangulationP i i iP i i i

Geometric Geometric ModelingModelingPartitioningPartitioningConvex HullsConvex HullsVoronoiVoronoi DiagramsDiagrams

VisualizationVisualization

VoronoiVoronoi DiagramsDiagramsArrangementsArrangementsSearch/IntersectionSearch/Intersection

Courtesy of Cadence Design SystemsCourtesy of Cadence Design Systems

Cl t iCl t i

Motion PlanningMotion Planning

ClusteringClustering

papers from literaturepapers from literatureppictures from ictures from SkienaSkiena, O’Rourke, Daniels, O’Rourke, Daniels

Page 13: Computational GeometryComputational Geometry

TextbooksTextbooks

• Required: q•• Computational Geometry in CComputational Geometry in C

•• second editionsecond edition•• by Joseph O’Rourkeby Joseph O’Rourke•• Cambridge University PressCambridge University Press•• 19981998•• see course web site for ISBN number(s) & errata listsee course web site for ISBN number(s) & errata list

Ordered for UML bookstore and can be ordered on-line

Web Site: http://cs.smith.edu/~orourke/books/compgeom.html

+ conference, journal papers+ conference, journal papers

Page 14: Computational GeometryComputational Geometry

Textbook Java Demo AppletTextbook Java Demo Applet

Code functionCode function Chapter pointerChapter pointer directorydirectoryCode functionCode function Chapter pointerChapter pointer directorydirectory----------------------------------------------------------------------------------------------------------TriangulateTriangulate Chapter 1, Code 1.14Chapter 1, Code 1.14 /tri/tri

Convex Hull(2D)Convex Hull(2D) Chapter 3,Chapter 3, Code 3.8Code 3.8 /graham/grahamConvex Hull(3D)Convex Hull(3D) Chapter 4, Code 4.8Chapter 4, Code 4.8 /chull/chullsphere.csphere.c Chapter 4, Fig. 4.15Chapter 4, Fig. 4.15 /sphere/sphereDelaunay Triang Delaunay Triang Chapter 5, Code 5.2Chapter 5, Code 5.2 /dt/dtSegSegIntSegSegInt Chapter 7, Code 7.2Chapter 7, Code 7.2 /segseg/segsegPointPoint--inin--polypoly Chapter 7, Code 7.13Chapter 7, Code 7.13 /inpoly/inpolyPointPoint--inin--hedronhedron Chapter 7, Code 7.15Chapter 7, Code 7.15 /inhedron/inhedronInt Conv PolyInt Conv Poly Chapter 7, Code 7.17Chapter 7, Code 7.17 /convconv/convconvMink ConvolveMink Convolve Chapter 8, Code 8.5Chapter 8, Code 8.5 /mink/mink

//Arm Move Arm Move Chapter 8, Code 8.7Chapter 8, Code 8.7 /arm/arm

http://cs.smith.edu/~orourke/books/CompGeom/CompGeom.html

Page 15: Computational GeometryComputational Geometry

TextbooksTextbooks

• Required: q•• Computational Geometry: Algorithms & Computational Geometry: Algorithms &

ApplicationsApplications•• third editionthird edition•• by de Berg, Cheong, van by de Berg, Cheong, van KreveldKreveld, ,

OOOvermarsOvermars•• SpringerSpringer•• 20082008•• 20082008•• see course web site for ISBN numbersee course web site for ISBN number

Ordered for UML bookstore and can be ordered on-lineWeb Site: http://www.cs.uu.nl/geobook

+ conference, journal papers+ conference, journal papers

Page 16: Computational GeometryComputational Geometry

PrerequisitesPrerequisites

Graduate Algorithms (91 503) orGraduate Algorithms (91 503) orGraduate Algorithms (91.503) or Graduate Algorithms (91.503) or Undergraduate Algorithms (91.404)Undergraduate Algorithms (91.404)Coding experience in C C++Coding experience in C C++Coding experience in C, C++Coding experience in C, C++

Project coding may be done in Java if desiredProject coding may be done in Java if desiredSt d d CS d tSt d d CS d t l l thl l thStandard CS graduateStandard CS graduate--level math level math prerequisites + high school Euclidean prerequisites + high school Euclidean geometrygeometrygeometrygeometry

additional helpful math background:additional helpful math background:linear algebra, topologylinear algebra, topologyS mmationsS mmations SetsSets MATHMATH ProofsProofs GeometryGeometrylinear algebra, topologylinear algebra, topology

Growth of FunctionsGrowth of Functions

SummationsSummations

RecurrencesRecurrences

SetsSets

ProbabilityProbability

ProofsProofs GeometryGeometry

Page 17: Computational GeometryComputational Geometry

Syllabus (current plan)Syllabus (current plan)

Page 18: Computational GeometryComputational Geometry

Syllabus (current plan)Syllabus (current plan)

Page 19: Computational GeometryComputational Geometry

Important DatesImportant Dates

•• Midterm Exam:Midterm Exam: Wednesday, 10/24Wednesday, 10/24O b kO b k•• Open books, open notesOpen books, open notes

•• Final Exam:Final Exam: nonenone•• Project PresentationsProject Presentations Wednesday, 12/5Wednesday, 12/5

If you have conflicts with exam date, please notify me as soon as possible.If you have conflicts with exam date, please notify me as soon as possible.

Page 20: Computational GeometryComputational Geometry

GradingGrading

• Homework 30%• Paper Discussion 5%• Project 35%• Midterm (O’Rourke) 30% (open book, notes )

Page 21: Computational GeometryComputational Geometry

HomeworkHomework

11 W 9/5 W 9/5 W 9/12 O’Rourke Chapter 1W 9/12 O’Rourke Chapter 1HW#HW# AssignedAssigned DueDue ContentContent

ppde Berg Chapters 1, 3.1de Berg Chapters 1, 3.1CGAL documentationCGAL documentationCGAL documentation CGAL documentation

Start working on installing CGAL on machine of your choice.Start working on installing CGAL on machine of your choice.g g yg g y

Time permitting, if you have not taken 91.503 start reading Time permitting, if you have not taken 91.503 start reading Chapter 33 ofChapter 33 of Cormen’sCormen’s ““Introduction to AlgorithmsIntroduction to Algorithms ””Chapter 33 of Chapter 33 of Cormen sCormen s Introduction to AlgorithmsIntroduction to Algorithms..Accompanying slides are in Lecture 8 of:Accompanying slides are in Lecture 8 of:http://www.cs.uml.edu/~kdaniels/courses/ALG_503_S12.htmlhttp://www.cs.uml.edu/~kdaniels/courses/ALG_503_S12.html

Page 22: Computational GeometryComputational Geometry

Course IntroductionCourse Introduction

My Geometry Related ResearchMy Geometry Related Research

Page 23: Computational GeometryComputational Geometry

My Previous Applied Algorithms ResearchMy Previous Applied Algorithms ResearchApplied Algorithms ResearchApplied Algorithms Research

•• VLSI Design:VLSI Design:•• Custom layout Custom layout

algorithms for silicon algorithms for silicon compilercompiler

Geometric Modeling:Geometric Modeling:•• Geometric Modeling:Geometric Modeling:•• Partitioning cubic BPartitioning cubic B--

splinespline curvescurvespp

•• Manufacturing:Manufacturing:•• see taxonomy on next see taxonomy on next yy

slideslide

Page 24: Computational GeometryComputational Geometry

Taxonomy of ProblemsSupporting Apparel Manufacturing

Taxonomy of ProblemsSupporting Apparel ManufacturingSupporting Apparel ManufacturingSupporting Apparel Manufacturing

DistanceDistance--Based Based Maximum Maximum

Geometric RestrictionGeometric Restriction SubdivisionSubdivisiona ua u

RectangleRectangle

Ordered Ordered ContainmentContainmentLimited GapsLimited Gaps

Minimal Minimal EnclosureEnclosure

ContainmentContainment

EnclosureEnclosureMaximal CoverMaximal Cover

ColumnColumn--Based LayoutBased LayoutTwoTwo--Phase LayoutPhase Layout

Lattice Lattice PackingPacking

Page 25: Computational GeometryComputational Geometry

to be continued in another slide showto be continued in another slide show