Keresési algoritmusok, optimalizáció

Hasonló dokumentumok
Számítógép és programozás 2

EuroOffice Optimalizáló (Solver)

c adatpontok és az ismeretlen pont közötti kovariancia vektora

Számítógépes döntéstámogatás. Genetikus algoritmusok

11. Előadás. 11. előadás Bevezetés a lineáris programozásba

Mesterséges Intelligencia MI

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

Programozás alapjai. 6. gyakorlat Futásidő, rekurzió, feladatmegoldás

M-Fájlok létrehozása MATLAB-ban

Atomerőművek üzemtanának fizikai alapjai. MATLAB használata

1/ gyakorlat. Lineáris Programozási feladatok megoldása szimplex módszerrel. Pécsi Tudományegyetem PTI

MATLAB. 9. gyakorlat. Cellatömbök, struktúrák, fájlműveletek

Függvények ábrázolása

Adatsor feldolgozása Scilab-bal

Gazdasági matematika II. vizsgadolgozat, megoldással,

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Tájékoztató. Használható segédeszköz: -

4. Használati útmutatás

8. gyakorlat Pointerek, dinamikus memóriakezelés

1. oldal összesen 6 oldal FARFISA TD6100 DIGITÁLIS NYOMÓGOMB PANEL

Időjárási csúcsok. Bemenet. Kimenet. Példa. Korlátok. Nemes Tihamér Nemzetközi Informatikai Tanulmányi Verseny, 2-3. korcsoport

Optimalizálás alapfeladata Legmeredekebb lejtő Lagrange függvény Log-barrier módszer Büntetőfüggvény módszer 2017/

Programozási segédlet

3. ZH-ban a minimum pontszám 15

Kereső algoritmusok a diszkrét optimalizálás problémájához

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

Rácsvonalak parancsot. Válasszuk az Elsődleges függőleges rácsvonalak parancs Segédrácsok parancsát!

Kereső algoritmusok a diszkrét optimalizálás problémájához

BEKÉRT ADAT KÉPERNYŐRE ÍRÁSA KÖRNYEZETI VÁLTOZÓK FÁJL REDEZETT KIÍRÁSA KÖNYVTÁRBAN BEJEGYZÉSEK SZÁMA FÁJLBAN SZÁM NÖVELÉSE. #!

A sz.ot.ag. III. Magyar Számítógépes Nyelvészeti Konferencia december 8. Bíró Tamás, ELTE, Budapest / RUG, Groningen, NL 1/ 16

MATLAB alapismeretek I.

Assignment problem Hozzárendelési feladat (Szállítási feladat speciális esete)

Bevezetés az informatikába

Matematika III előadás

Algoritmusok Tervezése. 1. Előadás MATLAB 1. Dr. Bécsi Tamás

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

29. Visszalépéses keresés 1.

Keresések Gregorics Tibor Mesterséges intelligencia

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Visszalépéses kiválogatás

Matlab Fuzzy Logic Toolbox

Konjugált gradiens módszer

Atomerőművi reaktor töltettervezése, mint optimalizációs probléma. de a mai órán leginkább játszani fogunk

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Modellek kalibrációja és a paraméterérzékenységi vizsgálat Kovács Balázs & Szanyi János

Mesterséges Intelligencia MI

BASH SCRIPT SHELL JEGYZETEK

Problémamegoldás kereséssel. Mesterséges intelligencia március 7.

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Rekurzió. Dr. Iványi Péter

Operációkutatás. Vaik Zsuzsanna. Budapest október 10. First Prev Next Last Go Back Full Screen Close Quit

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Követelmények Motiváció Matematikai modellezés: példák A lineáris programozás alapfeladata 2017/ Szegedi Tudományegyetem Informatikai Intézet

Mintavételes szabályozás mikrovezérlő segítségével

Informatikai tehetséggondozás:

Amortizációs költségelemzés

Táblázatkezelés 5. - Függvények

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés. Szekvenciális fájlkezelés Fájlok használata

Programozás alapjai II. (7. ea) C++

Adatszerkezetek 2. Dr. Iványi Péter

MATLAB alapismeretek II.

Adatbázis rendszerek Gy: Algoritmusok C-ben

Branch-and-Bound. 1. Az egészértéketű programozás. a korlátozás és szétválasztás módszere Bevezető Definíció. 11.

Bevezetés a programozásba I 4. gyakorlat. PLanG: Szekvenciális fájlkezelés

Permutáció n = 3 esetében: Eredmény: permutációk száma: P n = n! romámul: permutări, angolul: permutation

Hatékonyság 1. előadás

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

3. Gyakorlat ellenőrzés nélküli osztályozás

Nem-lineáris programozási feladatok

Bevezető. Mi is az a GeoGebra? Tények

9. előadás. Programozás-elmélet. Programozási tételek Elemi prog. Sorozatszámítás Eldöntés Kiválasztás Lin. keresés Megszámolás Maximum.

A 2016/2017 tanévi Országos Középiskolai Tanulmányi Verseny első forduló javítási-értékelési útmutató. INFORMATIKA II. (programozás) kategória

A szimplex tábla. p. 1

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

C programozás. 1 óra Bevezetés

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Tartalomjegyzék. Tartalomjegyzék... 3 Előszó... 9

Dr. habil. Maróti György

Példatár a bevezetés a Matlab programozásába tárgyhoz

Bevezetés a programozásba I 3. gyakorlat. PLanG: Programozási tételek. Programozási tételek Algoritmusok

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Nemlineáris programozás 2.

Android Commander Felhasználói kézikönyv

A számok kiíratásának formátuma

Képrekonstrukció 9. előadás

Objektumorientált Programozás VI.

