computational geometrycomputational geometry
TRANSCRIPT
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
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
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
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.
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))
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
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
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
Course IntroductionCourse Introduction
Course DescriptionCourse Description
W b PW b PWeb PageWeb Page
http://www.cs.uml.edu/~kdaniels/courses/ALG_504_F12.html
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
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
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
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
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
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
Syllabus (current plan)Syllabus (current plan)
Syllabus (current plan)Syllabus (current plan)
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.
GradingGrading
• Homework 30%• Paper Discussion 5%• Project 35%• Midterm (O’Rourke) 30% (open book, notes )
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
Course IntroductionCourse Introduction
My Geometry Related ResearchMy Geometry Related Research
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
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
to be continued in another slide showto be continued in another slide show