parse a pdf in c# : Bookmarks pdf Library software component .net winforms wpf mvc CVX0-part1410

The CVX Users’ Guide
Release2.1
MichaelC.Grant,Stephen P.Boyd
CVXResearch,Inc.
June10,2015
Bookmarks pdf - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
creating bookmarks in pdf files; bookmark page in pdf
Bookmarks pdf - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
acrobat split pdf bookmark; how to create bookmark in pdf with
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
document file. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview
how to bookmark a pdf page; create bookmarks in pdf from excel
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
creating bookmarks in pdf documents; how to bookmark a pdf in reader
CONTENTS
1 Introduction
1
1.1
WhatisCVX? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2
Whatisdisciplinedconvexprogramming? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3
WhatCVXisnot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4
Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Installation
5
2.1
Supportedplatforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2
InstallingaCVXProfessionallicense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3
SolversincludedwithCVX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Aquickstart
9
3.1
Leastsquares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2
Bound-constrainedleastsquares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3
Othernormsandfunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4
Otherconstraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.5
Anoptimaltrade-offcurve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 TheBasics
19
4.1
cvx_beginandcvx_end. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3
Objectivefunctions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4
Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.5
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.6
Setmembership . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.7
Dualvariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.8
Assignmentandexpressionholders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5 TheDCPruleset
29
5.1
Ataxonomyofcurvature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2
Top-levelrules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3
Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.4
Expressionrules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.5
Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.6
Compositions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.7
Monotonicityinnonlinearcompositions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
i
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Demo Code in VB.NET. The following VB.NET codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
create bookmark pdf file; add bookmark pdf
C# PDF File Compress Library: Compress reduce PDF size in C#.net
NET framework. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. C# class demo
bookmark template pdf; bookmarks pdf file
5.8
Scalarquadraticforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6 Semidefiniteprogrammingmode
39
7 Geometricprogrammingmode
41
7.1
Top-levelrules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
7.2
Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.3
Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
8 Solvers
45
8.1
Supportedsolvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8.2
Selectingasolver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.3
Controllingscreenoutput . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
8.4
Interpretingtheresults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8.5
Controllingprecision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.6
Advancedsolversettings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
9 Referenceguide
53
9.1
Arithmeticoperators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9.2
Built-infunctions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
9.3
Newfunctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
9.4
Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.5
Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
10 Support
63
10.1 TheCVXForum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
10.2 Bugreports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
10.3 Whatisabug? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
10.4 Handlingnumericalissues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
10.5 CVXProfessionalsupport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
11 Advancedtopics
67
11.1 Eliminatingquadraticforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
11.2 Indexeddualvariables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
11.3 Thesuccessiveapproximationmethod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
11.4 Powerfunctionsandp-norms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
11.5 Overdeterminedproblems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
11.6 Addingnewfunctionstotheatomlibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
12 License
77
12.1 CVXProfessionalLicense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
12.2 CVXStandardLicense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
12.3 TheFreeSolverClause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
12.4 Bundledsolvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
12.5 Examplelibrary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
12.6 NoWarranty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
13 CitingCVX
81
ii
.NET PDF SDK - Description of All PDF Processing Control Feastures
Fully featured PDF Viewer in HTML5; Outstanding rendering of PDF documents; Full page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail display;
add bookmark pdf file; export excel to pdf with bookmarks
XDoc.Word for .NET, Advanced .NET Word Processing Features
& rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Conversion. Word Create. Create Word from PDF; Create Word
how to add bookmarks to a pdf; editing bookmarks in pdf
14 CreditsandAcknowledgements
83
15 UsingGurobiwithCVX
85
15.1 AboutGurobi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
15.2 UsingthebundledversionofGurobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
15.3 UsingCVXwithastandaloneGurobiinstallation. . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
15.4 SelectingGurobiasyourdefaultsolver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
15.5 ObtainingsupportforCVXandGurobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
16 UsingMOSEKwithCVX
89
16.1 AboutMOSEK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
16.2 UsingthebundledversionofMOSEK. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
16.3 UsingCVXwithseparateMOSEKinstallation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
16.4 SelectingMOSEKasyourdefaultsolver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
16.5 ObtainingsupportforCVXandMOSEK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Bibliography
91
Index
93
iii
XDoc.Excel for .NET, Comprehensive .NET Excel Imaging Features
zooming & rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. Excel Convert. Convert Excel to PDF; Convert Excel
bookmark pdf in preview; add bookmarks to pdf
XDoc.PowerPoint for .NET, All Mature Features Introductions
& rotation; Outlines, bookmarks, & thumbnail display; Integrated annotation; More about Web Viewer ▶. PowerPoint Convert. Convert PowerPoint to PDF; Convert
how to bookmark a page in pdf document; bookmarks in pdf files
iv
CHAPTER
ONE
INTRODUCTION
1.1 WhatisCVX?
CVXisamodelingsystemforconstructingandsolvingdisciplinedconvexprograms(DCPs).CVXsupports
anumberofstandardproblemtypes, includinglinearandquadraticprograms(LPs/QPs), second-order
coneprograms(SOCPs), andsemidefiniteprograms(SDPs). CVXcanalsosolvemuchmorecomplex
convexoptimizationproblems,includingmanyinvolvingnondifferentiablefunctions,suchas‘
1
norms.You
canuseCVXtoconvenientlyformulateandsolveconstrainednormminimization,entropymaximization,
determinantmaximization,andmanyotherconvexprograms. Asofversion2.0,CVXalsosolvesmixed
integerdisciplinedconvexprograms(MIDCPs)aswell,withanappropriateinteger-capablesolver.
TouseCVXeffectively,youneedtoknowatleastabitaboutconvexoptimization. Forbackgroundon
convexoptimization,seethebookConvexOptimization[BV04]ortheStanfordcourseEE364A.
CVXisimplementedinMatlab,effectivelyturningMatlabintoanoptimizationmodelinglanguage.Model
specificationsareconstructedusingcommonMatlaboperationsandfunctions,andstandardMatlabcode
canbefreelymixedwiththesespecifications.Thiscombinationmakesitsimpletoperformthecalculations
neededtoformoptimizationproblems,ortoprocesstheresultsobtainedfromtheirsolution.Forexample,
itiseasytocomputeanoptimaltrade-offcurvebyformingandsolvingafamilyofoptimizationproblems
byvaryingtheconstraints. Asanotherexample,CVXcanbeusedasacomponentofalargersystemthat
usesconvexoptimization,suchasabranchandboundmethod,oranengineeringdesignframework.
CVXprovidesspecialmodestosimplifytheconstructionofproblemsfromtwospecificproblemclasses.
Insemidefiniteprogramming(SDP)mode,CVXappliesamatrixinterpretationtotheinequalityoperator,
sothatlinearmatrixinequalities(LMIs)andSDPsmaybeexpressedinamorenaturalform.Ingeometric
programming(GP)mode,CVXacceptsallofthespecialfunctionsandcombinationrulesofgeometricpro-
gramming,includingmonomials,posynomials,andgeneralizedposynomials,andtransformssuchproblems
intoconvexformsothattheycanbesolvedefficiently.Forbackgroundongeometricprogramming,seethis
tutorialpaper[BKVH05].
PreviousversionsofCVXsupportedtwofreeSQLPsolvers,SeDuMi[Stu99]andSDPT3[TTT03].These
solversareincludedwiththeCVXdistribution. Startingwithversion2.0,CVXsupportstwocommercial
solversaswell,GurobiandMOSEK.Formoreinformation,seeSolvers.
TheabilitytouseCVXwithcommercialsolversisanewcapabilitythatwehavedecidedtoincludeunder
anewCVXProfessionallicensemodel.Academicuserswillbeabletoutilizethesefeaturesatnocharge,
butcommercialuserswillrequireapaidCVXProfessionallicense.Formoredetails,seeLicensing.
1
TheCVXUsers’Guide,Release2.1
1.1.1 What’snew?
Ifyoubrowsethesourcecodeanddocumentation,youwillfindindicationsofsupportforOctavewithCVX.
However:
Note: Unfortunately,foraverageendusers(thismeansyou!),Octavewillnotwork.Thecurrentlyreleased
versionsofOctave,includingversions3.8.0andearlier,donotsupportCVX.Pleasedonotwasteyourtime
bytrying!
WeareworkinghardwiththeOctaveteamonfinalupdatestobringCVXtoOctave,andweanticipate
version3.8.1or3.9.0willbeready.WeaddthisheretowarnyounottointerpretthementionsofOctavein
thecodeasahiddencodetotryityourself!
1.2 Whatisdisciplinedconvexprogramming?
Disciplinedconvexprogrammingisamethodologyforconstructingconvexoptimizationproblemsproposed
byMichaelGrant,StephenBoyd,andYinyuYe[GBY06],[Gra04]. Itismeanttosupporttheformulation
andconstructionofoptimizationproblemsthattheuserintendsfromtheoutsettobeconvex.
Disciplinedconvexprogrammingimposesasetofconventionsorrules, whichwecalltheDCPruleset.
Problemswhichadheretotherulesetcanberapidlyandautomaticallyverifiedasconvexandconvertedto
solvableform.Problemsthatviolatetherulesetarerejected—evenwhentheproblemisconvex.Thatisnot
tosaythatsuchproblemscannotbesolvedusingDCP;theyjustneedtoberewritteninawaythatconforms
totheDCPruleset.
AdetaileddescriptionoftheDCPrulesetisgiveninTheDCPruleset.Itisextremelyimportantforanyone
whointendstoactivelyuseCVXtounderstandit. Therulesetissimpletolearn,andisdrawnfrombasic
principlesofconvexanalysis. Inreturnforacceptingtherestrictionsimposedbytheruleset,weobtain
considerablebenefits,suchasautomaticconversionofproblemstosolvableform,andfullsupportfornon-
differentiablefunctions.Inpractice,wehavefoundthatdisciplinedconvexprogramscloselyresembletheir
naturalmathematicalforms.
1.2.1 Mixedintegerproblems
Withversion2.0,CVXnowsupportsmixedintegerdisciplinedconvexprograms(MIDCPs).AMIDCPis
amodelthatobeysthesameconvexityrulesasstandardDCPs,exceptthatoneormoreofitsvariablesis
constrainedtotakeonintegralvalues.Inotherwords,iftheintegerconstraintsareremoved,theresultisa
standardDCP.
UnlikeatrueDCP,amixedintegerproblemisnotconvex.Findingtheglobaloptimumrequiresthecombi-
nationofatraditionalconvexoptimizationalgorithmwithanexhaustivesearchsuchasabranch-and-bound
algorithm.SomeCVXsolversdonotincludethissecondpieceandthereforedonotsupportMIDCPs;see
Solversformoreinformation.Whatismore,eventhebestsolverscannotguaranteethateverymoderately-
sizedMIDCPcanbesolvedinareasonableamountoftime.
MixedintegerdisciplinedconvexprogrammingrepresentsnewterritoryfortheCVXmodelingframework—
andforthesupportingsolvers as well. Whilesolversformixedintegerlinearandquadraticprograms
2
Chapter1. Introduction
TheCVXUsers’Guide,Release2.1
(MILP/MIQP)arereasonablymature,supportformoregeneralconvexnonlinearitiesisarelativelynew
development.WeanticipatethatMIDCPsupportwillimproveovertime.
1.3 WhatCVXisnot
CVXisnotmeanttobeatoolforcheckingifyourproblemisconvex.Youneedtoknowabitaboutconvex
optimizationtoeffectivelyuseCVX;otherwiseyouaretheproverbialmonkeyatthetypewriter,hopingto
(accidentally)typeinavaliddisciplinedconvexprogram.Ifyouarenotcertainthatyourproblemisconvex
beforeyouenteritintoCVX,youareusingthetoolimproperly,andyoureffortswilllikelyfail.
CVXisnotmeantforverylargeproblems,soifyourproblemisverylarge(forexample,alargeimage
processingormachinelearningproblem),CVXisunlikelytoworkwell(oratall). Forsuchproblemsyou
willlikelyneedtodirectlycallasolver,ortodevelopyourownmethods,togettheefficiencyyouneed.
ForsuchproblemsCVXcanplayanimportantrole,however. Beforestartingtodevelopaspecialized
large-scalemethod,youcanuseCVXtosolvescaled-downorsimplifiedversionsoftheproblem,torapidly
experimentwithexactlywhatproblemyouwanttosolve.Forimagereconstruction,forexample,youmight
useCVXtoexperimentwithdifferentproblemformulationson5050pixelimages.
CVXwillsolvemanymediumandlargescaleproblems,providedtheyhaveexploitablestructure(such
as sparsity),andyouavoidforloops, whichcanbeslowinMatlab, andfunctionslikelogandexp
thatrequiresuccessiveapproximation. Ifyouencounterdifficultiesinsolvinglargeprobleminstances,
considerpostingyourmodeltotheCVXForum;theCVXcommunitymaybeabletosuggestanequivalent
formulationthatCVXcanprocessmoreefficiently.
1.4 Licensing
CVXisfreeforuseinbothacademicandcommercialsettingswhenpairedwithafreesolver—including
theversionsofSeDuMiandSDPT3thatareincludedwiththepackage.
Withversion2.0, wehaveaddedtheabilitytoconnectCVXtocommercialsolversaswell. Thisnew
functionalityisreleasedunderaCVXProfessionalproducttierwhichweintendtolicensetocommercial
usersforafee,andoffertoacademicusersatnocharge.Thelicensingstructureisasfollows:
• Allusersarefreetousethestandardfeatures s ofCVXatnocharge. Thisincludestheabilityto
constructandsolveanyofthemodelssupportedbythefreesolversSeDuMiandSDPT3.
• CommercialuserswhowishtosolveCVXmodelsusingGurobiorMOSEKwillneedtopurchasea
CVXProfessionallicense. PleasesendanemailtoCVXResearchforinquiries. . foranavailability
scheduleandpricingdetails.
• AcademicusersmayutilizetheCVXProfessionalcapabilityatnocharge. Toobtainanacademic
license,pleasevisittheAcademiclicensespageontheCVXResearchwebsite.
ThebulkofCVXremainsopensourceunderaslightlymodifiedversionoftheGPLVersion2license. A
smallnumberoffilesthatsupporttheCVXProfessionalfunctionalityremainclosedsource. Ifthosefiles
areremoved,themodifiedpackageremainsfullyfunctionalusingthefreesolvers,SeDuMiandSDPT3.
Usersmayfreelymodify,augment,andredistributethisfreeversionofCVX,aslongasallmodifications
1.3. WhatCVXisnot
3
TheCVXUsers’Guide,Release2.1
arethemselvesreleasedunderthesamelicense.Thisincludesaddingsupportfornewsolversreleasedunder
afreesoftwarelicensesuchastheGPL.Formoredetails,pleaseseethefullLicensingsection.
4
Chapter1. Introduction
Documents you may be interested
Documents you may be interested