Gazdasági matematika II. vizsgadolgozat megoldása, június 10

D X F F Á J L K É S Z Í T É S E M A T L A B B A L

Maple: Deriváltak és a függvény nevezetes pontjai

SZÁLLÍTÁSI FELADAT KÖRUTAZÁSI MODELL WINDOWS QUANTITATIVE SUPPORT BUSINESS PROGRAMMAL (QSB) JEGYZET Ábragyűjtemény Dr. Réger Béla LÉPÉSRŐL - LÉPÉSRE

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Makrók használata az Excelben - Makróhibák kezelése, biztonságos jelszavak generálása

2008 II. 19. Internetes alkalmazások forgalmának mérése és osztályozása. Február 19

Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer

Visszalépéses keresés

A programozás alapjai 1 Rekurzió

Imagine Logo Tanmenet évfolyam

Átírás:

Keresési algoritmusok, optimalizáció Az eddig tanultakból a mostani részben gyakran használt (emiatt szükséges az ismeretük) programozási ismeretek: függvények létrehozása, meghívása (ld. 3. óra anyagában) mátrixok indexelésének ismerete (ld. 1. óra anyagában) feltétel- és ciklusszervezés (ld. 1. óra anyagában) rand(), floor() függvény Hibakeresés a saját kódunkban: Break-point: az Editor ablakban ha el van mentve a kódunk, akkor a bal oldalon a nem üres sorok mellett vonalak jelennek meg. Ezekre a vonalakra rákattintva un. break-pointokat tudunk létrehozni. Ezeket pirosas körrel jelöli. (eltüntetni ismételt rákattintással lehet) Amikor futtatjuk a kódunkat, és odaér a megfelelő sorhoz, akkor mielőtt még azt a sort lefuttatná, megáll a futás. Ezt a command window-ban K>>-val jelöli. A felső menü ekkor átlép a debug módhoz, ahol lehet továbbengedni a program futását (F5) (a következő break-pointig), vagy akár egyetlen sort is léphetünk (F10) (a függvényekből nem lép ki egy sor továbbléptetésével). Amikor áll a program, akkor a command windowba parancsokat írhatunk be (vigyázat! meg is lehet változtatni a változók értékét), vagy a Workspace ablakban (ld. 1. óra) meg tudjuk nézni, hogy milyen változóink vannak milyen értékekkel. Ciklusok működése: 1. ea anyagában részletesen szerepel. Szöveg kiírása Hogyan írjuk ki a változók értékét szépen a command windowba? Pl: kiirando = strcat('a(z) ', num2str(pozicio(2)), '. oszlop legkisebb eleme a(z) ', num2str(pozicio(1)), '. sorban található. Értéke: ', num2str(a(pozicio(1), pozicio(2))), '.'); disp(kiirando) Először létrehozzuk a szöveget (egy szöveg típusú változóba), amit ki szeretnénk írni. Ezután a disp(változónév) paranccsal kiiratjuk. Bővebben ld. strcat és disp függvények helpje. Keresési algoritmusok, optimalizáció Irodalom: http://project.mit.bme.hu/mi_almanach/ Az előadáson hallott eljárások közül fogunk néhányat kipróbálni. Egy probléma megoldását a gép nem látja, valahogyan meg kell neki mondani egy algoritmust, hogy mi alapján próbálgassa ki a különböző lehetségesnek tűnő megoldásokat; és azt is, hogy milyen megoldást tekintünk jónak. Nem informált (vak) keresés: Nem tudja a gép, hogy a próbálgatásokban közelebb áll e a megoldáshoz. Vaktában végigpróbál mindent, amíg ki nem jön a megoldás. 1

Kétféle útvonalon járhat el a próbálgatásban: Mélységi keresés Szélességi keresés Informált keresés: Van olyan lépés, ami nem vezethet megoldáshoz. Ezt a gép egy feltétel vizsgálatával le tudja ellenőrizni. Az egyes lépések kiválasztása során fontos, hogy a célfüggvény minimuma (vagy más problémára maximuma) felé menjünk, viszont eközben sose akadjon meg a program egy lokális minimumon. Optimalizációs algoritmusok Szimulált lehűtés (simulated annealing) módszer: A célfüggvény minimumát keresi úgy, hogy véletlenszerűen változtat a paramétereken (vagy egy lépést véletlenszerűen kiválaszt). Ha a változtatással közelebb jutunk a megoldáshoz, akkor elfogadjuk a változtatást, viszont valamekkora valószínűséggel elfogadja a rossz irányba menő állapotot is. Lépésenként a rossz irányba menő állapotot egyre kisebb valószínűséggel fogadja el (un. hőmérséklet csökkentése). 2

Feladatok 1. Legyen A = [4 6 3 9 12; 54 6 7 12 87; 23 95 32 65 1; 43 23 65 4 8; 9 38 75 91 10]. Keressük meg ennek a mátrixnak a legkisebb elemét. A program írja ki a minimum értékét és azt, hogy hányadik sorban és oszlopban található. A min függvény használata nélkül! Ugyanennek a mátrixnak soronként is keressétek meg a minimumát, és írassátok ki, hogy hányadik sor legkisebb eleme hányadik oszlopban található. Az előző feladatrészt oszlopokra is oldjátok meg! 2. 8 királynő probléma. Hogyan lehet letenni egy sakktáblára 8 királynőt, hogy egyik se üsse a másikat? (sem átlósan sem függőlegesen-vízszintesen nem lehetnek egy vonalban). a. Oldjátok meg a feladatot próbálgatással. b. Oldjátok meg a feladatot az SA módszerrel. 3

2.a feladat folyamatábrája: 4

2.b feladat folyamatábrája: 5